10 条题解

  • 0
    @ 2023-5-6 20:39:25

    煎蛋

    #include<iostream>
    using namespace std;
    int a[101][101],p,n;
    int b[101],x;
    void print(){
    	for(int i = 1; i <= n; i ++ ){
    		for(int j = 1; j <= n; j ++ ){
    			printf("%d ",a[i][j]);
    		}
    		puts("");
    	}
    	puts("");
    }
    int main(){
    	scanf("%d%d",&n,&p);
    	for(int i = 1; i <= n; i ++ ){
    		for(int j = 1; j <= n; j ++ ){
    			scanf("%d",&a[i][j]);
    		}
    	}
    	for(int i = 1; i <= p; i ++ ){
    		scanf("%d",&x);
    		if(x==1){
    			for(int j = 1; j <= n; j ++ ){
    				b[j]=a[1][j];
    			}
    			for(int j = 1; j < n; j ++ ){
    				for(int k = 1; k <= n; k ++ ){
    					a[j][k]=a[j+1][k];
    				}
    			}
    			for(int j = 1; j <= n; j ++ ){
    				a[n][j]=b[j];
    			}
    			print();
    		}else if(x==2){
    			for(int j = 1; j <= n; j ++ ){
    				b[j]=a[n][j];
    			}
    			for(int j = n; j >= 1; j -- ){
    				for(int k = 1; k <= n; k ++ ){
    					a[j][k]=a[j-1][k];
    				}
    			}
    			for(int j = 1; j <= n; j ++ ){
    				a[1][j]=b[j];
    			}
    			print();
    		}else if(x==3){
    			for(int j = 1; j <= n; j ++ ){
    				b[j]=a[j][1];
    			}
    			for(int j = 1; j < n; j ++ ){
    				for(int k = 1; k <= n; k ++ ){
    					a[k][j]=a[k][j+1];
    				}
    			}
    			for(int j = 1; j <= n; j ++ ){
    				a[j][n]=b[j];
    			}
    			print();
    		}else if(x==4){
    			for(int j = 1; j <= n; j ++ ){
    				b[j]=a[j][n];
    			}
    			for(int j = n; j > 1; j -- ){
    				for(int k = 1; k <= n; k ++ ){
    					a[k][j]=a[k][j-1];
    				}
    			}
    			for(int j = 1; j <= n; j ++ ){
    				a[j][1]=b[j];
    			}
    			print();
    		}else if(x==5){
    			int c[101][101];
    			for(int j = 1; j <= n; j ++ ){
    				for(int k = 1; k <= n; k ++ ){
    					c[j][k]=a[n-k+1][j];
    				}
    			}
    			for(int j = 1; j <= n; j ++ ){
    				for(int k = 1; k <= n; k ++ ){
    					a[j][k]=c[j][k];
    				}
    			}
    			print();
    		}else if(x==6){//懒得写就把操作5写了两遍
    			int c[101][101];
    			for(int j = 1; j <= n; j ++ ){
    				for(int k = 1; k <= n; k ++ ){
    					c[j][k]=a[n-k+1][j];
    				}
    			}
    			for(int j = 1; j <= n; j ++ ){
    				for(int k = 1; k <= n; k ++ ){
    					a[j][k]=c[j][k];
    				}
    			}
    			for(int j = 1; j <= n; j ++ ){
    				for(int k = 1; k <= n; k ++ ){
    					c[j][k]=a[n-k+1][j];
    				}
    			}
    			for(int j = 1; j <= n; j ++ ){
    				for(int k = 1; k <= n; k ++ ){
    					a[j][k]=c[j][k];
    				}
    			}
    			print();
    		}else if(x==7){
    			int c[101][101];
    			for(int j = 1; j <= n; j ++ ){
    				for(int k = 1; k <= n; k ++ ){
    					c[j][k]=a[k][n-j+1];
    				}
    			}
    			for(int j = 1; j <= n; j ++ ){
    				for(int k = 1; k <= n; k ++ ){
    					a[j][k]=c[j][k];
    				}
    			}
    			print();
    		}
    	}
    }
    

    信息

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