找只有貫穿連接1個點的端點,作DFS深切(能走多遠就走多遠 並把最遠的距離記載下來)
C語言要過就要開相鄰矩陣翻譯社不外要看測資...不外華頓翻譯公司想2ms不太可能點會到10000,應該是唬人的翻譯
2007 NPSC G. 丁丁共和國 的翻版
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
short int map[10001][50]={0},flag[10001]={0},max=0,maptop[10001]={0};
void DFS(int now翻譯社int time,int top)
{
if(time>max) max=time;
int a翻譯社b;
for(a=0;a<maptop[now];a++)
if(flag[map[now][a]]==0)
{
flag[map[now][a]]=1;
DFS(map[now][a]翻譯社time+1,top);
flag[map[now][a]]=0;
}
}
main()
{
int n;
while(scanf("%d",&n)==1)
{
int a,b,c翻譯社start[10001]={0};
int flagx,flagy;
for(flagx=0;flagx<n;flagx++)
{
while(scanf("%d",&flagy)==1&&flagy!=-1)
{
map[flagx][maptop[flagx]]=flagy;
maptop[flagx]++;
map[flagy][maptop[flagy]]=flagx;
maptop[flagy]++;
start[flagy]++;
start[flagx]++;
}
}
max=0;
for(a=0;a<n;a++)
if(start[a]==1)
{
flag[a]=1;
DFS(a,0,n);
flag[a]=0;
}
printf("%d
",max);
for(a=0;a<=n;a++)
maptop[a]=0;
}
return 0;
}
/*
5
1 2 -1
3 -1
4 -1
-1
-1
6
1 -1
2 3 4 5 -1
-1
-1
-1
-1
*/
作法:DFS
/***********************************************************/
以下文章來自: http://mypaper.pchome.com.tw/iustlovefish/post/1313353087有關各國語文翻譯公證的問題歡迎諮詢華頓翻譯公司02-77260932
留言列表