记录编号 |
16060 |
评测结果 |
WWWTT |
题目名称 |
烟花的寿命 |
最终得分 |
0 |
用户昵称 |
苏轼 |
是否通过 |
未通过 |
代码语言 |
C++ |
运行时间 |
2.015 s |
提交时间 |
2010-04-19 12:03:09 |
内存使用 |
1.23 MiB |
显示代码纯文本
#include <cstdio>
#include <cstring>
using namespace std;
const int MAXN=1003;
int T;
bool g[MAXN+1][MAXN+1],visited[MAXN];
int N;
int ans,way[MAXN],wayy[MAXN];
void dfs(int x,int dep)
{
way[dep]=x;
visited[x]=true;
bool flag=false;
for(int i=1;i<=N;i++)
if (i!=x&&g[i][x]&&!visited[i])
{
dfs(i,dep+1);flag=true;
}
if (!flag&&dep>ans)
{
ans=dep;
for(int i=0;i<=dep;i++)wayy[i]=way[i];
}
}
void solve()
{
memset(g,false,sizeof(g));
ans=0;
scanf("%d",&N);
for(int i=1;i<N;i++)
{
int a,b;
scanf("%d%d",&a,&b);
g[a][b]=g[b][a]=true;
}
for(int i=1;i<=N;i++)
{
memset(visited,false,sizeof(visited));
dfs(i,0);
}
printf("%d\n",ans);
for(int i=0;i<=ans;i++)
printf("%d\n",wayy[i]);
}
int main()
{
freopen("firework.in","r",stdin);
freopen("firework.out","w",stdout);
scanf("%d",&T);
for(int i=0;i<T;i++)
solve();
}