社区讨论

本地评测通过,交上去14分

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

讨论操作

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

当前回复
3 条
当前快照
1 份
快照标识符
@mi6np802
此快照首次捕获于
2025/11/20 07:51
4 个月前
此快照最后确认于
2025/11/20 07:51
4 个月前
查看原帖
为什么本地评测测试点2答案是5,交上去是7???
CPP
#include<bits/stdc++.h>
using namespace std;
int n;
char c[15][15],cop[15][15],s[15][15],tmp[15][15];
void getc(char &ch){
	ch=getchar();
	while(ch==' '||ch=='\n')ch=getchar();
}
void print(int x){
	putchar('0'+x);
	exit(0);
}
void Roate(){
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			tmp[j][n-i+1]=c[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			c[i][j]=tmp[i][j];
		}
	}
}
bool Match(){
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(c[i][j]!=s[i][j])return false;
		}
	}
	return true;
}
bool copMatch(){
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(cop[i][j]!=s[i][j])return false;
		}
	}
	return true;
}
void Filp(){
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			tmp[i][n-j+1]=c[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			c[i][j]=tmp[i][j];
		}
	}
}
/*void prt(){
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			putchar(c[i][j]);
		}
		puts("");
	}
	puts("");
}*/
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++){
			getc(c[i][j]);
			cop[i][j]=c[i][j];
		}	
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			getc(s[i][j]);
	Roate();
	//prt();
	if(Match())print(1);
	Roate();
	//prt();
	if(Match())print(2);
	Roate();
	//prt();
	if(Match())print(3);
	Roate();
	Filp();
	//prt();
	if(Match())print(4);
	Roate();
	//prt();
	if(Match())print(5);
	Roate();
	//prt();
	if(Match())print(5);
	Roate();
	//prt();
	if(Match())print(5);
	if(copMatch())print(6);
	print(7);
	return 0;
}

回复

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

正在加载回复...