题解:超级大水题,就是判断行列上是否都是1-9个不同数字组成,AC过了,但是跑的有点慢,水题都这么慢,我太菜了,2333333
#include<iostream>
#include<algorithm>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<vector>
#include<cstring>
using namespace std;
int main(){
int m;
int a[10][10],b[10][10],c[10][10],d[10],e[10];
while(cin>>m){
for(int i=1;i<=m;i++){
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
memset(d,0,sizeof(d));
memset(e,0,sizeof(e));
memset(a,0,sizeof(a));
for(int j=1;j<=9;j++){
for(int k=1;k<=9;k++){
cin>>a[j][k];
}
}
for(int j=1;j<=9;j++){
for(int k=1;k<=9;k++){
if(a[j][k]<=9&&a[j][k]>=1){
b[j][a[j][k]]=1;
c[a[k][j]][j]=1;
// cout<<a[k][j]<<" "<<j<<endl;
}
}
}
for(int j=1;j<=9;j++){
int sum=0;
int ans=0;
for(int k=1;k<=9;k++){
sum+=b[j][k];
ans+=c[k][j];
}
d[j]=sum;e[j]=ans;
}
int flag=0;
for(int j=1;j<=9;j++){
if(d[j]!=9||e[j]!=9){
flag=1;
break;
}
}
if(flag==0) cout<<"yes"<<endl;
else cout<<"no"<<endl;
}
}
}