ZOJ 3212(K)
2015-10-18 22:22
288 查看
#include<iostream>
#include<cstdio>
#include<string>
#include<vector>
#include<algorithm>
#include<cstring>
#include<queue>
#include<stack>
using namespace std;
#define N 100
int g
;
int main()
{
#ifdef CDZSC
freopen("i.txt", "r", stdin);
#endif
int t, n, m, k;
scanf("%d", &t);
while (t--)
{
memset(g, 0, sizeof(g));
scanf("%d%d%d", &m, &n, &k);
k = (n - 2)*(m - 2) - k;
for (int i = 0; i < m; i++)
{
for (int j = 1; j < n - 1; j++)
{
if (k)
{
g[i][j] = k--;
}
}
}
for (int i = 0; i < m; i++)
{
int f = 1;
for (int j = 0; j < n; j++)
{
if (f)
{
f = 0;
printf("%d", g[i][j]);
}
else
printf(" %d", g[i][j]);
}
printf("\n");
}
}
return 0;
}
这一题错了很多次,题意是给你n*m大小的矩阵,使里面有K个nice小矩阵,nice矩阵定义是上下左右的和等于中间的值,开始一看可能没有什么思路,但是只要看到样例2的输出他是给了我们提示,我们只要个构造K个全0矩阵就可以,这样就简单多了。那么问题来了,非0的地方用什么填呢?我开始全部用1填,但是错了,一直到比赛结束都没有找到,原来在角落那里会出现多余的nice矩阵,这样定义一个变量num=1,每填一个就增加1,就不会发生多余的矩阵了。
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 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.
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
Sample Output
Author: ZHUANG, Junyuan
Source: The 6th Zhejiang Provincial Collegiate Programming Contest
#include<cstdio>
#include<string>
#include<vector>
#include<algorithm>
#include<cstring>
#include<queue>
#include<stack>
using namespace std;
#define N 100
int g
;
int main()
{
#ifdef CDZSC
freopen("i.txt", "r", stdin);
#endif
int t, n, m, k;
scanf("%d", &t);
while (t--)
{
memset(g, 0, sizeof(g));
scanf("%d%d%d", &m, &n, &k);
k = (n - 2)*(m - 2) - k;
for (int i = 0; i < m; i++)
{
for (int j = 1; j < n - 1; j++)
{
if (k)
{
g[i][j] = k--;
}
}
}
for (int i = 0; i < m; i++)
{
int f = 1;
for (int j = 0; j < n; j++)
{
if (f)
{
f = 0;
printf("%d", g[i][j]);
}
else
printf(" %d", g[i][j]);
}
printf("\n");
}
}
return 0;
}
这一题错了很多次,题意是给你n*m大小的矩阵,使里面有K个nice小矩阵,nice矩阵定义是上下左右的和等于中间的值,开始一看可能没有什么思路,但是只要看到样例2的输出他是给了我们提示,我们只要个构造K个全0矩阵就可以,这样就简单多了。那么问题来了,非0的地方用什么填呢?我开始全部用1填,但是错了,一直到比赛结束都没有找到,原来在角落那里会出现多余的nice矩阵,这样定义一个变量num=1,每填一个就增加1,就不会发生多余的矩阵了。
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 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.
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
Author: ZHUANG, Junyuan
Source: The 6th Zhejiang Provincial Collegiate Programming Contest
相关文章推荐
- Python中::(双冒号)的用法
- CentOS6.5 添加用户到 sudoers
- c3p0,dbcp,proxool的三种数据源的使用
- 程序员法则
- Linux系统CentOS7中,fstab出错,系统重启进入emergency mode的解决办法
- hostent h_addr_list
- zoj 3903 Ant(推公式,逆元)
- 结队编程
- 自述
- oracle监听和实例的启动顺序
- Android: Fragment中getActivity()返回null的问题
- 枚举
- vim常用配置
- 又一大坑
- Mac OSX:Powerline风格的zsh配置
- 详解java类的生命周期(笔者按自己知识量有少量添加)
- 最近的
- iOS8以后UIAlertView和UIActionSheet两种alert页面都将通过UIAlertController来创建
- lvs的健康检测脚本
- Mysql安装