http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3212
题意:构造出一个n*m的有k个上下左右的和等于中间数的小矩阵的任意矩阵。
就是输出k个全是0的矩阵(符合条件),然后其他的矩阵用数字填掉
1 #include<bits/stdc++.h> 2 using namespace std; 3 int main() 4 { 5 int T, n, m, k, i, j; 6 scanf("%d", &T); 7 while(T--) { 8 scanf("%d%d%d", &n, &m, &k); 9 k = (n-2)*(m-2) - k;//不符合条件的矩阵 10 for(i = 1; i <= n; i++) { 11 printf("0"); 12 for(j = 1; j <= m-2; j++) { 13 if(k>0) 14 printf(" %d", k--); 15 else 16 printf(" 0"); 17 } 18 printf(" 0 "); 19 } 20 } 21 return 0; 22 }