10 条题解

  • -1
    @ 2023-5-5 13:10:05
    #include<iostream>
    using namespace std;
    int n,q,a[110][110],c;
    void x1(){
    	int b[110];
    	for(int i=1;i<=n;i++)b[i]=a[1][i];
    	for(int i=1;i<n;i++){
    		for(int j=1;j<=n;j++)a[i][j]=a[i+1][j];
    	}
    	for(int i=1;i<=n;i++)a[n][i]=b[i];
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=n;j++)printf("%d ",a[i][j]);
    		cout<<endl;
    	}
    	cout<<endl;
    }
    void x2(){
    	int b[110];
    	for(int i=1;i<=n;i++)b[i]=a[n][i];
    	for(int i=n;i>=2;i--){
    		for(int j=1;j<=n;j++)a[i][j]=a[i-1][j];
    	}
    	for(int i=1;i<=n;i++)a[1][i]=b[i];
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=n;j++)printf("%d ",a[i][j]);
    		cout<<endl;
    	}
    	cout<<endl;
    }
    void x3(){
    	int b[110];
    	for(int i=1;i<=n;i++)b[i]=a[i][1];
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<n;j++)a[i][j]=a[i][j+1];
    	}
    	for(int i=1;i<=n;i++)a[i][n]=b[i];
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=n;j++)printf("%d ",a[i][j]);
    		cout<<endl;
    	}
    	cout<<endl;
    }
    void x4(){
    	int b[110];
    	for(int i=1;i<=n;i++)b[i]=a[i][n];
    	for(int i=1;i<=n;i++){
    		for(int j=n;j>=2;j--)a[i][j]=a[i][j-1];
    	}
    	for(int i=1;i<=n;i++)a[i][1]=b[i];
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=n;j++)printf("%d ",a[i][j]);
    		cout<<endl;
    	}
    	cout<<endl;
    }
    void x5(){
    	int b[110][110];
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=n;j++){
    			b[j][n+1-i]=a[i][j];
    		}
    	}
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=n;j++){
    			a[i][j]=b[i][j];
    		}
    	}
    }
    void x6(){
    	x5();x5();
    }
    void x7(){
    	x5();x5();x5();
    }
    int main(){
    	scanf("%d%d",&n,&q);
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=n;j++)scanf("%d",&a[i][j]);
    	}
    	for(int i=1;i<=q;i++){
    		cin>>c;
    		if(c==1)x1();
    		if(c==2)x2();
    		if(c==3)x3();
    		if(c==4)x4();
    		if(c==5){
    			x5();
    			for(int i=1;i<=n;i++){
    			for(int j=1;j<=n;j++)printf("%d ",a[i][j]);
    			cout<<endl;
    			}
    			cout<<endl;	
    		}
    		if(c==6){
    			x6();
    			for(int i=1;i<=n;i++){
    			for(int j=1;j<=n;j++)printf("%d ",a[i][j]);
    			cout<<endl;
    			}
    			cout<<endl;	
    		}
    		if(c==7){
    			x7();
    			for(int i=1;i<=n;i++){
    			for(int j=1;j<=n;j++)printf("%d ",a[i][j]);
    			cout<<endl;
    			}
    			cout<<endl;	
    		}
    	}
    }
    /*
    把最上面一行平移到最下面。
    把最下面一行平移到最上面。
    把最左边一行平移到最右边。
    把最右边一行平移到最左边。
    顺时针旋转 90°。
    顺时针旋转 180°。
    顺时针旋转 270°。
    3 5
    1 2 3
    4 5 6
    7 8 9
    1 2 3 4 5
    */
    

    信息

    ID
    2956
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    649
    已通过
    166
    上传者