POJ 1849 Two
求树的直径要先bfs找到任意起点能走到的最远的点,然后再以找到的点为起点bfs。
本题要求两点遍历树,实际是求两倍权和-树的直径,证明不缀。
//注意拓展点的循环的条件是i != -1还是i != 0.
#include<cstdio>
#include<queue>
#include<cstring>
#include<iostream>
using namespace std;
const int maxn = 100010;
int n, s, tot, end;
int sum;
int st[maxn], d[maxn], vis[maxn];struct node{int to, w, next;
} edge[2*maxn];void in(int u, int v, int w){edge[++tot].to = v;edge[tot].w = w;edge[tot].next = st[u];st[u] = tot;
}int bfs(int start){memset(vis, 0, sizeof(vis));d[start] = 0;int diameter = 0;queue<int> q;q.push(start);vis[start] = 1;while(!q.empty()){int u = q.front();q.pop();for(int i = st[u]; i != 0; i = edge[i].next){int v = edge[i].to;if(!vis[v]){d[v] = d[u] + edge[i].w;if(d[v] > diameter){diameter = d[v];end = v;}vis[v] = 1;q.push(v);}}}return diameter;
}int main(){cin >> n >> s;for(int i = 1, u, v, w; i <= n-1; i++){cin >> u >> v >> w;sum += w*2;in(u, v, w);in(v, u, w);}end = s;bfs(s);int dia = bfs(end);cout << sum - dia << endl;return 0;
}
POJ 1849 Two相关推荐
- POJ 1849 Two(树的直径+思维)
题目链接:http://poj.org/problem?id=1849 题意是有n个点,n-1条边(树形图),在s点放两个机器人,问这两个机器人遍历完所有的点的最少花费(不用回到原点). ...
- POJ - 1849 Two(树的直径)
题意: 给你N个结点的树,每条边的权值,以及一个起点位置S. 你有两个robot ,可以同时在树上跑.每跑过一条边就要花费一条边权值的油费(要重复i计算).现在你要把整棵树跑完,问至少要花费多少. 思 ...
- AC日记——Two poj 1849
Two 思路: 树形DP求直径: 答案是边权总和*2-直径: dp[i][1]::以i为根的子树中最长的路径: dp[i][0]::以i为根的子树中次长的路径: 来,上代码: #include < ...
- POJ前面的题目算法思路【转】
1000 A+B Problem 送分题 49% 2005-5-7 1001 Exponentiation 高精度 85% 2005-5-7 1002 487-3279 n/a 90% 2005-5- ...
- POJ 超详细分类
POJ 各题算法 1000 A+B Problem 送分题 49% 2005-5-7 1001 Exponentiation 高精度 ...
- POJ 3268 D-Silver Cow Party
http://poj.org/problem?id=3268 Description One cow from each of N farms (1 ≤ N ≤ 1000) conveniently ...
- poj 2559 Largest Rectangle in a Histogram 栈
// poj 2559 Largest Rectangle in a Histogram 栈 // // n个矩形排在一块,不同的高度,让你求最大的矩形的面积(矩形紧挨在一起) // // 这道题用的 ...
- POJ 2528 Mayor's posters(线段树)
题目大意 贴海报.每张海报的高度都是一样的,唯独宽度不一样.每张海报只能占用整数倍的单位线段长度,贴了 n(n<=10000) 张海报之后,有几张能够看见(有一个角能看见这张海报也算被看见了)? ...
- POJ 2226 Muddy Fields 最小点覆盖+加建图(好题)
题目链接 题目一看就是最小点覆盖,这道题与POJ - 3041 算是一类题,但是3041算是一道十分裸的,因为删除的是整行或者整列,所以图其实是现成的,但是本题的难点就在如何建图. 思路:首先还是尽量 ...
最新文章
- intellij idea不显示git push按钮的解决办法
- java线程的创建和启动深度解析
- BLE 配对流程(转自襄坤在线)
- 微软Vista今起大幅降价 最高幅度达到千元
- JS 点击复制Copy插件--Zero Clipboard
- js webpack 配置路径_Vue.js学习No.5(WebPack配置二)
- 部署单台zookeeper
- MATLAB DBSCAB简介
- spring boot 请求转发和重定向
- 本质与现象:本质与现象
- CSDN第一节课总结
- 3-1 列表的基本操作
- 模拟网络延迟抖动测试
- flutter之从零开始搭建(三)之 网络请求
- 【docker-ce】k8s集群docker容器异常重启问题分析
- Pytorch框架学习记录10——线性层
- vs2015智能提示英文改为中文
- MySQL DQL操作之基础查询
- 【技术方案】如何基于高清摄像头设备,搭建慢直播平台?
- 笔记本html到电视,笔记本怎么连接液晶电视 笔记本连接液晶电视方法【详解】...
热门文章
- IOCP之accept、AcceptEx、WSAAccept的区别 .
- 拓嘉辰丰电商:拼多多店铺做不起来的原因
- python3中将'\xb2\xbb\xca\xc7\xc4\xda\xb2\xbf\xbb\xf2\xcd\xe2\xb2\xbf\xc3\xfc\xc1\xee'转成中文
- 拿到软考高级证书就是高级职称了吗?
- 《计算机操作系统(计算机)》
- oracle删除字段约束条件,Oracle 数据库中关于对表字段约束的操作(设置、删除、查询)...
- 解决项目Unable to find GatewayFilterFactory with name CacheRequestFilter错误
- 使用python判断一个数是否为素数
- c语言lnk1120,C致命错误LNK1120:1未解决的外部
- .pdm文件怎么打开