求助:关于本地和洛谷IDE
查看原帖
求助:关于本地和洛谷IDE
448884
快乐的大童楼主2022/1/16 17:43
#include<bits/stdc++.h>
#define il inline
using namespace std;
typedef long long ll;
inline int R(){
	int x=0,f=1;char ch=getchar();
	while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}
	while(isdigit(ch)){x=(x<<1)+(x<<3)+(ch&15);ch=getchar();}return x*f;
}
const int N=12,d[9]={0,2,3,4,5,6,7,8,0};
int n,cnt;
char c[N][N][N];//0 初始;1 目标;2 90度翻转;3 180度翻转 
//4 270度翻转;5 水平翻转;6~8 分别组合2~4和5 
namespace turn{
	il void turn_90(int x,int y){
		for(int i=1;i<=n;i++)
			for(int j=1;j<=n;j++)
				c[y][j][n-i+1]=c[x][i][j];
	}
	il void turn_mid(int x,int y){
		for(int i=1;i<=n;i++)
			for(int j=1;j<=n;j++)
				c[y][i][n-j+1]=c[x][i][j];
	}
	il bool check(int x,int y){
		for(int i=1;i<=n;i++)
			for(int j=1;j<=n;j++)
				if(c[x][i][j]!=c[y][i][j])
					return false;
		return true;
	}
}
using namespace turn;
int main(){
	n=R();
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++)
			c[0][i][j]=getchar();
		getchar();
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++)
			c[1][i][j]=getchar();
		getchar();
	}
	turn_90(0,2);
	turn_90(2,3);
	turn_90(3,4);
	turn_mid(0,5);
	turn_90(5,6);
	turn_90(6,7);
	turn_90(7,8); 
	for(int i=1;i<=8;i++){//和1比对 
		if(check(d[i],1)){
			if(i>=5&&i<=7) putchar(53);
			else if(i==8) putchar(54);
			else putchar(48+i);
			return 0;
		}
	}
	putchar(55);
}

数据: input:

5
-@@@-
-@@--
-@---
-----
-----
-----
----@
---@@
--@@@
-----

output:

5

同一份代码,本地运行结果为5(也就是正确的运行结果),洛谷IDE运行结果为7?

2022/1/16 17:43
加载中...