【lightoj-1094】树的直径(DFS)
链接:http://www.lightoj.com/volume_showproblem.php?problem=1094
题意:
一共n各节点编号0-n-1, 输入n-1条无向边代表u-v距离为w,求最远的两个点的距离(即树的直径)。
思路:
如果用最短路径来求,n<=30000是会超时的,正确做法是先随便从一个点开始深搜,搜到最远的节点一定是直径其中一个节点,然后从这个点再来次深搜。
#include <bits/stdc++.h>
using namespace std;
const int N = ;
vector<pair<int, int> >V[N];
bool vis[N];
int Index, ans;
void dfs(int s, int sum)
{
vis[s] = ;
if(ans < sum)
{
ans = sum;
Index = s;
}
for(unsigned int i = ; i < V[s].size(); i++)
{
int v = V[s][i].first, w = V[s][i].second;
if(vis[v]) continue;
dfs(v, sum+w);
}
}
int main()
{
int n, t, cas = ;
cin>>t;
while(t--)
{
scanf("%d", &n);
int a, b, c;
for(int i = ; i <= n; i++) V[i].clear();
for(int i = ; i < n-; i++)
{
scanf("%d%d%d", &a, &b, &c);
V[a].push_back(make_pair(b, c));
V[b].push_back(make_pair(a, c));
}
ans = ;
memset(vis, , sizeof vis);
dfs(, );
ans = ;
memset(vis, , sizeof vis);
dfs(Index, );
printf("Case %d: %d\n", ++cas, ans);
}
return ;
}
【lightoj-1094】树的直径(DFS)的更多相关文章
- 【BZOJ-1912】patrol巡逻 树的直径 + DFS(树形DP)
1912: [Apio2010]patrol 巡逻 Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 1034 Solved: 562[Submit][St ...
- 历届试题 大臣的旅费-(树的直径+dfs)
问题描述 很久以前,T王国空前繁荣.为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市. 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首 ...
- Codeforces 592D - Super M - [树的直径][DFS]
Time limit 2000 ms Memory limit 262144 kB Source Codeforces Round #328 (Div. 2) Ari the monster is n ...
- 图论--树的直径--DFS+树形DP模板
#include <iostream> #include <cstring> using namespace std; //maxv:源点能到的最远点,maxdis:最远点对应 ...
- 树的直径的求法即相关证明【树形DP || DFS】
学习大佬:树的直径求法及证明 树的直径 定义: 一棵树的直径就是这棵树上存在的最长路径. 给定一棵树,树中每条边都有一个权值,树中两点之间的距离定义为连接两点的路径边权之和.树中最远的两个节点之间的距 ...
- LightOJ 1094 - Farthest Nodes in a Tree
http://lightoj.com/volume_showproblem.php?problem=1094 树的直径是指树的最长简单路. 求法: 两遍BFS :先任选一个起点BFS找到最长路的终点, ...
- lightoj 1094 Farthest Nodes in a Tree 【树的直径 裸题】
1094 - Farthest Nodes in a Tree PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: ...
- (树的直径)LightOJ -- 1094
链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=88230#problem/C 求树的直径,这里只不过给每条边增加一个边长属性,变成 ...
- 大臣的旅费---树的直径(dfs)
很久以前,T王国空前繁荣.为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市. 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者 ...
随机推荐
- 添加git忽略文件
把之前的文件添加作为忽略文件 先把本地缓存删除(改变成未track状态),然后再提交git rm -r --cached .git add .git commit -m 'commit log inf ...
- 006-基于hyperledger fabric1.4( 官方文档)编写第一个应用【外部nodejs调用】
一.概述 官方原文地址 Writing Your First Application如果对fabric网络的基本运行机制不熟悉的话,请看这里. 注意:本教程是对fabric应用以及如何使用智能合约的简 ...
- 学点TCPDUMP
[root@future ~]# yum install tcpdump 官网地址: https://nmap.org/ 还有中文手册,太感动了 https://nmap.org/man/zh/man ...
- python2中range和xrange的区别
range和xrange用法相同,不同的是xrange不是生成一个序列,而是作为一个生成器,即生成一个取出一个 相对来说,xrange比range性能优化很多,因为不需要一下子开辟一块很大的内存,特别 ...
- springmvc国际化资源文件
spring配置文件中添加 <!-- 配置国际化资源文件 --> <bean id="messageSource" class="org.springf ...
- linux 清理cache中的内存
1. sync 2. sysctl -w vm.drop_caches=1
- Bootstrap总结一
参考我的博客:http://www.isedwardtang.com/2017/08/30/bootstrap-primer-1/
- 【Java Web】新手教程(转)
转自:http://www.journaldev.com/1854/java-web-application-tutorial-for-beginners#web-server-client Web ...
- article嵌套
例如: 为了将每一个部分都突出显示,可以将article添加边框和颜色的属性: <style> article{ border: 1px solid #ff0000; margin: 5p ...
- 20145219 《Java程序设计》第07周学习总结
20145219 <Java程序设计>第07周学习总结 教材学习内容总结 认识时间与日期 时间的度量 1.格林威治时间(GMT):通过观察太阳而得,因为地球公转轨道为椭圆形且速度不一,本身 ...