10pts求调,样例过了(已注释)

P4924 [1007] 魔法少女小Scarlet

@[liuenrui](/user/1141675) 楼主,我照着你的代码重写了一下,已AC,将就看吧 ```cpp #include<bits/stdc++.h> using namespace std; int t=0,n,m,x,y,r,z;//如题意 int a[514][514],ff[514][514];//a:原始数组,ff:临时数组 void nsj(int tx,int ty,int bj){//逆时针转 for(int i=tx-bj;i<=tx+bj;i++){ for(int j=ty-bj;j<=ty+bj;j++){ ff[i][j]=a[i][j]; } } //for(int i=ty-bj;i<=ty+bj;i++){ // for(int j=tx-bj;j<=tx+bj;j++){ // cout<<f[i][j]<<" "; // } // cout<<endl; //} int xl=tx-bj,yl=ty+bj; for(int i=tx-bj;i<=tx+bj;i++){ for(int j=ty-bj;j<=ty+bj;j++){ a[i][j]=ff[xl][yl]; xl++; } yl--; xl=tx-bj; } return; } void ssj(int tx,int ty,int bj){ for(int i=tx-bj;i<=tx+bj;i++){ for(int j=ty-bj;j<=ty+bj;j++){ ff[i][j]=a[i][j]; } } //for(int i=ty-bj;i<=ty+bj;i++){ // for(int j=tx-bj;j<=tx+bj;j++){ // cout<<f[i][j]<<" "; // } // cout<<endl; //} int xl=tx+bj,yl=ty-bj; for(int i=tx-bj;i<=tx+bj;i++){ for(int j=ty-bj;j<=ty+bj;j++){ a[i][j]=ff[xl][yl]; xl--; } xl=tx+bj; yl++; } return; } int main(){ cin>>n; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ t++; a[i][j]=t;//把1~n^2输入数组 } } cin>>m; while(m--){ cin>>x>>y>>r>>z; if(z==0) ssj(x,y,r); else nsj(x,y,r); } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cout<<a[i][j]<<" "; } cout<<endl; } return 0; /* 5 4 2 2 1 0 3 3 1 1 4 4 1 0 3 3 2 1 */ } ```
by Yxy7952 @ 2024-08-31 10:25:53


@[yixingyou](/user/936717) 谢谢大佬orz
by liuenrui @ 2024-08-31 10:33:38


|