Intrepid climber (dfs+树)
来源:互联网 发布:西安软件新城招聘信息 编辑:程序博客网 时间:2024/06/08 00:13
http://acm.hnu.cn/online/?action=problem&type=show&id=13309
利用数组node,head建树
深度遍历两次:
1.找出要走到的点
2.计算总代价
#include <cstdio>#include <iostream>#include <cstring>#include <cmath>#include <algorithm>#include <string.h>#include <vector>#include <queue>#include <set>#define MAXN 100000+5#define MAX 200000struct Node{ int to,val,next;}node[MAX];bool vis[MAXN];int dis[MAXN];int head[MAXN];int ans;void dfs(int u,int v){//搜索要走路线 for(int i=head[u];i!=-1;i=node[i].next){ int t=node[i].to; if(t==v) continue; dfs(t,u); if(vis[t]) vis[u]=1; }//for}//dfsvoid _dfs(int u,int v){//计算总代价 for(int i=head[u];i!=-1;i=node[i].next){ int t=node[i].to; if(t==v) continue; dis[t]=dis[u]+node[i].val; if(vis[t]) ans+=node[i].val; _dfs(t,u); }}//_dfsint main(){ int n,f; while(scanf("%d%d",&n,&f)!=EOF){ int i; int u,v,w; int tot=0; //初始化 ans=0; dis[1]=0; memset(vis,0,sizeof(vis)); memset(head,-1,sizeof(head)); for(i=0;i<n-1;i++){ scanf("%d%d%d",&u,&v,&w); //建树 node[tot].to=v; node[tot].val=w; node[tot].next=head[u];head[u]=tot++; node[tot].to=u; node[tot].val=w; node[tot].next=head[v];head[v]=tot++; } for(i=0;i<f;i++){ int r;scanf("%d",&r); vis[r]=1; }//for dfs(1,-1); _dfs(1,-1); int ma=dis[1]; for(i=1;i<=n;i++) if(vis[i]) ma=ma>dis[i]?ma:dis[i]; printf("%d\n",ans-ma); } return 0;}
0 0
- Intrepid climber (dfs+树)
- HNUOJ 13309 Intrepid climber(搜索)
- A changeable American climber
- 用Intrepid发送信息
- 1428. B Baby Climber(心宝去爬山)
- 1428. B Baby Climber(心宝去爬山)
- Sicily 1428. B Baby Climber(心宝去爬山)
- 正式版 Ubuntu 8.10 ( Intrepid Ibex )
- Yestoday Installing ubuntu-8.10 Intrepid
- Ubuntu 8.10 Intrepid Ibex发布时间表
- Ubuntu 8.10 “Intrepid Ibex” 发布时间表确定
- Ubuntu 8.10 Intrepid Ibex发布时间表
- Ubuntu 8.10 ( Intrepid Ibex ) 软件源设置
- 官方正式发布 Ubuntu 8.10 ( Intrepid Ibex )
- 官方正式发布 Ubuntu 8.10 ( Intrepid Ibex )
- Ubuntu 8.10 ( Intrepid Ibex ) 软件源设置
- Ubuntu 8.10 ( Intrepid Ibex ) 软件源设置
- Intrepid ASAP 2 Editor 及注册机
- 利用JAVA中的反射机制获得某个类的信息
- 浮点数在内存中的存储格式
- @Resource和@Autowired对比
- Android快速开发框架:ThinkAndroid(附下载地址)
- Spring MVC详解(七) 注解式控制器的数据验证、类型转换及格式化(2)
- Intrepid climber (dfs+树)
- Android应用开发之使用Socket进行大文件断点上传续传
- poj-2109 Power of Cryptography
- C++对象模型——对象的差异(第一章)
- linux mkdir http://www.linuxidc.com/Linux/2011-04/35180.htm
- 杂谈异常处理try-catch-finally
- 写给新手程序员的一封信(转载)
- 浅谈 C# 语言的 using 语句
- iOS8系统下的无法弹出通知