输出全0,求大佬

P4924 [1007] 魔法少女小Scarlet

turn里循环的变量名定重了 i改成j,j改成k试试 还有-j是怎么回事? @[Wangyuqi2010](/user/1016748)
by han1219 @ 2024-08-06 13:44:55


``` #include <bits/stdc++.h> using namespace std; int g[510][510], tot, f[510][510]; int main(){ int n, m; scanf("%d %d", &n, &m); for(int i = 1; i <= n; i++) for(int j = 1; j <= n; j++) g[i][j] = ++tot; for(int i = 1; i <= m; i++) { int a, b, r, opt; scanf("%d %d %d %d", &a, &b, &r, &opt); if(opt == 0){ for(int i = a - r; i <= a + r; i++) for(int j = b - r; j <= b + r; j++) f[a - b + j][a + b - i] = g[i][j]; for(int i = a - r; i <= a + r; i++) for(int j = b - r; j <= b + r; j++) g[i][j] = f[i][j]; } else { for(int i = a - r; i <= a + r; i++) for(int j = b - r; j <= b + r; j++) f[a + b - j][b - a + i] = g[i][j]; for(int i = a - r; i <= a + r; i++) for(int j = b - r; j <= b + r; j++) g[i][j] = f[i][j]; } } for(int i = 1; i <= n; i++) { for(int j = 1; j <= n; j++) printf("%d ",g[i][j]); printf("\n"); } return 0; } ```
by wayne_coder @ 2024-08-06 14:32:16


## 大佬这样好像也可以 ```cpp #include<iostream> using namespace std; int g[505][505],f[505][505]; int n,m,x,y,r,z,tot; int main(){ cin>>n>>m; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) g[i][j]=++tot; for(int t=1;t<=m;t++){ cin>>x>>y>>r>>z; if(z==1){ for(int i=(-1)*r;i<=r;i++){ for(int j=(-1)*r;j<=r;j++){ f[x-j][y+i]=g[x+i][y+j]; } } }else if(z==0){ for(int i=(-1)*r;i<=r;i++){ for(int j=(-1)*r;j<=r;j++){ f[x+j][y-i]=g[x+i][y+j]; } } } for(int i=x-r;i<=x+r;i++){ for(int j=y-r;j<=y+r;j++){ g[i][j]=f[i][j]; } } } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cout<<g[i][j]<<' '; } cout<<endl; } return 0; } ```
by Wangyuqi2010 @ 2024-08-06 22:16:17


此帖完结!
by Wangyuqi2010 @ 2024-08-06 22:18:57


|