比赛 |
20120914 |
评测结果 |
AAAAAAAAAA |
题目名称 |
悠闲的漫步 |
最终得分 |
100 |
用户昵称 |
日光。 |
运行时间 |
0.243 s |
代码语言 |
C++ |
内存使用 |
34.78 MiB |
提交时间 |
2012-09-14 20:33:48 |
显示代码纯文本
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <string>
#include <fstream>
using namespace std;
int map[3005][3005];
int END[3005],P;
int visit[3005],key,ans=0;
void dfs(int v,int step)
{
if(END[v])
{
if(step>ans) ans=step;
return ;
}
for(int i=1;i<=key;i++)
if(!visit[i]&&map[v][i])
{
visit[i]=1;
dfs(i,step+1);
visit[i]=0;
}
}
int main()
{
ifstream fin("stroll.in");
ofstream fout("stroll.out");
memset(END,0,sizeof(END));
memset(visit,0,sizeof(visit));
memset(map,0,sizeof(map));
fin>>P;
key=P;
for(int i=0;i<P-1;i++)
{
int a,b,c;
fin>>a>>b>>c;
if(b==0)
{
map[a][key]=1;
END[key]=1;
key++;
}
if(b!=0) map[a][b]=1;
if(c==0)
{
map[a][key++]=1;
END[key]=1;
key++;
}
if(c!=0) map[a][c]=1;
}
visit[1]=1;
dfs(1,0);
fout<<ans<<endl;
return 0;
}