Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 5802 | Accepted: 2731 |
Description
Input
Output
Sample Input
5 1 6 1 4 5 6 3 9 2 6 8 6 1 7
Sample Output
22
Source
#include<iostream> #include<algorithm> #include<queue> #include<cmath> #include<cstring> #include<cstdlib> #include<cstdio> using namespace std; const int N=20005; const int oo=0x3f3f3f3f; int x,y,z; struct node{ int v,l,next; }e[N]; int vis[N],d[N],head[N]; int ans,k,cnt,biu; void add_bian(int u,int v,int l){ cnt++; e[cnt].v=v; e[cnt].l=l; e[cnt].next=head[u]; head[u]=cnt; cnt++; e[cnt].v=u; e[cnt].l=l; e[cnt].next=head[v]; head[v]=cnt; } void dfs(int u,int t){ for(int i=head[u];i;i=e[i].next){ int v=e[i].v; if(vis[v]==0){ vis[v]=1; d[v]=t+e[i].l; if(d[v]>ans) { ans=d[v]; biu=v; } dfs(v,d[v]); } } } int main(){ freopen("2631.in","r",stdin); freopen("2631.out","w",stdout); while(scanf("%d %d %d",&x,&y,&z)!=EOF) add_bian(x,y,z); memset(vis,0,sizeof(vis)); vis[1]=1; ans=0; dfs(1,0); memset(vis,0,sizeof(vis)); vis[biu]=1; ans=0; dfs(biu,0); printf("%d\n",ans); return 0; }
原文:https://www.cnblogs.com/wuhu-JJJ/p/11239513.html