求助

P1219 [USACO1.5] 八皇后 Checker Challenge

想要更丰富的展现,请使用Markdown
by 土田共戈 @ 2018-10-20 20:11:45


markdown大法一声吼
by tryrtj @ 2018-10-20 20:13:24


``` #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<iomanip> using namespace std; int a[15],vis[15][15],s=0,n; void print() { s++; if(s<=3) { for(register int i=1;i<=n;i++) printf("%d ",a[i]); printf("\n"); } return; } void eigh(int i) { if(i>n){print();return;} else for(register int j=1;j<=n;j++) { if(vis[i][j]!=1) { a[i]=j; for(register int e=1;e<=n;e++) { vis[e][j]=1,vis[i][e]=1; if(i+e<=n&&j+e<=n) vis[i+e][j+e]=1; if(i+e<=n&&j-e>=1) vis[i+e][j-e]=1; if(i-e>=1&&j+e<=n) vis[i-e][j+e]=1; if(i-e>=1&&j-e>=1) vis[i-e][j-e]=1; //四个方向宣布占领 } eigh(i+1); for(register int e=1;e<=n;e++) { vis[e][j]=0,vis[i][e]=0; if(i+e<=n&&j+e<=n) vis[i+e][j+e]=0; if(i+e<=n&&j-e>=1) vis[i+e][j-e]=0; if(i-e>=1&&j+e<=n) vis[i-e][j+e]=0; if(i-e>=1&&j-e>=1) vis[i-e][j-e]=0; } } } return; } int main() { scanf("%d",&n); eigh(1); printf("%d",s); return 0; } ```
by ge_yao @ 2018-10-20 20:13:28


``` include<iostream> include<cstdio> include<cmath> include<algorithm> include<iomanip> using namespace std; int a[15],vis[15][15],s=0,n; void print() { s++; if(s<=3){ for(register int i=1;i<=n;i++) printf("%d ",a[i]); printf("\n"); } return; } void eigh(int i) { if(i>n) { print(); return; } else for(register int j=1;j<=n;j++) { if(vis[i][j]!=1) { a[i]=j; for(register int e=1;e<=n;e++) { vis[e][j]=1, vis[i][e]=1; if(i+e<=n&&j+e<=n) vis[i+e][j+e]=1; if(i+e<=n&&j-e>=1) vis[i+e][j-e]=1; if(i-e>=1&&j+e<=n) vis[i-e][j+e]=1; if(i-e>=1&&j-e>=1) vis[i-e][j-e]=1; //四个方向宣布占领 } eigh(i+1); for(register int e=1;e<=n;e++) { vis[e][j]=0, vis[i][e]=0; if(i+e<=n&&j+e<=n) vis[i+e][j+e]=0; if(i+e<=n&&j-e>=1) vis[i+e][j-e]=0; if(i-e>=1&&j+e<=n) vis[i-e][j+e]=0; if(i-e>=1&&j-e>=1) vis[i-e][j-e]=0; } } } return; } int main() { scanf("%d",&n); eigh(1); printf("%d",s); return 0; } ``` 手动帮排
by tryrtj @ 2018-10-20 20:15:30


|