比赛 2025暑期集训第7场 评测结果 WWWWWWWWWW
题目名称 填数 最终得分 0
用户昵称 我也不知道 运行时间 0.025 s
代码语言 C++ 内存使用 3.65 MiB
提交时间 2025-08-11 15:47:09
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
int shu[15][15]= {0},mmm=0,num=0,N;
bool visit[225]= {0};
int panduan(int x,int y) {
	int b=2;
	if(x==y) return 1;
	while(b*b<=x) {
		if(x%b==0)return 0;
		b++;
	}
	return 1;
}
int shifou(int x,int y,int z) {
	int b=panduan(z+shu[x+1][y],z)+panduan(z+shu[x-1][y],z)+panduan(z+shu[x][y-1],z)+panduan(z+shu[x][y+1],z);
	if(b==4) return 1;
}
int ddd(int n,int m) {
    if(mmm==1) return 0;
	if(n>N&&mmm==0) {
	    mmm=1;
	    num=1;
		for(int i=1; i<=N; i++) {
			for(int j=1; j<=N; j++) cout<<shu[i][j]<<" ";
			cout<<endl;
		}
		return 0;
	} else {
		for(int i=1; i<=N*N; i++)
        if(visit[i]==0&&shifou(n,m,i)==1) {
				shu[n][m]=i;
				visit[i]=1;
				if(m==N) ddd(n+1,1);
				else ddd(n,m+1);
				if(mmm==1) return 0;
				visit[i]=0;
				shu[n][m]=0;
			}
			
			
	}
	return 0;
}
int main() {
	int n,x2,y3;
	freopen("tianshu.in","r",stdin);
	freopen("tianshu.out","w",stdout);
	cin>>N;
	ddd(1,1);
	if(num==0) cout<<"NO";
	return 0;
}