我从来没想过,T1能写炸……qwq
换了种思路写,大概意思就是把中心点与当前点做差得到的差值进行旋转。
画画图就能做了(喂到我嘴边的分我都没要QAQ)
#include<cstdio>
int n,m,id,a[510][510],b[510][510];
int main()
{
//freopen("in.txt","r",stdin);
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
a[i][j]=++id;
int x,y,r,z;
while(m--)
{
scanf("%d%d%d%d",&x,&y,&r,&z);
for(int i=x-r;i<=x+r;i++)
for(int j=y-r;j<=y+r;j++)
if(z==0)b[x-y+j][x+y-i]=a[i][j];
else b[x+y-j][y-x+i]=a[i][j];
for(int i=x-r;i<=x+r;i++)
for(int j=y-r;j<=y+r;j++)
a[i][j]=b[i][j];
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
printf("%d%c",a[i][j],j==n?'\n':' ');
return 0;
}
总结
看题面还以为有啥骚操作……其实就是模拟。