求助一道codeforces题
本帖最后由 一阵三十六 于 2022-7-5 09:24 编辑原题如下:
这里是原题地址:
原题地址 问小甲鱼老师吧 其实样例已经给出了解决问题的(一种方式)的直接方法,不过最后一个样例的输出起到了一定的混淆视听的作用。考虑把 4x4 的输出换成
1 0 0 1
0 1 1 0
0 1 1 0
1 0 0 1
然后把这三个样例联系在一起对照就能很容易的发现规律了,因为只要找到任意一个解即可,因此可按照此规律构造答案。
参考代码如下
#include <stdio.h>
int main(){
const char Answer[] = "1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1";
const int StartingHelper[] = { 0, 4, 4, 0 };
int t, n, m;
for(scanf("%d", &t); t > 0; --t){
scanf("%d%d", &n, &m);
m = (m << 1) - 1;
for(int i = 0; i < n; ++i){
fwrite(Answer + StartingHelper, m, 1, stdout);
fputc('\n', stdout);
}
}
return 0;
}
使用数学归纳法可以很轻松的证明此方法构造的一定是符合要求的答案。
页:
[1]