[Coci2015]Kamp】的更多相关文章

[BZOJ3743][Coci2015]Kamp Description 一颗树n个点,n-1条边,经过每条边都要花费一定的时间,任意两个点都是联通的. 有K个人(分布在K个不同的点)要集中到一个点举行聚会. 聚会结束后需要一辆车从举行聚会的这点出发,把这K个人分别送回去. 请你回答,对于i=1~n,如果在第i个点举行聚会,司机最少需要多少时间把K个人都送回家. Input 第一行两个数,n,K. 接下来n-1行,每行三个数,x,y,z表示x到y之间有一条需要花费z时间的边. 接下来K行,每行一…
3743: [Coci2015]Kamp Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 484  Solved: 229[Submit][Status][Discuss] Description 一颗树n个点,n-1条边,经过每条边都要花费一定的时间,任意两个点都是联通的. 有K个人(分布在K个不同的点)要集中到一个点举行聚会. 聚会结束后需要一辆车从举行聚会的这点出发,把这K个人分别送回去. 请你回答,对于i=1~n,如果在第i个点举行聚会,司…
Description 一颗树n个点,n-1条边,经过每条边都要花费一定的时间,任意两个点都是联通的. 有K个人(分布在K个不同的点)要集中到一个点举行聚会. 聚会结束后需要一辆车从举行聚会的这点出发,把这K个人分别送回去. 请你回答,对于i=1~n,如果在第i个点举行聚会,司机最少需要多少时间把K个人都送回家. (注:一个车可以同时乘坐k个人) HINT [数据规模] K <= N <= 500000 1 <= x,y <= N, 1 <= z <= 1000000…
首先树dp求出一个点的答案 然后再一遍dfs换根(是叫做换根吗.. 详见代码 #include <iostream> #include <cstdio> #include <cmath> #include <cstring> #include <cstdlib> #include <algorithm> #define ll long long #define N 500005 #define M 1000006 using name…
传送门 这是一道很有意思的题. 我们把所有的关键点都提出来,当成一棵有边权的虚树. 然后发现虚树上除最后不回到虚根的那条路径外外每条边都会被走两遍. 显然要让答案最优,不走的路径应该在虚树的直径上,于是我们dfs出虚树的直径. 注意对于不在虚树上的节点花费还需要多加dis(i,虚树)∗2dis(i,虚树)*2dis(i,虚树)∗2. 代码: #include<bits/stdc++.h> #define N 500005 #define ll long long using namespace…
两遍dfs一遍向下,一边向上,分别记录子树内人数a,当前点到所有点的距离b,最大值c和次大值d,最大值子树p 然后答案是2b-c #include<iostream> #include<cstdio> using namespace std; const int N=1000005; int n,m,h[N],cnt,p[N]; long long a[N],b[N],c[N],d[N]; bool v[N]; struct qwe { int ne,to,va; }e[N]; i…
传送门 Description 一颗树n个点,n-1条边,经过每条边都要花费一定的时间,任意两个点都是联通的. 有K个人(分布在K个不同的点)要集中到一个点举行聚会. 聚会结束后需要一辆车从举行聚会的这点出发,把这K个人分别送回去. 请你回答,对于i=1~n,如果在第i个点举行聚会,司机最少需要多少时间把K个人都送回家. Input 第一行两个数,n,K. 接下来n-1行,每行三个数,x,y,z表示x到y之间有一条需要花费z时间的边. 接下来K行,每行一个数,表示K个人的分布. Output 输…
Online Judge:Bzoj3743 Label:换根Dp,维护最长/次长链 题目描述 一颗树n个点,n-1条边,经过每条边都要花费一定的时间,任意两个点都是联通的. 有K个人(分布在K个不同的点)要集中到一个点举行聚会. 聚会结束后需要一辆车从举行聚会的这点出发,把这K个人分别送回去. 请你回答,对于i=1~n,如果在第i个点举行聚会,司机最少需要多少时间把K个人都送回家. 输入 第一行两个数,n,K. 接下来n-1行,每行三个数,x,y,z表示x到y之间有一条需要花费z时间的边. 接下…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3743 树形dp+换根. “从根出发又回到根” 减去 “mx ” . 注意dfsx里真的要改那些dp[cr],为了下一层的调用.而且还要改回来!为了其他孩子下一层的调用! 注意dfsx里真的要改那些dp[v],为了下一层的调用.而且还要改回来!为了本层的继续调用! #include<iostream> #include<cstdio> #include<cstring&g…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…