FZU-2195 检查站点
来源:互联网 发布:08年西部决赛科比数据 编辑:程序博客网 时间:2024/06/05 17:59
F - 检查站点
FZU - 2195在山上一共有N个站点需要检查,检查员从山顶出发去各个站点进行检查,各个站点间有且仅有一条通路,检查员下山前往站点时比较轻松,而上山时却需要额外的时间,问最后检查员检查完所有站点时所需要的额外时间最少是多少。
包含多组数据 每组数据输入第一行为一个整数N 表示站点个数(1<=N<=100000),接下去N-1 行 每行3个整数 x,y,z(1<=z<=10000) 检查站x为检查站y的父节点,x,y之间有一条通路,从y到x需要额外z的时间。(父节点在子节点上方,山顶固定标号为1)
输出一行一个整数表示最少需要花费的额外时间。
61 2 12 4 11 3 13 5 13 6 1
3
因为每个站点都要去,最少的额外时间就是选择最大权值的路径不返回 其他路都要返回。
思路:当前路径权值为当前的父节点的额外时间+父节点到当前点的额外时间。
AC:
#include <iostream>#include <cstdio>#include <cstring>#include <set>#include <algorithm>typedef long long LL;using namespace std;int val[100100]={0};int main(){ int n; while(scanf("%d",&n)!=EOF) { int x,y,z; int sum=0,maxn=0; for(int i=1;i<n;i++) { scanf("%d%d%d",&x,&y,&z); sum+=z; val[y]=val[x]+z; maxn=max(maxn,val[y]); } printf("%d\n",sum-maxn); }}dfs代码:
#include <iostream>#include <cstdio>#include <cstring>#include <set>#include <algorithm>typedef long long LL;using namespace std;int vis[100100]={0};int pre[100100]={0};int val[100100]={0};int dis[100100]={0};void dfs(int x);int main(){ int n; while(scanf("%d",&n)!=EOF) { memset(vis,0,sizeof(vis)); int x,y,z,sum=0,maxn=0; for(int i=1;i<n;i++) { scanf("%d%d%d",&x,&y,&z); sum+=z; pre[y]=x;//y的父节点 dis[y]=z;//y到父节点的权值 } vis[1]=1; dis[0]=0; val[0]=0; for(int i=1;i<=n;i++) { if(!vis[i]) { vis[i]=1; dfs(i); } } for(int i=1;i<=n;i++)maxn=max(maxn,val[i]); printf("%d\n",sum-maxn); }}void dfs(int x){ vis[x]=1; int p=pre[x]; if(!vis[p])dfs(p); val[x]=val[p]+dis[x];}
阅读全文
0 0
- 【FZU 2195】检查站点
- FZU 2195 检查站点
- fzu 2195 检查站点
- FZU-2195 检查站点
- fzu 2195 检查站点
- FZU 2195 检查站点(数学啊)
- FZU 2195 检查站点 (树形dp)
- FZU 2195 检查站点 (树形dp)
- FZU 检查站点
- FZU 2195 检查站点(并查集或者树)
- FZU 2195 检查站点【带权并查集】
- FZU 2195 检查站点(并查集)
- FZU 2195 检查站点【带权并查集】
- Problem 2195 检查站点
- foj 2195 检查站点
- 检查站点
- Problem 2195 检查站点<简单代码>
- Problem 2195 检查站点【最小生成树】
- C语言一个源文件如何调用另一个源文件里的函数
- java毕向东学习笔记——day08
- Python 3 爬虫的自我探索(一)
- 51nod 1163 最高的奖励
- IDEA 使用Git Clone项目
- FZU-2195 检查站点
- (PAT乙)1001. 害死人不偿命的(3n+1)猜想
- Codeforces Round #427 (Div. 2) (solve 5 / 6)
- webUploader插件实现文件上传
- 引用类型----Object
- 使用Fiddler进行iOS APP的HTTP/HTTPS抓包
- 命令符 微信收藏链接
- EasyTouch 核心控制脚本
- HDU1799