⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1794.cpp

📁 杭电 acm部分代码 有兴趣的可以下载 谢谢
💻 CPP
字号:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

int n;
__int64 num, m, sum;
__int64 add[10100];
__int64 box[44][44];
__int64 zz[10100];

int cmp(const void *a, const void *b)
{
    __int64 *p = (__int64 *)a;
    __int64 *q = (__int64 *)b;
    if (*q > *p)
	{
		return 1;
	}
	else if (*q == *p)
	{
		return 0;
	}
	else
	{
		return -1;
	}
}

int main()
{
    int test, i, j, x, y, z;
    scanf("%d", &test);
    while (test--)
    {
        memset(add, 0, sizeof(add));
        memset(box, 0, sizeof(box));
        memset(zz, 0, sizeof(zz));
        scanf("%I64d", &n);
        num = 0;
        for (i = 1; i <= n; i++)
        {
            for (j = 1; j <= n; j++)
            {
                scanf("%I64d", &box[i][j]);
            }
        }    
        for (i = 1; i <= n; i++)
        {
            for (j = 1; j <= n; j++)
            {
                if (box[i][j] == 0)
                {
                    for (x = 1; x <= i; x++)
                    {
                        for (y = 1; y <= j; y++)
                        {
							for (z = 0; ; z++)
							{
								if (x + z > n || y + z > n)
								{
									break;
								}
								if (x + z >= i && y + z >= j)
								{
									zz[num]++;
								}
							}
                        }
                    }
                    num++;
                }
            }
        }
        scanf("%d", &m);
        for (i = 0; i < m; i++)
        {
            scanf("%I64d", &add[i]);
        }
        qsort(add, m, sizeof(__int64), cmp);
        qsort(zz, num, sizeof(__int64), cmp);
        sum = 0;
        for (i = 0; i < num; i++)
        {
            sum += zz[i] * add[i];
        }
        printf("%I64d\n", sum);
    }
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -