社区讨论

壮观的模块化……

P1205[USACO1.2] 方块转换 Transformations参与者 6已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@mi6tko96
此快照首次捕获于
2025/11/20 10:36
4 个月前
此快照最后确认于
2025/11/20 10:36
4 个月前
查看原帖
一道普及- 的题目的代码能被我写得这么长,也是醉了~~~
CPP
#include<iostream>
using namespace std;

const int maxn=12;

char from[12][12],to[12][12],tmp[12][12],ttmp[12][12];

int n;

bool check()
{
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			if(tmp[i][j]!=to[i][j]) return false;
			
	return true;
}

bool t1()
{
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			tmp[j][n-i+1]=from[i][j];
	
	return check();
}

bool t2()
{
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			tmp[n-i+1][n-j+1]=from[i][j];
	
	return check();
}

bool t3()
{
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			tmp[j][i]=from[i][j];

	return check();
}

bool t4()
{
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			tmp[i][n-j+1]=from[i][j];

	return check();
}

bool t5()
{
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			ttmp[i][n-j+1]=from[i][j];
			
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			tmp[j][n-i+1]=ttmp[i][j];
		
	return check();
}

bool t6()
{
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			ttmp[i][n-j+1]=from[i][j];
			
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			tmp[n-i+1][n-j+1]=ttmp[i][j];

	return check();
}

bool t7()
{
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			ttmp[i][n-j+1]=from[i][j];
			
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			tmp[i][n-j+1]=ttmp[i][j];
		
	return check();
}

int main()
{	
	cin>>n;
	
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			cin>>from[i][j];
	
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			cin>>to[i][j];
	
	for(int i=1;i<=6;i++)
	{
		if(i==1)
			if(t1()){cout<<i;return 0;}
		
		if(i==2)
			if(t2()){cout<<i;return 0;}
			
		if(i==3)
			if(t3()){cout<<i;return 0;}
			
		if(i==4)
			if(t4()){cout<<i;return 0;}
			
		if(i==5)
			if(t5()||t6()||t7()){cout<<i;return 0;}
			
		if(i==6)
			for(int i=1;i<=n;i++)
				for(int j=1;j<=n;j++)
					if(from[i][j]!=to[i][j]){cout<<7;return 0;}
	}
	
	cout<<6;
	
	return 0;
}

本代码共有133行……

回复

5 条回复,欢迎继续交流。

正在加载回复...