正解会写 求暴力帮改
查看原帖
正解会写 求暴力帮改
366430
AndyC楼主2022/10/17 10:26

P7915

#include<bits/stdc++.h>
using namespace std;
int n,a[50005],b[500005];
deque<int> da,db;
int save[10005];
bool ceck(deque<int> qq){
//	return false;
	int m=qq.size();
	
	m/=2;
	for(int i=1;i<m;i++){
		int use2=qq.front();
		int use1=qq.back(); 
		if(use1!=use2){
			return false;
		}
		else{
			qq.pop_back();
			qq.pop_front();
		}
	}
	return 1;
}
int tot=0;
// a's front to b's end    del from a
// a's end to b's end      del from a
bool dfs(){
	if(ceck(db)==true){
		return true;
	}
	int k;
	k=da.front();
	db.push_back(k);
	da.pop_front();
	if(dfs()==true){
		save[++tot]=1;
	}
	da.push_front(k);
	
	k=da.back();
	db.push_back(k);
	da.pop_back();
	if(dfs()==true){
		save[++tot]=2;
	}
	da.push_back(k);
}
int main(){
	int T;
	cin>>T;
	while(T--){
		tot=0;
		while(!da.empty()) da.pop_back();
		while(!db.empty()) db.pop_back();
		cin>>n;
		for(int i=1;i<=n/2;i++){
			cin>>a[i];
			da.push_back(a[i]); 
		}
		for(int i=1;i<=n/2;i++){
			cin>>b[i];
			db.push_back(b[i]); 
		}
		dfs();
		cout<<tot<<endl;
		for(int i=tot;i>=1;i--){
			
			if(save[i]==1){
				cout<<'L';
			}
			else cout<<'R';
		}
		
	} 
	return 0;
}
2022/10/17 10:26
加载中...