描述:这道题还是依靠欧拉回路才完成的,只不过这道题要完成一条循环链,相当于一个圆,然后依次输出就可以了,所以任何数字必须呈现偶数才可以
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int s[55][55];
void dfs(int site)
{
for(int i=1; i<=50; i++)
if(s[site][i]>0)
{
s[site][i]--;
s[i][site]--;
dfs(i);
printf("%d %d\n",i,site);
}
}
int main()
{
//freopen("a.txt","r",stdin);
int flag,n,m,x,y,count(1);
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
flag=0;
memset(s,0,sizeof(s));
while(m--)
{
scanf("%d%d",&x,&y);
s[x][y]++;
s[y][x]++;
s[x][0]++;
s[y][0]++;
}
for(int i=0; i<50; i++)
if((s[i][0]%2))
{
flag=1;
break;
}
printf("Case #%d\n",count);
if(flag) printf("some beads may be lost\n");
else dfs(x);
if(n) printf("\n");
count++;
}
return 0;
}
10054 - The Necklace
最新推荐文章于 2021-07-22 21:57:12 发布