开O2才能过?
查看原帖
开O2才能过?
86633
Shabby_fish楼主2020/12/18 22:10

代码:

#include<iostream>
using namespace std;
int n,in[150],fir,cnt,go=125;
bool f[150][150];
char ans[150];
void find(int t)
{
	for(int i=1;i<=125;i++)
	  if(f[t][i])
	  {
	  	f[t][i]=f[i][t]=0;
	  	find(i);
	  }
	ans[n--]=t;
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		char a,b;
		cin>>a>>b;
		f[a][b]=f[b][a]=1;
		in[a]++;
		in[b]++;
		if(a<go)
		  go=a;
		if(b<go)
		  go=b;
	}
	for(int i=125;i>1;i--)
	  if(in[i]%2)
	  {
	  	cnt++;
	  	fir=i;
	  }
	switch(cnt)
	{
		case 2:find(fir);break;
		case 0:find(go);break;
		default:cout<<"No Solution";return 0;
	}
	cout<<ans;
	return 0;
}

求大佬指教:哪里有问题?

2020/12/18 22:10
加载中...