《敲了半个小时,只有43分》
查看原帖
《敲了半个小时,只有43分》
509176
ZHUYIHAN楼主2021/8/30 12:45
#include<iostream>
using namespace std;
int main()
{
	int n,l=0;
	cin>>n;
	char a[n+10][n+10],b[n+10][n+10],ans[n+10][n+10];
	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<=n;i++)
		for(int j=1;j<=n;j++)
		{
			b[j][i]=a[n-i+1][j];     // 90 ¶È // 
		}
	
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			
			if(b[i][j]==ans[i][j]) l++;     // 90 ¶È±È½Ï // 
		}
	
	}
	if(l==n*n)
	{
		cout<<"1";
		return 0;
	} 
	else l=0;
	
	
	
	
	
	
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			b[j][i]=a[n-i+1][j];     // 90 ¶È // 
		}
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)                            // 180 ¶È // 
		{
			b[j][i]=b[n-i+1][j];     // 90 ¶È // 
		}
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			
			if(b[i][j]==ans[i][j]) l++;     // 180 ¶È±È½Ï // 
		}
	if(l==n*n)
	{
		cout<<"2";
		return 0;
	} 
	else l=0;
	
	
	
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			b[i][j]=a[j][n-i+1];     // 270 ¶È // 
		}
	
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			
			if(b[i][j]==ans[i][j]) l++;     // 270 ¶È±È½Ï // 
		}
	
	}
	if(l==n*n)
	{
		cout<<"3";
		return 0;
	} 
	else l=0;
	
	
	
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			b[i][j]=a[i][n-j+1];     
		}
	
	for(int i=1;i<=n;i++)
	{                                           // ¾µÏñ //
		for(int j=1;j<=n;j++)
		{
			
			if(b[i][j]==ans[i][j]) l++;    
		}
	
	}
	if(l==n*n)
	{
		cout<<"4";
		return 0;
	} 
	else l=0;
	
	
	
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			b[i][j]=a[i][n-j+1];     // ¾µÏñ //
		}
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			b[j][i]=b[n-i+1][j];     // 90 ¶È // 
		}
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			
			if(b[i][j]==ans[i][j]) l++;     // 90 ¶È±È½Ï // 
		}
	if(l==n*n)
	{
		cout<<"5";
		return 0;
	} 
	
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			b[j][i]=b[n-i+1][j];     // 180 ¶È // 
		}
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			
			if(b[i][j]==ans[i][j]) l++;     // 90 ¶È±È½Ï // 
		}
	if(l==n*n)
	{
		cout<<"5";
		return 0;
	} 
	else l=0;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			b[j][i]=b[n-i+1][j];     // 270 ¶È // 
		}
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			
			if(b[i][j]==ans[i][j]) l++;     // 90 ¶È±È½Ï // 
		}
	if(l==n*n)
	{
		cout<<"5";
		return 0;
	} 
	else l=0;
	
	
	
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			
			if(a[i][j]==ans[i][j]) l++;     // 90 ¶È±È½Ï // 
		}
	if(l==n*n)
	{
		cout<<"6";
		return 0;
	} 
	else l=0;
	
	cout<<"7";
	return 0;
}

分为九个部分

  1. 顺时针旋转90度
  2. 顺时针旋转90度*2
  3. 逆时针旋转90度
  4. 镜像
  5. 镜像+90度
  6. 镜像+90度*2
  7. 镜像+90度*3
  8. 不变
  9. 直接输出7

测试点

2021/8/30 12:45
加载中...