1 条题解

  • 0
    @ 2025-4-12 21:43:13

    C :

    #include<stdio.h>
    int t,n,a[11][11],b[11][11],c[11][11],i,j,d[11][11];
    void a1()
    {
    	int k,l;
    	for(k=0,i=0;k<n;k++,i++)
    		for(l=n-1,j=0;l>=0;l--,j++)
    			c[i][j]=d[l][k];
    }
    void a2()
    {
    	int k,l;
    	for(k=n-1,i=0;k>=0;k--,i++)
    		for(l=n-1,j=0;l>=0;l--,j++)
    			c[i][j]=d[k][l];
    }
    void a3()
    {
    	int k,l;
    	for(k=n-1,i=0;k>=0;k--,i++)
    		for(l=0,j=0;l<n;l++,j++)
    			c[i][j]=d[l][k];
    }
    void a4()
    {
    	int k,l;
    	for(k=0,i=0;k<n;k++,i++)
    		for(l=n-1,j=0;l>=0;l--,j++)
    			d[i][j]=a[k][l];
    }
    void a5()
    {
    	for(i=0;i<n;i++)
    		for(j=0;j<n;j++)
    			d[i][j]=a[i][j];
    }
    void a6()
    {
    	for(i=0;i<n;i++)
    		for(j=0;j<n;j++)
    			c[i][j]=d[i][j];
    }
    int bj()
    {
    	for(i=0;i<n;i++)
    		for(j=0;j<n;j++)
    			if(b[i][j]!=c[i][j])return(0);
    	return(1);
    }
    void main()
    {
    	char ch;
    	while(scanf("%d\t",&n)!=EOF){
    	for(i=0;i<n;i++)
    	{
    		for(j=0;j<n;j++)
    		{
    			ch=getchar();
    			if(ch=='@')a[i][j]=2;else a[i][j]=1;
    		}
    		getchar();
    	}
    	for(i=0;i<n;i++)
    	{
    		for(j=0;j<n;j++)
    		{
    			ch=getchar();
    			if(ch=='@')b[i][j]=2;else b[i][j]=1;
    		}
    		getchar();
    	}
    	a5();a1();
    	if(bj())printf("1\n");
    	else {a2();if(bj())printf("2\n");
    	else {a3();if(bj())printf("3\n");
    	else {a4();a6();if(bj())printf("4\n");
    	else {a4();a1();if(bj())printf("5\n");
    	else {a4();a2();if(bj())printf("5\n");
    	else {a4();a3();if(bj())printf("5\n");
    	else {a5();a6();if(bj())printf("6\n");
    	else printf("7\n");}}}}}}}}
    }
    

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    #define maxn 12
    int n;
    char aas[4][maxn][maxn];
    int check(int from,int to)
    {
        for (int i=0;i<n;i++){
            for (int s=0;s<n;s++){
                if (aas[to][i][s]!=aas[from][i][s]) return 0;
            }
        }
        return 1;
    }
    void xuan(int from,int to)
    {
        for (int i=0;i<n;i++){
            for (int s=0;s<n;s++){
                aas[to][s][n-1-i] =aas[from][i][s];
            }
        }
    }
    void yidong(int from,int to)
    {
        for (int i=0;i<n;i++){
            for (int s=0;s<n;s++){
                aas[to][i][s] = aas[from][i][n-1-s];
            }
        }
    }
    int f(int ans)
    {
        if (ans==1){
            xuan(0,2);
            if (check(1,2)) return 1;
        }
        if (ans==2){
            xuan(0,2);
            xuan(2,3);
            if (check(1,3)) return 1;
        }
        if (ans==3){
            xuan(0,2);
            xuan(2,3);
            xuan(3,2);
            if (check(1,2)) return 1;
        }
        if (ans==4){
            yidong(0,2);
            if (check(2,1)) return 1;
        }
        if (ans==5){
            yidong(0,2);
            {
                xuan(2,3);
                if (check(1,3)) return 1;
                xuan(3,2);
                if (check(1,2)) return 1;
                xuan(2,3);
                if (check(1,3)) return 1;
            }
        }
        if (ans==6){
            if (check(0,1)) return 1;
        }
        if (ans==7){
            return 1;
        }
    }
    int main()
    {
        while(scanf("%d",&n)!=EOF){
            for (int i=0;i<n;i++){
                scanf("%s",aas[0][i]);
            }
            for (int i=0;i<n;i++){
                scanf("%s",aas[1][i]);
            }
            for (int i=1;i<=7;i++){
                if (f(i)) {
                    printf("%d\n",i);
                    break;
                }
            }
        }
        return 0;
    }
    
    
    • 1

    信息

    ID
    1216
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者