发现x,y整反了,但还是80pts
修改后的代码
```cpp
#include<bits/stdc++.h>
using namespace std;
const int maxn=505;
int n,m,a[maxn][maxn],b[maxn][maxn];
inline int read(){
int ret=0,f=1;char ch=getchar();
while(!isdigit(ch)){if(ch=='-')f=-f;ch=getchar();}
while(isdigit(ch))ret=(ret<<3)+(ret<<1)+(ch&15),ch=getchar();
return ret*f;
}
int main(){
n=read(),m=read();int k=1;
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)a[i][j]=i*n+j-n;
while(m--){
int x=read(),y=read(),r=read(),z=read();
if(k&1){
memcpy(b,a,sizeof b);
if(z)for(int i=x-r;i<=x+r;i++)for(int j=y-r;j<=y+r;j++)b[x+y-j][y-x+i]=a[i][j];
else for(int i=x-r;i<=x+r;i++)for(int j=y-r;j<=y+r;j++)b[x-y+j][y+x-i]=a[i][j];
}
else{
memcpy(a,b,sizeof a);
if(z)for(int i=x-r;i<=x+r;i++)for(int j=y-r;j<=y+r;j++)a[x+y-j][y-x+i]=b[i][j];
else for(int i=x-r;i<=x+r;i++)for(int j=y-r;j<=y+r;j++)a[x-y+j][y+x-i]=b[i][j];
}
k++;
}
if(k){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)printf("%d ",a[i][j]);
putchar('\n');
}
}
else{
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)printf("%d ",b[i][j]);
putchar('\n');
}
}
return 0;
}
```
by ZYC_zyc @ 2024-08-09 16:42:34
。。。你上面用了if(k&1),怎么下面直接if(k)了呢。。。最后输出改if(k&1)就AC
by Doppler @ 2024-08-11 16:48:35
...
by ZYC_zyc @ 2024-08-11 19:48:34
可能脑子抽了吧 **QWQ**
by ZYC_zyc @ 2024-08-11 19:49:14