我也是10分,没太看懂题解,请求大佬debug

P4924 [1007] 魔法少女小Scarlet

```c #include<bits/stdc++.h> #define itn int using namespace std; itn n,m,px,py,pr,pz,ans[502][502],sz[502][502],t[510][510]; void fz(int x,int y,int a){ int xx=1,yy=1; for(int i=x-a;i<=x+a;i++) { for(int j=y-a;j<=y+a;j++) { sz[xx][yy]=ans[i][j]; yy++; } yy=1,xx++; } } int main(){ cin>>n>>m; for(int i=1;i<=n;i++)for(int j=1;j<=n;j++) ans[i][j]=(i-1)*n+j; // for(int i=1;i<=n;i++){ // for(int j=1;j<=n;j++) cout<<ans[i][j]<<" "; // cout<<"\n"; // }cout<<"\n\n"; for(int i=0;i<m;i++){ cin>>px>>py>>pr>>pz; fz(px,py,pr); // for(itn j=px-pr;j<=px+pr;j++){ // for(itn k=py-pr;k<=py+pr;k++) cout<<sz[j][k]<<" "; // cout<<"\n"; // }cout<<"\n"; if(!pz){ for(itn j=1;j<=2*pr+1;j++)for(itn k=1;k<=2*pr+1;k++) t[k][2*pr + 2 - j]=sz[j][k]; }else{ for(itn j=1;j<=2*pr+1;j++)for(itn k=1;k<=2*pr+1;k++) t[2*pr+2 - k][j]=sz[j][k]; } int xx=1,yy=1; for(int j=px-pr;j<=px+pr;j++) { for(int k=py-pr;k<=py+pr;k++) { ans[j][k]=t[xx][yy++]; } yy=1,xx++; } // for(int i=1;i<=n;i++){ // for(int j=1;j<=n;j++) cout<<ans[i][j]<<" "; // cout<<"\n"; // }cout<<"\n\n"; } // cout<<"\n\n\n"; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++) cout<<ans[i][j]<<" "; cout<<"\n"; } return 0; } ``` 我给你改了,有不懂的明天再说,我要去拿外套了 @[张一2010](/user/1038838)
by Tommyzheng11 @ 2024-04-10 18:18:35


|