救命j后面的排列会坏掉
查看原帖
救命j后面的排列会坏掉
324314
过气人类楼主2021/6/7 14:17

卡在第五个数据点最后三位应该是jab解果输出jba 试了一下发现所有j对应的子节点都会乱掉,求助!

#include<bits/stdc++.h>
using namespace std;
int aright[30],aleft[30],alast[30]={},vis[30]={},n,t1,t2,t3,num=0;
char in[30][3];
void dfs(int x)
{
	if(x==-54)	return;
	if(num==n)	return;
	printf("%c",x-1+'a');
	num++;
	dfs(aright[x]);
	dfs(aleft[x]);
}
int main()
{
	int p;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>in[i];
		t1 = in[i][0] - 'a' + 1;
		t2 = in[i][1] - 'a' + 1;
		t3 = in[i][2] - 'a' + 1;
		vis[t1]=1;
		aright[t1] = t2, aleft[t1] = t3;
		alast[t2] = t1 , alast[t3] = t1;
	}
	for(int i=1;i<=30;i++)
	{
		if(alast[i]==0&&vis[i]==1)	p=i;
	}
	dfs(p);
//	cout<<aright[4];
	
}
2021/6/7 14:17
加载中...