We say an element is inside a matrix if it has four neighboring elements in the matrix (Those at the corner have two and on the edge have three). An element inside a matrix is called "nice" when its value equals the sum of its four neighbors. A matrix is called "k-nice" if and only if k of the elements inside the matrix are "nice".
Now given the size of the matrix and the value of k, you are to output any one of the "k-nice" matrix of the given size. It is guaranteed that there is always a solution to every test case.
InputThe first line of the input contains an integer T (1 <= T <= 8500) followed by T test cases. Each case contains three integers n, m, k (2 <= n, m <= 15, 0 <= k <= (n - 2) * (m - 2)) indicating the matrix size n * m and it the "nice"-degree k.
<b< dd="">
For each test case, output a matrix with n lines each containing m elements separated by a space (no extra space at the end of the line). The absolute value of the elements in the matrix should not be greater than 10000.
<b< dd="">
2 4 5 3 5 5 3
<b< dd="">
2 1 3 1 1 4 8 2 6 1 1 1 9 2 9 2 2 4 4 3 0 1 2 3 0 0 4 5 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
要你一个输出一个m*n矩阵,其中有k个元素满足上下左右元素的和为当下元素第一此碰到这种题,刚开始题都没看懂,看来英文还是太菜,汗颜。然后就是输出手法上有点伤脑经;#include<stdio.h> using namespace std; 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; }