解题思路:模拟题,详细构造思路看下面ac代码

#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <cmath> #include <string> #include <cstring> #include <queue> #include <set> #include <map> #include <vector> #define dbg(a) cout<<#a<<" : "<<a<<endl; #define IOS std::ios::sync_with_stdio(false);cin.tie(0),cout.tie(0); #define PAUSE system("pause") #define sd(a) scanf("%d",&a) #define sll(a) scanf("%intd",&a) #define sdd(a,b) scanf("%d%d",&a,&b) #define sddd(a,b,c) scanf("%d%d%d",&a,&b,&c) #define sf(a) scanf("%lf",&a) #define sff(a,b) scanf("%lf%lf",&a,&b) #define sfff(a,b,c) scanf("%lf%lf%lf",&a,&b,&c) using namespace std; typedef long long ll; typedef pair<int,int> pii; const ll maxn=1000+5; ll n,m,maxx,k,cnt,ans,idx,cur,t; int a[maxn][maxn]; int c[maxn][maxn]; //int b[maxn][maxn]; void sol1(int cnt1) //旋转 { if(cnt1==0) { return; } else{ for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { a[i][j]=c[n-1-i][n-1-j]; //b[i][j]=a[i][j]; } } } } void sol2(int cnt2) //镜像 { if(cnt2==0) return; else{ for(int i=0;i<n/2;i++) { for(int j=0;j<n;j++) { swap(a[i][j],a[n-1-i][j]); } } } } int main() { sd(n); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { sd(a[i][j]); c[i][j]=a[i][j]; // b[i][j]=a[i][j]; } } int q; int cnt1=0; int cnt2=0; sd(q); for(int i=0;i<q;i++) { sd(t); if(t==1) cnt1++; else cnt2++; } cnt1=cnt1%2; cnt2=cnt2%2; sol1(cnt1); sol2(cnt2); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { printf("%d ",a[i][j]); } puts(""); } puts(""); //PAUSE; return 0; }
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/55637.html