80pts求调,悬5棺
查看原帖
80pts求调,悬5棺
1323415
wky_wsy楼主2025/1/21 16:25
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,x,y,sl;
int pme[407];
vector<int> zpme; 
int out[30][30];
inline void spme(int a){
    pme[0]=pme[1]=1;
    for(int i=2;a;i++){
        if(pme[i]==1) continue;
        --a;
        zpme.push_back(i);
        for(int j=i+i;j<=400;j+=i){
            pme[j]=1;
        }
    }
}
inline void dfs(int x,int y,int k,char u){
    if(x>=1&&x<=n&&y>=1&&y<=n&&out[x][y]==0){
        out[x][y]=zpme[k-1];
        if(u=='y'){
            dfs(x,y+1,k+1,'y');
            dfs(x+1,y,k+1,'x');
            dfs(x,y-1,k+1,'z');
            dfs(x-1,y,k+1,'s');
        }
        else if(u=='x'){
            dfs(x+1,y,k+1,'x');
            dfs(x,y+1,k+1,'y');
            dfs(x,y-1,k+1,'z');
            dfs(x-1,y,k+1,'s');
        }
        else if(u=='z'){
            dfs(x,y-1,k+1,'z');
            dfs(x,y+1,k+1,'y');
            dfs(x+1,y,k+1,'x');
            //dfs(x,y-1,k+1,'z');
            dfs(x-1,y,k+1,'s');
        }
        else if(u=='s'){
            dfs(x-1,y,k+1,'s');
            dfs(x,y+1,k+1,'y');
            dfs(x+1,y,k+1,'x');
            dfs(x,y-1,k+1,'z');
            //dfs(x-1,y,k+1,'s');
        }
    }
}
signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin>>n>>x>>y;
    sl=n*n;
    spme(sl);
    dfs(1,1,1,'y');
//    for(int i=1;i<=n;i++){
//        for(int j=1;j<=n;j++){
//            cout<<out[i][j]<<' ';
//        }
//        cout<<endl;
//    }
	cout<<out[x][y];
    return 0;
}
2025/1/21 16:25
加载中...