1 条题解

  • 0
    #include <bits/stdc++.h>
    using namespace std;
    const int N=30;
    int n;
    char a[N][N],b[N][N],c1[N][N],c2[N][N],c3[N][N],c54[N][N];
    char c4[N][N],c5[N][N],c6[N][N],c52[N][N],c53[N][N];
    bool d5=0;
    void f1()
    {
    	for(int i=0;i<n;i++)
    	{
    		for(int j=0;j<n;j++)
    		{
    			c1[i][j]=a[j][n-1-i];
    		}
    	}
    }
    void f2()
    {
    	for(int i=0;i<n;i++)
    	{
    		for(int j=0;j<n;j++)
    		{
    			c2[i][j]=c1[j][n-1-i];
    		}
    	}
    }
    void f3()
    {
    	for(int i=0;i<n;i++)
    	{
    		for(int j=0;j<n;j++)
    		{
    			c3[i][j]=c2[j][n-1-i];
    		}
    	}
    }
    void f4()
    {
    	for(int i=0;i<n;i++)
        {
            for(int j=0;j<n;j++)
            {
            	c4[i][n-j-1]=a[i][j];
    		}
        }
    }
    void f5()
    {
    	for(int i=0;i<n;i++)
    	{
    		for(int j=0;j<n;j++)
    		{
    			c5[i][j]=c4[i][j];
    		}
    	}
    	for(int i=0;i<n;i++)
    	{
    		for(int j=0;j<n;j++)
    		{
    			c52[i][j]=c5[j][n-1-i];
    		}
    	}
    	bool f=1;
    	for(int i=0;i<n;i++)
    	{
    		for(int j=0;j<n;j++)
    		{
    			if(c52[i][j]!=b[i][j])
    				f=0;
    		}
    	}
    	if(f)
    	{
    		cout<<5;
    		d5=1;
    		return;
    	}
    	for(int i=0;i<n;i++)
    	{
    		for(int j=0;j<n;j++)
    		{
    			c53[i][j]=c52[j][n-1-i];
    		}
    	}
    	f=1;
    	for(int i=0;i<n;i++)
    	{
    		for(int j=0;j<n;j++)
    		{
    			if(c53[i][j]!=b[i][j])
    				f=0;
    		}
    	}
    	if(f)
    	{
    		d5=1;
    		cout<<5;
    		return;
    	}
    	for(int i=0;i<n;i++)
    	{
    		for(int j=0;j<n;j++)
    		{
    			c54[i][j]=c53[j][n-1-i];
    		}
    	}
    	f=1;
    	for(int i=0;i<n;i++)
    	{
    		for(int j=0;j<n;j++)
    		{
    			if(c54[i][j]!=b[i][j])
    				f=0;
    		}
    	}
    	if(f)
    	{
    		d5=1;
    		cout<<5;
    		return;
    	}
    //	for(int i=0;i<n;i++)
    //	{
    //		for(int j=0;j<n;j++)
    //		{
    //			c5[i][j]=c54[i][j];
    //		}
    //	}
    //	bool f=1;
    //	for(int i=0;i<n;i++)
    //	{
    //		for(int j=0;j<n;j++)
    //		{
    //			if(c5[i][j]!=b[i][j])
    //				f=0;
    //		}
    //	}
    //	if(f)
    //	{
    //		d5=1;
    //		cout<<5;
    //		return;
    //	}
    }
    int main()
    {
    	cin>>n;
    	for(int i=0;i<n;i++)
    	{
    		for(int j=0;j<n;j++)
    		{
    			cin>>a[i][j];
    		}
    	}
    	for(int i=0;i<n;i++)
    	{
    		for(int j=0;j<n;j++)
    		{
    			cin>>b[i][j];
    		}
    	}
    	f1();
    	for(int i=1;i<=6;i++)
    	{
    		if(i==1)
    		{
    			f1();
    			bool f=1;
    			for(int i=0;i<n;i++)
    			{
    				for(int j=0;j<n;j++)
    				{
    					if(c1[i][j]!=b[i][j])
    					    f=0;
    				}
    			}
    			if(f)
    			{
    				cout<<1;
    				return 0;
    			}
    		}
    		if(i==2)
    		{
    			f2();
    			bool f=1;
    			for(int i=0;i<n;i++)
    			{
    				for(int j=0;j<n;j++)
    				{
    					if(c2[i][j]!=b[i][j])
    					    f=0;
    				}
    			}
    			if(f)
    			{
    				cout<<2;
    				return 0;
    			}
    		}
    		if(i==3)
    		{
    			f3();
    			bool f=1;
    			for(int i=0;i<n;i++)
    			{
    				for(int j=0;j<n;j++)
    				{
    					if(c3[i][j]!=b[i][j])
    					    f=0;
    				}
    			}
    			if(f)
    			{
    				cout<<3;
    				return 0;
    			}
    		}
    		if(i==4)
    		{
    			f4();
    			bool f=1;
    			for(int i=0;i<n;i++)
    			{
    				for(int j=0;j<n;j++)
    				{
    					if(c4[i][j]!=b[i][j])
    					    f=0;
    				}
    			}
    			if(f)
    			{
    				cout<<4;
    				return 0;
    			}
    		}
    		if(i==5)
    		{
    			f5();
    			if(d5==1)return 0;
    		}
    		if(i==6)
    		{
    			bool f=1;
    			for(int i=0;i<n;i++)
    			{
    				for(int j=0;j<n;j++)
    				{
    					if(a[i][j]!=b[i][j])
    					    f=0;
    				}
    			}
    			if(f)
    			{
    				cout<<6;
    				return 0;
    			}
    		}
    	}
    	cout<<7;
    	return 0;
    }
    
    • 1

    信息

    ID
    549
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    2
    已通过
    2
    上传者