#include<bits/stdc++.h>
using namespace std;
vector<vector<int>> shun(const vector<vector<int>>&a,int x,int y, int r){
int n = a.size();
vector<vector<int>> result = a;
for(int i = -r;i<=r;i++){
for(int j = -r;j<=r;j++){
result[x+j][y-i] = a[x+i][y+j];
}
}
return result;
}
vector<vector<int>> ni(const vector<vector<int>>&a,int x,int y, int r){
int n = a.size();
vector<vector<int>> result = a;
for(int i = -r;i<=r;i++){
for(int j = -r;j<=r;j++){
result[x-j][y+i] = a[x+i][y+j];
}
}
return result;
}
int main(){
int n,m,num=1;
cin>>n>>m;
vector<vector<int>>a(n,vector<int>(n));
for(int i = 0;i<n;i++){
for(int j = 0;j<n;j++){
a[i][j]=num++;
}
}
for(int i = 0;i<m;i++){
int x, y, r, z;
cin>>x>>y>>r>>z;
x--;y--;
if(z == 0){
a = shun(a,x,y,r);
}else{
a = ni(a,x,y,r);
}
}
for(int i = 0;i<n;i++){
for(int j = 0;j<n;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
二维数组中,顺时针旋转(x,y)=(y,-x),逆时针旋转(x,y)=(-y,x)
using namespace std;
vector<vector<int>> shun(const vector<vector<int>>&a,int x,int y, int r){
int n = a.size();
vector<vector<int>> result = a;
for(int i = -r;i<=r;i++){
for(int j = -r;j<=r;j++){
result[x+j][y-i] = a[x+i][y+j];
}
}
return result;
}
vector<vector<int>> ni(const vector<vector<int>>&a,int x,int y, int r){
int n = a.size();
vector<vector<int>> result = a;
for(int i = -r;i<=r;i++){
for(int j = -r;j<=r;j++){
result[x-j][y+i] = a[x+i][y+j];
}
}
return result;
}
int main(){
int n,m,num=1;
cin>>n>>m;
vector<vector<int>>a(n,vector<int>(n));
for(int i = 0;i<n;i++){
for(int j = 0;j<n;j++){
a[i][j]=num++;
}
}
for(int i = 0;i<m;i++){
int x, y, r, z;
cin>>x>>y>>r>>z;
x--;y--;
if(z == 0){
a = shun(a,x,y,r);
}else{
a = ni(a,x,y,r);
}
}
for(int i = 0;i<n;i++){
for(int j = 0;j<n;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
二维数组中,顺时针旋转(x,y)=(y,-x),逆时针旋转(x,y)=(-y,x)
全部评论
相关推荐
黑皮白袜臭脚体育生:公务员也是好起来了,都能碰瓷华子了

点赞 评论 收藏
分享
06-03 17:01
门头沟学院 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享