奇怪的测评?!求助!
查看原帖
奇怪的测评?!求助!
982056
liyp楼主2023/11/28 21:51

本题链接

P1205 [USACO1.2] 方块转换 Transformations

为什么GCC 9 的测评和C++98的测评分数不一样,更重要的是把错误的样例点下载下来在自己的机子上跑就没错。

GCC 9 的测评记录 29分

C++ 98(O2) 的测评记录

C++ 98 的测评记录

求助,不知道是不是编译器的问题,我自己找不出答案

但是在自己的机子上跑就AK了

附上源代码(3个测评用的都是这个源代码)

#include<bits/stdc++.h>
using namespace std;
char a[11][11],b[11][11],f[11][11];
int n;
int xz(){
	bool d=1;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			f[i][j]=a[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			f[i][j]=f[n-j+1][i];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(f[i][j]!=b[i][j]) d=0;
		}
	}
	if(d) return 1;d=1;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			f[i][j]=f[n-j+1][i];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(f[i][j]!=b[i][j]) d=0;
		}
	}
	if(d) return 2;d=1;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			f[i][j]=f[n-j+1][i];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(f[i][j]!=b[i][j]) d=0;
		}
	}
	if(d) return 3;
	return 0;
}
int fz(){
	bool d=true;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++) f[i][j]=a[i][n-j+1];
	}
	/*
	for(int i=1;i<=n;i++) 
	{
		for(int j=1;j<=n;j++) cout<<a[i][j];
		cout<<endl;
	}*/
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(f[i][j]!=b[i][j]) {d=0;break;}
		}
	}
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++) a[i][j]=f[i][j];
	if(d) return 4;
	int ans=xz();
	if(ans) return 5;
}
int main()
{
	//freopen("1.in","r",stdin);
	//freopen("1.out","w",stdout);
	int ans;bool d=true;
	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];
	for(int i=1;i<=n;i++) 
		for(int j=1;j<=n;j++){
			if(b[i][j]!=a[i][j]){
				d=false;
				break;
			}
		}
	if(d){
		cout<<6;
		return 0;
	}
	ans=xz();
	if(ans){
		cout<<ans;
		return 0;
	}
	ans=fz();
	if(ans){
		cout<<ans;
		return 0;
	}
	cout<<7;
	/*
	for(int i=1;i<=n;i++) 
	{
		for(int j=1;j<=n;j++) cout<<a[i][j];
		cout<<endl;
	}
	*/
	return 0;
}
2023/11/28 21:51
加载中...