?题解:这一题我们可以用贪心,把一个角上放上盘子,在循环,每一行每一列每隔一个方格就放一个盘子,可以保证是最优解。
话不多说,直接上代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int x;
cin>>x;
while(x--){
int a,b;
cin>>a>>b;
int table[a][b];
for(int i=0;i<a;i++){
for(int j=0;j<b;j++){
table[i][j]=0;
}
}
for(int i=0;i<a;i+=2){
for(int j=0;j<b;j+=2){
if(i!=0&&i!=a-1){
table[i][0]=1;
table[i][b-1]=1;
continue;
}
table[i][j]=1;
}
}
if(a%2==0){
for(int i=2;i<b-2;i+=2){
table[a-1][i]=1;
}
}
for(int i=0;i<a;i++){
for(int j=0;j<b;j++){
cout<<table[i][j];
}
cout<<endl;
}
cout<<endl;
}
}
|