POJ 1985 Cow Marathon(树的直径)
2018-06-17 22:12:58来源:未知 阅读 ()
Time Limit: 2000MS | Memory Limit: 30000K | |
Total Submissions: 5357 | Accepted: 2630 | |
Case Time Limit: 1000MS |
Description
Input
Output
Sample Input
7 6 1 6 13 E 6 3 9 E 3 5 7 S 4 1 3 N 2 4 20 W 4 7 2 S
Sample Output
52
Hint
Source
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #define lli long long int 6 using namespace std; 7 const int MAXN=100001; 8 void read(int &n) 9 { 10 char c='+';int x=0;bool flag=0; 11 while(c<'0'||c>'9'){c=getchar();if(c=='-')flag=1;} 12 while(c>='0'&&c<='9') 13 x=(x<<1)+(x<<3)+c-48,c=getchar(); 14 flag==1?n=-x:n=x; 15 } 16 struct node 17 { 18 int u,v,w,nxt; 19 }edge[MAXN]; 20 int head[MAXN]; 21 int num=1; 22 int n,m; 23 void add_edge(int x,int y,int z) 24 { 25 edge[num].u=x; 26 edge[num].v=y; 27 edge[num].w=z; 28 edge[num].nxt=head[x]; 29 head[x]=num++; 30 } 31 int dp[MAXN]; 32 int ans=0; 33 int ed=0; 34 void dfs(int u,int fa,int now) 35 { 36 if(now>ans) 37 { 38 ans=now; 39 ed=u; 40 } 41 for(int i=head[u];i!=-1;i=edge[i].nxt) 42 { 43 if(edge[i].v!=fa) 44 dfs(edge[i].v,u,now+edge[i].w); 45 } 46 } 47 int main() 48 { 49 read(n);read(m); 50 memset(head,-1,sizeof(head)); 51 for(int i=1;i<=m;i++) 52 { 53 int x,y,z;char c; 54 read(x);read(y);read(z); 55 cin>>c; 56 add_edge(x,y,z); 57 add_edge(y,x,z); 58 } 59 dfs(1,0,0); 60 dfs(ed,0,0); 61 printf("%d",ans); 62 return 0; 63 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:自制贪吃蛇——会移动的蛇
- POJ-3278 2020-04-01
- cow bowling 2020-02-13
- lost cows 2020-02-12
- Asteroids!_poj2225 2020-02-09
- Catch That Cow 2020-02-02
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash