tg C题20分代码挂掉变0分,求问原因
  • 板块灌水区
  • 楼主TerryGong
  • 当前回复5
  • 已保存回复5
  • 发布时间2021/10/30 22:01
  • 上次更新2023/11/4 01:50:03
查看原帖
tg C题20分代码挂掉变0分,求问原因
167689
TerryGong楼主2021/10/30 22:01

RT\mathrm{\colorbox{aqua}{\color{red}{RT}}}

蒟蒻很菜,不知道原因,所以在这里问一下;

经检查,文件名、文件夹均没有问题。

另:蒟蒻实在是太菜了,对于这 2020 分非常看重,因此求大佬解答原因 以便申诉

#include <ctime>
#include <cstdio>
#include <string>
#include <vector>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#define N 500010
#define int long long
using namespace std;
inline bool isdigit(char x){return x>='0'&&x<='9';}
inline int read(){
	char x=getchar();int fl=1,ans=0;
	while(!isdigit(x)){if(x=='-')fl=-1;x=getchar();}
	while(isdigit(x)){ans=(ans<<3)+(ans<<1)+(int)(x-'0');x=getchar();}
	return fl*ans;
}
char inf[]="palin.in",ouf[]="palin.out";
int a[N],buca[N],mina,maxa,n;
bool isSuccessful;
vector<int> b;
inline int gmin(int x,int y){return x<y?x:y;}
inline int gmax(int x,int y){return x>y?x:y;}
void dfs(int cur,int fir,int las,string answer){
	if(cur==n+1){cout<<answer<<endl;isSuccessful=true;return;}
	if((b[n-cur+1]!=a[fir]&&b[n-cur+1]!=a[las])||isSuccessful)return;
	if(b[n-cur+1]==a[fir]){
		string aanswer=answer;
		aanswer+='L';
		dfs(cur+1,fir+1,las,aanswer);
	}
	if(!isSuccessful&&b[n-cur+1]==a[las]){
		string aanswer=answer;
		aanswer+='R';
		dfs(cur+1,fir,las-1,aanswer);
	}
	return;
}
void summon(int cur,int lef,int rig,string answer){
	if(isSuccessful)return;
	if(cur==n+1){
		dfs(1,lef,rig,answer);
		return;
	}
	b.push_back(a[lef]);
	summon(cur+1,lef+1,rig,answer+'L');
	b.pop_back();
	b.push_back(a[rig]);
	summon(cur+1,lef,rig-1,answer+'R');
	b.pop_back();
	return;
}
signed main(){
	ios::sync_with_stdio(false);
	freopen(inf,"r",stdin);
	freopen(ouf,"w",stdout);
int T=read();
while(T--){
	n=read();
	isSuccessful=false;
	/*
	memset(buca,0,sizeof(a));
	memset(bucb,0,sizeof(b));
	bool isSucceed=true;
	for(int i=1;i<=2*n;i++){
		a[i]=read();
		buca[a[i]]++;
		mina=gmin(a[i],mina);
		maxa=gmax(a[i],maxa);
	}
	for(int i=mina;i<=maxa;i++){
		if(buca[i]&2){
			printf("-1\n");
			isSucceed=false;
			break;
		}
	}
	if(!isSucceed)
		continue;
	*/
	for(int i=1;i<=2*n;i++)a[i]=read();
	b.clear();b.push_back(0);
	summon(1,1,2*n,"");
	if(!isSuccessful)printf("-1\n");
}
	fclose(stdin);
	fclose(stdout);
	return 0;
}
//Only Brute_Force Search :( 28pts
2021/10/30 22:01
加载中...