最后一个点超时求助

P1219 [USACO1.5] 八皇后 Checker Challenge

我用这样的方法AC了: ``` #include<cstdio> #include<iostream> using namespace std; int ans[14],check[3][28]={0},sum=0,n; void eq(int line) { if(line>n) { sum++; if(sum>3) return; else { for(int i=1;i<=n;i++) printf("%d ",ans[i]); printf("\n"); return; } } for(int i=1;i<=n;i++) { if((!check[0][i])&&(!check[1][line+i])&&(!check[2][line-i+n])) { ans[line]=i; check[0][i]=1; check[1][line+i]=1; check[2][line-i+n]=1; eq(line+1); check[0][i]=0; check[1][line+i]=0; check[2][line-i+n]=0; } } } int main() { scanf("%d",&n); eq(1); printf("%d",sum); return 0; } ```
by 陈启旺 @ 2019-04-10 19:55:14


|