zoj 3212 K-Nice(构造)

K-Nice


Time Limit: 1 Second      Memory Limit: 32768 KB      Special Judge


This is a super simple problem. The description is simple, the solution is simple. If you believe so, just read it on. Or if you don‘t, just pretend that you can‘t see this one.

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.

Input

The first line of the input contains an integer T (1 <= T <= 8500) followed by T test cases. Each case contains three integers nmk (2 <= nm <= 15, 0 <= k <= (n - 2) * (m - 2)) indicating the matrix size n * m and it the "nice"-degree k.

Output

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.

Sample Input

2
4 5 3
5 5 3

Sample Output

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
#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int t,n,m,k;
int mp[20][20];
int main()
{
    while(~scanf("%d",&t))
    {
     for(;t>0;t--)
     {
         scanf("%d%d%d",&n,&m,&k);
         k=(n-2)*(m-2)-k;
         for(int i=1;i<=n;i++)
         {
             printf("0");
             for(int j=2;j<m;j++)
                if (k>0) printf(" %d",k--);
                 else printf(" 0");
            printf(" 0\n");
         }
     }
    }
    return 0;
}
时间: 2024-11-09 18:15:07

zoj 3212 K-Nice(构造)的相关文章

ZOJ 3212 K-Nice (K)

K-Nice Time Limit: 1 Second      Memory Limit: 32768 KB      Special Judge This is a super simple problem. The description is simple, the solution is simple. If you believe so, just read it on. Or if you don't, just pretend that you can't see this on

ZOJ 3599 K倍动态减法游戏

下面的文字辅助理解来自http://blog.csdn.net/tbl_123/article/details/24884861 博弈论中的 K倍动态减法游戏,难度较大,参看了好多资料才懵懂! 此题可以看作 Fibonacci 博弈的扩展,建议没弄懂 Fibonacci博弈的先学那个,个人整理 http://blog.csdn.net/tbl_123/article/details/24033245 : 而说扩展体现在数列不再是Fib数列,是根据 k 的值自行构造的,其它换汤不换药,具体构造方法

zoj 3715 K - Kindergarten Election

一个班有n个小朋友,要选一个班长,(n>=3),每个人不能投自己,给出每个人想要选的人,1号小朋友相当班长,如果一个小朋友不选自己 那么,自己可以给他bi个糖果让他选自己,那么请输出,最少花费多少个糖果 ,1号小朋友可以当上班长 开始的做法是贪心小的,那么问题很复杂,直接枚举小的是不符合条件的 后来想,枚举一号小朋友最后的票为k,那么其他人的票肯定小于等于k-1,如果有小朋友的选票高于k-1,那么先把投这个人的所有小朋友贿赂到小于k-1,按照需要的糖果数量 如果这个时候的选票大于k了,那么显然这

ZOJ 3212: K-Nice

K-Nice ///@author Sycamore, ZJNU ///@date 2017-02-09  #include<iostream> #include<algorithm> using namespace std; int mat[15][15]; int main() { int T, M, N, k; cin >> T; while (T--) { cin >> N >> M >> k; fill(*(mat + 1)

ACM-ICPC 2018 青岛赛区现场赛 D. Magic Multiplication &amp;&amp; ZOJ 4061 (思维+构造)

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4061 题意:定义一个长度为 n 的序列 a1,a2,..,an 和长度为 m 的序列 b1,b2,..,bm 所构成的新序列 c 为 a1b1,a1b2,....,anbm,给出最终的序列和两个初始序列的长度,构造出字典序最小的初始序列. 题解:首先我们知道两个个位数相乘最多可以得到两位数,易知最终序列的第一个数字 c1 的构造一定有 a1 的参与,当 a1 <

数据结构例程——二叉树的构造

本文是数据结构基础系列(6):树和二叉树中第13课时二叉树的构造的例程. 1.由先序序列和中序序列构造二叉树 定理:任何n(n≥0)个不同节点的二叉树,都可由它的中序序列和先序序列唯一地确定. 证明(数学归纳法) 基础:当n=0时,二叉树为空,结论正确. 假设:设节点数小于n的任何二叉树,都可以由其先序序列和中序序列唯一地确定. 归纳:已知某棵二叉树具有n(n>0)个不同节点,其先序序列是a0a1-an?1:中序序列是b0b1-bk?1bkbk+1-bn?1. 先序遍历"根-左-右&quo

hdu1757 构造矩阵

Lele now is thinking about a simple function f(x). If x < 10 f(x) = x.If x >= 10 f(x) = a0 * f(x-1) + a1 * f(x-2) + a2 * f(x-3) + …… + a9 * f(x-10);And ai(0<=i<=9) can only be 0 or 1 . Now, I will give a0 ~ a9 and two positive integers k and m

cf550D. Regular Bridge(构造)

题意 给出一个$k$,构造一个无向图,使得每个点的度数为$k$,且存在一个桥 Sol 神仙题 一篇写的非常好的博客:http://www.cnblogs.com/mangoyang/p/9302269.html 我简单的来说一下构造过程 首先$n$是偶数的时候无解 奇数的时候:我们拿出两个点作为桥 先构建一条桥边,对于两个端点分别做同样操作: 新建$k−1$个点,每个点向端点连边 再新建$k−1$个点,每个点向相邻的点连边 对于两层点形成的二分图,两两之间连边 /* */ #include<io

K近邻(k-Nearest Neighbor,KNN)算法,一种基于实例的学习方法

1. 基于实例的学习算法 0x1:数据挖掘的一些相关知识脉络 本文是一篇介绍K近邻数据挖掘算法的文章,而所谓数据挖掘,就是讨论如何在数据中寻找模式的一门学科. 其实人类的科学技术发展的历史,就一直伴随着数据挖掘,人们一直在试图中数据中寻找模式, 猎人在动物迁徙的行为中寻找模式 农夫在庄稼的生长中寻找模式 政客在选民的意见上寻找模式 恋人在对方的反应中寻找模式 企业家的工作是要辨别出机会,寻找出那些可以转变为有利可图的生意的行为中的一些模式,也即所谓的成功的模式,并且利用这些机会 科学家的工作是理