pku1985 Cow Marathon
求一棵树的直径。题目没说数据范围,无论如何显然是O(n)的。
这里用了dfs,先找任一点的最远点,再从这个最远点找一次最远点,后一个的两点距离就是答案。
1 program pku1985(input,output); 2 type 3 node = ^link; 4 link = record 5 goal,w : longint; 6 next : node; 7 end; 8 var 9 l : array[0..50000] of node;10 d : array[0..50000] of longint;11 v : array[0..50000] of boolean;12 n,m : longint;13 procedure add(xx,yy,ww :longint );14 var15 tt : node;16 begin17 new(tt);18 tt^.next:=l[xx];19 tt^.goal:=yy;20 tt^.w:=ww;21 l[xx]:=tt;22 end; { add }23 procedure init;24 var25 i,xxx,yyy,www : longint;26 begin27 readln(n,m);28 for i:=1 to n do29 l[i]:=nil;30 for i:=1 to m do31 begin32 readln(xxx,yyy,www);33 add(xxx,yyy,www);34 add(yyy,xxx,www);35 end;36 end; { init }37 procedure dfs(now,dist : longint );38 var39 t : node;40 begin41 d[now]:=dist;42 t:=l[now];43 while t<>nil do44 begin45 if not v[t^.goal] then46 begin47 v[t^.goal]:=true;48 dfs(t^.goal,dist+t^.w);49 end;50 t:=t^.next;51 end;52 end; { dfs }53 procedure main;54 var55 i,maxn,maxl : longint;56 begin57 fillchar(d,sizeof(d),0);58 fillchar(v,sizeof(v),false);59 v[1]:=true;60 dfs(1,0);61 maxl:=0;62 for i:=1 to n do63 if d[i]>maxl then64 begin65 maxl:=d[i];66 maxn:=i;67 end;68 fillchar(d,sizeof(d),0);69 fillchar(v,sizeof(v),false);70 v[maxn]:=true;71 dfs(maxn,0);72 maxl:=0;73 for i:=1 to n do74 if d[i]>maxl then75 maxl:=d[i];76 writeln(maxl);77 end; { main }78 begin79 init;80 main;81 end.
转载于:https://www.cnblogs.com/neverforget/archive/2012/03/22/2411216.html
pku1985 Cow Marathon相关推荐
- poj1985 Cow Marathon(树的直径#入门)
poj1985 Cow Marathon(树的直径) Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 9110 Accepted: ...
- poj 1985 Cow Marathon 【树的直径】
求树的直径 /* POJ:1985 Cow Marathon 2014/10/12/21:18 Yougth*/ #include <cstdio> #include <iostre ...
- 【树的直径】 POJ 1985 Cow Marathon
给出一棵树 ,和边的权值 求权值最长的一条直径 两次bfs求 第一次以任意点开始 BFS求出第一个端点 第二次以第一次得到的端点 BFS求出第二个端点 #include <cstdio> ...
- POJ 1985 Cow Marathon
此题求的是树的最长链, 要注意此题不能用dis[maxn][maxn]来记录a, b两点的距离,这样会超空间, 也就是超内存,要用另一种储存方式储存.此题思想很简单, 随便选一个点,搜此点能到的最远距 ...
- 0x63.图论 - 树的直径与最近公共祖先
目录 一.树的直径(Diameter) 1.树形DP求树的直径 2.两次BFS/DFS求树的直径 1.POJ 1985.Cow Marathon(DFS求树的直径模板题) 2.AcWing 350. ...
- ajax离开页面方法,jQuery中ajax调用当前页面方法
$.ajax({ type: 'POST', url: 'AddressManager.aspx/GetProvince',//AddressManager.aspx当前页面 data: '{cach ...
- 用html2canvas长按保存h5页面,html2canvas - 微信中长按存图 - 将h5活动结果保存到本地...
现在有很多在微信里流行的h5活动页.这些小h5大部分都是简单的交互然后得出一个abcd早就拟定好的结果,根据你的选项分几种情况,最终得到其中一个作为你测试的答案.比如这个就是最后那张结果图: 当时自己 ...
- 杭电oj题目题型分类(转)
1001 整数求和 水题 1002 C语言实验题--两个数比较 水题 1003 1.2.3.4.5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 Hero In Maze 广度搜索 ...
- HDOJ题目分类大全
版权声明:本文为博主原创文章,欢迎转载,转载请注明本文链接! https://blog.csdn.net/qq_38238041/article/details/78178043 杭电里面有很多题目, ...
最新文章
- js传入参数为字符串问题
- velocity 基础指令
- C语言将两个正整数连接
- 在 iOS 或者 Mac OS X 中将 NSDictionary 映射为本地对象的方法
- mysql数据库分隔符_MySQL对分隔符的处理(一)
- 一文教你用java实现儿时的超级玛丽游戏
- pc工具不支持stb的加密方式_那些工作中常用的实用工具
- 爆炸了!刚刚!小姐姐说她找了个程序员男友
- php ajax base64,php,javascript_AJax post BASE64编码到后台,php,javascript - phpStudy
- pip 安装 sklearn 教程
- unity安装2020或2019出现空白错误
- win10无敌隐身术
- [词性] 十一、介词 2 地点状语在前,时间状语在后 [ at ]
- 你的颜值打几分?——基于tensorflow实现人脸打分模型
- SQL优化步骤(建议收藏)
- 使用wget报错-颁发的证书已经过期。
- 数字信号处理之期中斩神篇(一重 搬山)
- 召集令 | 2021奖金加码的“硬核”港科百万创赛又来了!
- C# 语言历史版本特性(C# 1.0到C# 8.0汇总
- docker jvm调优 tomcat_docker+tomcat 启动时非常慢原因之JRE /dev/random阻塞
热门文章
- BZOJ4754 JSOI2016独特的树叶(哈希)
- 20172310 2017-2018-2 《程序设计与数据结构》第八周学习总结
- sqlite3之基本操作(二)
- apache rewrite规则详解
- 确认对话框ConfirmDialog和选择对话框OptionDialog
- chrome拦截弹窗问题的两种解决方式
- npm i -g windows-build-tools安装出错解决方法
- HTML`CSS_网站页面不同浏览器兼容性问题解决
- Socket java.net.SocketException: Connection reset的解决方案
- dpkg安装deb缺少依赖包的解决方法