zl程序教程

您现在的位置是:首页 >  其它

当前栏目

【CodeForces 625C】K-special Tables

Codeforces tables special
2023-09-11 14:19:25 时间

把1到n*n填在n*n的格子里。要求每一行都是递增的,使第k列的和最大。

分析

第k列前的格子1 2 .. 按要求填到满格,然后第k列及后面的格子,都从左到右填递增1的数。

第k列的和再加起来,我很矫情地求了公式=_=

代码

#include<cstdio>
int n,k;
int a[505][505];
int main()
{
    scanf("%d%d",&n,&k);
    int m=1;

    for(int i=1; i<=n; i++)
        for(int j=1; j<k; j++)
        {
            a[i][j]=m++;
        }
    for(int i=1; i<=n; i++)
        for(int j=k; j<=n; j++)
        {
            a[i][j]=m++;
        }
    printf("%d\n",(n*(n-2+k)+k+1)*n/2);
    for(int i=1; i<=n; i++)
    {
        for(int j=1; j<=n; j++)
        {
            printf("%d ",a[i][j]);
        }
        printf("\n");
    }
    return 0;
}