题目

传送门:QWQ

分析

凉凉。

答案是所有要经过的点到根所经过的边权和减去最大的边权。

代码

vector好慢啊

#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
const int maxn=;
int d[maxn], fa[maxn];
struct Edge{int u,v,dis;};
vector<int> G[maxn];vector<Edge> edges;
int n, ans;
int val[maxn], vis[maxn];
void Addedge(int u,int v,int dis){
edges.push_back((Edge){u,v,dis});edges.push_back((Edge){v,u,dis});
int m=edges.size()-;G[u].push_back(m-);G[v].push_back(m);
}
int dfs(int x,int f,int depth){
fa[x]=f; d[x]=depth;
for(int i=;i<G[x].size();i++){
Edge v=edges[G[x][i]];
if(v.v==f) continue;
dfs(v.v,x,depth+v.dis);
if(vis[v.v]) vis[x]=,ans+=edges[G[x][i]].dis*;
}
}
int main(){
int n,k,a,b,c;
scanf("%d%d",&n,&k);
for(int i=;i<n-;i++){
scanf("%d%d%d",&a,&b,&c);
Addedge(a,b,c);
}
int m; scanf("%d",&m);
for(int i=;i<m;i++){
scanf("%d",&val[i]); vis[val[i]]=;
}
dfs(k,,);
int maxnum=;
for(int i=;i<=n;i++){
if(vis[i]) maxnum=max(maxnum,d[i]);
}
printf("%d",ans- maxnum);
return ;
}
/*
4 2
1 2 1
4 2 2
2 3 3
1
1
*/

【POJ】1935 Journey(树形dp)的更多相关文章

  1. [POJ 1155] TELE (树形dp)

    题目链接:http://poj.org/problem?id=1155 题目大意:电视台要广播电视节目,要经过中转机构,到观众.从电视台到中转商到观众是一个树形结构,经过一条边需要支付成本.现在给你每 ...

  2. Apple Tree POJ - 2486 (树形dp)

    题目链接: D - 树形dp  POJ - 2486 题目大意:一颗树,n个点(1-n),n-1条边,每个点上有一个权值,求从1出发,走V步,最多能遍历到的权值 学习网址:https://blog.c ...

  3. Anniversary party POJ - 2342 (树形DP)

    题目链接:  POJ - 2342 题目大意:给你n个人,然后每个人的重要性,以及两个人之间的附属关系,当上属选择的时候,他的下属不能选择,只要是两个人不互相冲突即可.然后问你以最高领导为起始点的关系 ...

  4. POJ 3107.Godfather 树形dp

    Godfather Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 7536   Accepted: 2659 Descrip ...

  5. POJ 3342 (树形DP)

    题意 :给出一些上下级关系,要求i和i的直接上级不能同时出现,现在选出一些人构成一个集合,问你这个集合里面的最大人数是都少,同时给出这个最大的人数的集合是否唯一. 思路:树形DP,dp[i][0],表 ...

  6. POJ 2342 (树形DP)

    Anniversary party Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3863   Accepted: 2172 ...

  7. POJ Anniversary party 树形DP

    /* 树形dp: 给一颗树,要求一组节点,节点之间没有父子关系,并且使得所有的节点的权值和最大 对于每一个节点,我们有两种状态 dp[i][0]表示不选择节点i,以节点i为根的子树所能形成的节点集所能 ...

  8. POJ 1947Rebuilding Roads(树形DP + 01背包)

    题目链接 题意:给出一个树形结构,求P个节点的子树最少要去掉几条边 分析:DP[root][j] 表示 以第 root 个为根节点, 包含j 个节点需要去掉几条边.那么对于 root 这个根节点来说, ...

  9. POJ 1947 (树形DP+背包)

    题目链接: http://poj.org/problem?id=1947 题目大意:树中各点都由一条边连接.问要弄出个含有m个点的(子)树,至少需要截去多少条边. 解题思路: 设dp[i][j]为i总 ...

  10. Tree Cutting POJ - 2378 (树形DP)

    题目链接:POJ - 2378 题目大意:给你n个点,然后问你这n个点中 ,去除哪些点能够使得剩下的图中最大的连通块中点的个数不超过n/2. 具体思路:第一遍dfs记录每一个点代表的子树大小,第二遍d ...

随机推荐

  1. JQuery 实现下拉列表选中

    html代码如下: <select id="category" name="category"> <option value="&q ...

  2. (CLR via C#学习笔记)任务和并行操作

    一 任务 可以调用ThreadPool的QueueUserWorkItem方法发起一次异步的计算限制操作.但这个技术有很多限制.最大的问题是没有内建的机制让你知道操作在什么时候完成和操作完成时的返回值 ...

  3. CSS 再学习,基础篇

    语法 h1 {color:red; font-size:14px;} 共享声明 h1,h2,h3,h4,h5,h6 { color: green; } 继承 通过 CSS 继承,子元素将继承最高级元素 ...

  4. css3 抖动

    1. html <div id="wrapper"> <section> <p class="shake freez shake-hard& ...

  5. 资源管理器总是生成 avi,mpeg的预览图

    感觉非常讨厌. 图片可以直接显示,但是视频的预览图感觉很不舒服. 查了一下 , 用ShellExView 禁用一下 MF XXXX Property Handler 就可以了. 官网最下面可以下载: ...

  6. mongodb 之linux下安装、启动、停止、连接

    今天在linux上面安装了mongodb 1.下载linux的mongodb 2.在目录usr/local下创建文件夹mongodb,把安装包解压到该文件夹中 # mkdir mongodb # ta ...

  7. UVALive 4639 && SPOJ SPOINTS && POJ 3805 && AOJ 1298 Separate Points 求两个凸包是否相交 难度:3

    https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...

  8. halcon之共线连接union_collinear_contours_xld

    union_collinear_contours_xld 很多时候当我们用edges_sub_pix, threshold_sub_pix  等算子得到边缘后,因为有噪声.物体本身断裂等原因 很多边缘 ...

  9. 在JavaScript中进行文件处理,第二部分:文件读取

    译注:原文是<JavaScript高级程序设计>的作者Nicholas Zakas写的,本翻译纯属为自己学习而做,仅供参考.原文链接:这里 在我的前一篇blog中,我介绍了在JavaScr ...

  10. angular的中文文档在这里。。

    链接 仿ant-design的  angular组件 echarts文档