zoj 3212 K-Nice 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3212
构造
题目大意:矩阵中四周都有数并四周数之和等于当中数的,叫做nice,K-Nice代表此矩阵中有k个nice项。
题目分析:输入矩阵规模和k值,输出一个符合条件的矩阵。
以下是代码:
#include<stdio.h>
int main()
{
int t, n, m, k, i, j;
scanf("%d", &t);
while(t--)
{
scanf("%d%d%d",&n,&m,&k);
k=(n-2)*(m-2)-k;
for(i=1;i<=n;i++)
{
printf("0");
for(j=1;j<=m-2;j++)
{
if(k > 0)printf(" %d",k--);
else printf(" 0");
}
printf(" 0\n");
}
}
return 0;
}
另有一个,可留待分析:
#include<stdio.h>
#include<string.h>
int main()
{
int t,m,n,i,j,k,temp,a[20][20],flag[20][20];
scanf("%d",&k);
while(t--)
{
scanf("%d%d%d",&m,&n,&k);
memset(a,0,sizeof(a));
memset(flag,0,sizeof(flag));
temp=(n-2)*(m-2);
for(i=1; i<=m-2; i++)
{
for(j=1; j<=n-2; j++)
{
flag[i][j]=1;
}
}
for(i=0; i<m&&temp>k; i++)
{
for(j=0; j<n&&temp>k; j++)
{
if(flag[i+1][j])
{
temp--;
flag[i+1][j]=0;
}
a[i][j]++;
}
}
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
{
if(j)printf(" ");
printf("%d",a[i][j]);
}
printf("\n");
}
}
return 0;
}
待改……