【POJ - 2631】Roads in the North (树的直径,模板)

题干:

Building and maintaining roads among communities in the far North is an expensive business. With this in mind, the roads are build such that there is only one route from a village to a village that does not pass through some other village twice. 
Given is an area in the far North comprising a number of villages and roads among them such that any village can be reached by road from any other village. Your job is to find the road distance between the two most remote villages in the area. 

The area has up to 10,000 villages connected by road segments. The villages are numbered from 1. 

Input

Input to the problem is a sequence of lines, each containing three positive integers: the number of a village, the number of a different village, and the length of the road segment connecting the villages in kilometers. All road segments are two-way.

Output

You are to output a single integer: the road distance between the two most remote villages in the area.

Sample Input

5 1 6
1 4 5
6 3 9
2 6 8
6 1 7

Sample Output

22

解题报告:

   这题有好多地方是容易错的,bfs中的maxx和retp不能不赋值,不然就会wa!想想也是,极限情况,只有一个点,或者是空图,总之可以构造出一个让他根本进不去那些循环的,或者进不去那个while的,所以需要初始化!这也是为什么w=maxx那句不能放到注释的那里。

AC代码:

#include <queue>
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
const int MAX = 2e5 + 5 ; 
const int INF = 0x3f3f3f3f;
struct Node {int to;int w;int ne;
} e[MAX];
struct point {int pos,c;point(){}//没有此构造函数不能写  node t  这样point(int pos,int c):pos(pos),c(c){}//可以写node(pos,cost)这样};
int head[MAX];
int cnt = 0 ;
bool vis[MAX];
void init() {cnt = 0;memset(head,-1,sizeof(head));
}
void add(int u,int v,int w) {e[cnt].to = v;e[cnt].w = w;e[cnt].ne = head[u];head[u] = cnt;cnt++;  
} int bfs(int x,int &w) {queue <point> q;int maxx = 0;int retp = x ;//返回的点坐标 memset(vis,0,sizeof(vis) );q.push(point(x,0));vis[x] = 1;point now;while(q.size() ) {point cur = q.front();q.pop();for(int i = head[cur.pos]; i!=-1; i=e[i].ne) {if(vis[e[i].to]) continue;vis[e[i].to] = 1;now.pos = e[i].to;now.c = cur.c + e[i].w;if(now.c>maxx) {maxx = now.c;retp = now.pos;}q.push(now);}//w = maxx;}w = maxx;return retp;
}
int main()
{init();int u,v,w;while(~scanf("%d%d%d",&u,&v,&w) ) {add(u,v,w);add(v,u,w);}int ans1 = 0,ans2 = 0;u = bfs(1,ans1);v = bfs(u,ans2);printf("%d\n",ans2);return 0 ;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/441649.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

h5前端有php,【前端】为什么有些网站的页面地址,没有加上html或者php或者jsp的后辍名?...

如写成http://www.例子.com/page/help的形式回答因为不需要Every HTTP URL conforms to the syntax of a generic URI. A generic URI is of the form:scheme:[//[user:[email protected]]host[:port]][/]path[?query][#fragment]via Wikipedia可见 URI 并不需要以后缀名结尾。…

【CodeForces - 803D】Magazine Ad(二分答案)

题干&#xff1a; The main city magazine offers its readers an opportunity to publish their ads. The format of the ad should be like this: There are space-separated non-empty words of lowercase and uppercase Latin letters. There are hyphen characters - i…

freeradius mysql php,freeradius mysql的相关配置说明

freeradius和mysql的配置# mysqladmin -u root -p create radius# mysql -u root -p radius#GRANT SELECT ON radius.* TO radiuslocalhost IDENTIFIED BY radpass;mysql> GRANT ALL on radius.radacct TO radiuslocalhost;mysql> GRANT ALL on radius.radpostauth TO ra…

php的mcypt,php 7.3 在Centos6.x下的安装过程

提示unrecognized options: –with-mcrypt, –enable-gd-native-ttf表示php7.3不支持这两个选项&#xff0c;编译准备工作:yum -y install libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-dev…

【CSU - 1023】【HRBUST - 1039】修路(二分,枚举)

题干&#xff1a; 前段时间&#xff0c;某省发生干旱&#xff0c;B山区的居民缺乏生活用水&#xff0c;现在需要从A城市修一条通往B山区的路。假设有A城市通往B山区的路由m条连续的路段组成&#xff0c;现在将这m条路段承包给n个工程队&#xff08;n ≤ m ≤ 300&#xff09;。…

php继承和重载区别,php继承中方法重载(覆盖)的应用场合

php继承中方法重载(覆盖)的应用场合发布于 2015-02-23 17:57:23 | 91 次阅读 | 评论: 0 | 来源: 网友投递PHP开源脚本语言PHP(外文名: Hypertext Preprocessor&#xff0c;中文名&#xff1a;“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点&am…

【CodeForces - 570A】Elections(模拟,水题)

题干&#xff1a; The country of Byalechinsk is running elections involving n candidates. The country consists of m cities. We know how many people in each city voted for each candidate. The electoral system in the country is pretty unusual. At the first …

linux查看文件从底部开始,linux中怎样从底部向上查看log文件

Leetcode&colon; sliding window maximumAugust 7, 2015 周日玩这个算法, 看到Javascript Array模拟Deque, 非常喜欢, 想用C#数组也模拟; 看有什么新的经历. 试了四五种方法, 花时间研究C# Sorte ...用 pyvenv 创建几个不相互影响的python虚拟环境IN MY UBUNTU python2的环…

【CodeForces - 569B】Inventory (水题)

题干&#xff1a; Companies always have a lot of equipment, furniture and other things. All of them should be tracked. To do this, there is an inventory number assigned with each item. It is much easier to create a database by using those numbers and keep …

linux文件目录作用,linux 文件目录,及其作用

/boot:系统启动相关的相关文件&#xff0c;如内核&#xff0c;initrd&#xff0c;以及grub(bootloader)/dev: 设备文件设备文件&#xff1a;块设备&#xff1a;随机访问&#xff0c;数据块字符设备&#xff1a;线性访问&#xff0c;按字符文单位设备号&#xff1a;主设备号(maj…

算法笔记 -- 离散化

引入 离散化&#xff0c;就是把一些很离散的点给重新分配。 举个例子&#xff0c;如果一个坐标轴很长(>1e10)&#xff0c;给你1e4个坐标&#xff0c;询问某一个点&#xff0c;坐标比它小的点有多少。 很容易就知道&#xff0c;对于1e4个点&#xff0c;我们不必把他们在坐…

【CodeForces - 580D】Kefa and Dishes (状压dp)

题干&#xff1a; kefa进入了一家餐厅&#xff0c;这家餐厅中有n个菜&#xff08;0<n≤18&#xff09;,kefa对第i个菜的满意度为ai&#xff08;0≤ai≤10^9&#xff09;&#xff0c;并且对于这n个菜有k个规则&#xff0c;如果kefa在吃完第xi个菜之后吃了第yi个菜&#xff0…

使用linux内核编译独立系统,编译linux内核以及depmod的使用

转载&#xff1a;http://blog.lmtw.com/b/18215/archives/2010/71074.htmldepmod(depend module)功能说明&#xff1a;分析可载入模块的相依性。语  法&#xff1a;depmod [-b basedir] [-e] [-F System.map] [-n] [-v] [version] [-A]depmod [-e] [-FSystem.map] [-…

【CodeForces - 569C】Primes or Palindromes? (思维,分析范围,暴力枚举判断)

题干&#xff1a; Rikhail Mubinchik believes that the current definition of prime numbers is obsolete as they are too complex and unpredictable. A palindromic number is another matter. It is aesthetically pleasing, and it has a number of remarkable propert…

Linux中软件安装使用的命令是,Linux软件安装命令

1.tartar命令用于把多个文件合并于一个档案文件中,并提供分解的合并后的档案文件的功能.它独立于压缩工具,因此可以选择在合并前是否压缩.tar命令的基本用法为:tar[选项]文件名常用的选项包括-c创建一个新的档案文件-t查看档案文件的内容-x分解档案文件的内容-f指定档案文件的名…

linux data文件如何打开,DATA 文件扩展名: 它是什么以及如何打开它?

DATA 问题的来源常见的 DATA 打开问题Microsoft Excel 消失如果您尝试加载 DATA 文件&#xff0c;则会收到 “无法打开 DATA 文件” 等消息。 通常情况下&#xff0c;这意味着 Microsoft Excel 没有安装在 %%os%% 上。 通过双击打开 DATA 的典型路径将不起作用&#xff0c;因为…

【CodeForces - 574D】Bear and Blocks (dp,思维)

题干&#xff1a; Limak is a little bear who loves to play. Today he is playing by destroying block towers. He built n towers in a row. The i-th tower is made of hi identical blocks. For clarification see picture for the first sample. Limak will repeat th…

linux 编译文件mm,Linux编译C++文件,说没有找到头文件,怎么啊?新手,不太会用...

源程序&#xff1a;#include int main (int argc,char**argv){cout<return 0;}终端命令&#xff1a;zhaoweizhaowei-desktop:~$ g -c hello.cpphello.cpp:1:22: error: iostream.h: No such file or directoryhello.cpp: In function ‘int main(int, char**)’:hello.cpp:4…

【CodeForces - 574B】Bear and Three Musketeers (枚举边,思维,优秀暴力)

题干&#xff1a; Do you know a story about the three musketeers? Anyway, you will learn about its origins now. Richelimakieu is a cardinal in the city of Bearis. He is tired of dealing with crime by himself. He needs three brave warriors to help him to …

linux下apache配置文件测试,重启 Apache 服务器及测试配置

在 CentOS / RHEL / Fedora Linux 服务器上安装的 Apache 网页服务器程序在系统中的进程名称为 httpd。每次更改 Apache 服务器的配置&#xff0c;不管是 httpd.conf 还是 vhost.conf 或者自己配置的什么 .conf&#xff0c;只要有改动都需要重新加载配置或者重启 httpd 服务才能…