洛谷传送门:CF1699B Almost Ternary Matrix - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
难度:普及-
知识点:纯思维题
思路:
先找规律,找到最基础的子矩阵(最关键的步骤)
因为是q次询问的题,并且2 ≤ n,m ≤ 50,n和m不大
所以我选择先把完整的矩阵(50*50)输出
然后他要多大就给他输出多大,免去重复计算
AC代码:
#include<bits/stdc++.h>
using namespace std;
bool initial[] = {1,0,0,1};
int main(){
// 2 ≤ n,m ≤ 50
bool map[50][50];
for(int j = 0; j<50; j++){
for(int i = 0; i<50; i++){
if(j%4==0 || j%4==3)
map[j][i] = initial[i%4];
else
map[j][i] = initial[(i+2)%4];
}
}
int t,n,m; scanf("%d", &t);
while(t--){
scanf("%d %d", &n,&m);
for(int i = 0; i<n; i++){
for(int j = 0; j<m; j++){
printf("%d ", map[i][j]);
}
printf("\n");
}
}
return 0;
}
/*
知识点:纯思维题
先找规律,找到最基础的子矩阵(最关键的步骤)
因为是q次询问的题,并且2 ≤ n,m ≤ 50,n和m不大
所以我选择先把完整的矩阵(50*50)输出
然后他要多大就给他输出多大,免去重复计算
心路历程:
第一印象是觉得,这矩阵一定有规律
然后开始看样例,看前两个还好,看到第三个,怎么规律又不一样了
思考,一个nm只有对应一个答案吗,自己画又没画出第二种(太菜了)
然后又找不到规律,放弃了,看题解
原来确实被样例三骚扰了,可以不按照样例三,按照一定规律画
反思:
怎么可能没规律,规律不一定要顺着样例找
样例可能会骚扰你,让题目看起来更复杂
*/