1 条题解

  • 1
    @ 2023-10-18 19:07:58

    旋转

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    int n;
    char a[11][11],u[11][11],ans[11][11];
    bool check()
    {
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=n;j++)
    			if(a[i][j]!=ans[i][j])
    				return 0;
    	return 1;
    }
    void turn()
    {
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=n;j++)
    			u[i][j]=a[i][j];
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=n;j++)
    			a[j][n-i+1]=u[i][j];
    }
    void change()
    {
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=n;j++)
    			u[i][j]=a[i][j];
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=n;j++)
    			a[i][n-j+1]=u[i][j];
    }
    int main()
    {
    	scanf("%d",&n);
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=n;j++)
    			cin>>a[i][j];
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=n;j++)
    			cin>>ans[i][j];
    	for(int i=1;i<=3;i++)
    	{
    		turn();
    		if(check()){printf("%d",i);return 0;}
    	}
    	turn();
    	change();
    	if(check()){cout<<4;return 0;}
    	for(int i=1;i<=3;i++)
    	{
    		turn();
    		if(check()){cout<<5;return 0;}
    	}
    	if(check()){cout<<6;return 0;}
    	cout<<7<<endl;
    	return 0;
    }
    
    • 1

    信息

    ID
    206
    时间
    1000ms
    内存
    125MiB
    难度
    3
    标签
    递交数
    7
    已通过
    5
    上传者