题目描述
样例
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
算法2
(暴力枚举) $O(n^2)$
时间复杂度
参考文献
C++ 代码
#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
int T;
int n;
int g[50][50];
int row[50][50];
int col[50][50];
int gon[50][50];
bool fun(){
int N=n*n;
for(int i=1;i<=N;i++){
for(int j=1;j<=N;j++){
if(g[i][j]>N||g[i][j]<=0)return false;
if(row[i][g[i][j]])return false;
if(col[j][g[i][j]])return false;
int gg=(i-1)/n*n+(j-1)/n;
if(gon[gg][g[i][j]])return false;
gon[gg][g[i][j]]=1;
row[i][g[i][j]]=1;
col[j][g[i][j]]=1;
}
}
return true;
}
int main(){
cin>>T;
for(int k=1;k<=T;k++){
cin>>n;
for(int i=1;i<=n*n;i++)
for(int j=1;j<=n*n;j++)
cin>>g[i][j];
memset(row,0,sizeof row);
memset(col,0,sizeof col);
memset(gon,0,sizeof gon);
cout<<"Case #"<<k<<": ";
if(fun())cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}