社区讨论

为何测试点2、7不过??

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

讨论操作

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

当前回复
3 条
当前快照
1 份
快照标识符
@lr0gujr1
此快照首次捕获于
2024/01/05 18:01
2 年前
此快照最后确认于
2024/01/05 20:50
2 年前
查看原帖
CPP
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;

char t[11][11],tt[11][11];

bool xiangdeng(int n,char t1[11][11],char s[11][11]){
	for(int i = 1;i <= n;i++){
		for(int j = 1;j <= n;j++){
			if(t1[i][j] != s[i][j]){
				return 0;
			}
		}
	}
	return 1;
}

bool number1(int n,char a[11][11],char b[11][11]){
	for(int i = 1;i <= n;i++){
		for(int j = 1;j <= n;j++){
			t[i][j] = a[n - j + 1][i];
		}
	}
	if(xiangdeng(n,t,b) == 1){
		return 1;
	}
	else{
		return 0;
	}
}

bool number2(int n,char a[11][11],char b[11][11]){
	for(int i = 1;i <= n;i++){
		for(int j = 1;j <= n;j++){
			tt[i][j] = a[n - i + 1][n - j + 1];
		}
	}
	if(xiangdeng(n,tt,b) == 1){
		return 1;
	}
	else{
		return 0;
	}
}

bool number3(int n,char a[11][11],char b[11][11]){
	for(int i = 1;i <= n;i++){
		for(int j = 1;j <= n;j++){
			t[i][j] = a[j][n - i + 1];
		}
	}
	if(xiangdeng(n,t,b) == 1){
		return 1;
	}
	else{
		return 0;
	}
}

bool number4(int n,char a[11][11],char b[11][11]){
	for(int i = 1;i <= n;i++){
		for(int j = 1;j <= n;j++){
			t[i][j] = a[i][n - j + 1];
		}
	}
	if(xiangdeng(n,t,b) == 1){
		return 1;
	}
	else{
		return 0;
	}
}

bool number5(int n,char a[11][11],char b[11][11]){
	for(int i = 1;i <= n;i++){
		for(int j = 1;j <= n;j++){
			t[i][j] = a[i][n - j + 1];
		}
	}
	if(number1(n,t,b) == 1 || number2(n,t,b) == 1 || number3(n,t,b) == 1){
		return 1;
	}
	else{
		return 0;
	}
}

int main(){
	int n;
	char a[11][11],b[11][11];
	cin>>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>>b[i][j];
		}
	}
	if(number1(n,a,b)){
		cout<<1<<endl;
		return 0;
	}
	else if(number2(n,a,b)){
		cout<<2<<endl;
		return 0;
	}
	else if(number3(n,a,b)){
		cout<<3<<endl;
		return 0;
	}
	else if(number4(n,a,b)){
		cout<<4<<endl;
		return 0;
	}
	else if(number5(n,a,b)){
		cout<<5<<endl;
		return 0;
	}
	else if(xiangdeng(n,a,b)){
		cout<<6<<endl;
		return 0;
	}
	cout<<7<<endl;
	return 0;
}

回复

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

正在加载回复...