40 分代码,求调!

P1911 L 国的战斗之排兵布阵

@[mmr123](/user/460020) 代码太多,看不过来,毕竟还有别的事要忙,就复制过来了自己的代码: ```c #include<bits/stdc++.h> const int N=(1<<10)+5; int n,x,y; int A[N][N],cnt,p[N*N],tot; const int dx[4]={0,1,0,1},dy[4]={0,0,1,1},cox[4]={1,0,1,0},coy[4]={1,1,0,0}; void dfs(int x,int y,int c,int a,int b){ if(c==0) return;c--;int t=++cnt; for(int i=0; i<4; i++){ int nx=x+(dx[i]<<c),ny=y+(dy[i]<<c),f=nx+(cox[i]<<c)-cox[i],g=ny+(coy[i]<<c)-coy[i]; if(a>=nx&&a<nx+(1<<c)&&b>=ny&&b<ny+(1<<c)) dfs(nx,ny,c,a,b); else dfs(nx,ny,c,f,g),A[f][g]=t; } } int main(){ scanf("%d%d%d",&n,&x,&y); dfs(1,1,n,x,y); for(int i=1; i<=1<<n; i++) for(int j=1; j<=1<<n; j++){ if(i!=x||j!=y){ if(!p[A[i][j]]) p[A[i][j]]=++tot; printf("%d ",p[A[i][j]]); } else printf("0 "); if(j==(1<<n)) puts(""); } return 0; } ```
by speantime @ 2023-09-03 17:05:04


保证AC
by speantime @ 2023-09-03 17:05:40


|