BZOJ1060: [ZJOI2007]时态同步(树形dp 贪心)
Time Limit: 10 Sec Memory Limit: 162 MB
Submit: 3285 Solved: 1286
[Submit][Status][Discuss]
Description
Input
Output
仅包含一个整数V,为小Q最少使用的道具次数
Sample Input
1
1 2 1
1 3 3
Sample Output
HINT
N ≤ 500000,te ≤ 1000000
Source
// luogu-judger-enable-o2
#include<cstdio>
#include<vector>
#include<cstring>
#define LL long long
using namespace std;
const int MAXN=1e6+;
#define getchar() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<22,stdin),p1==p2)?EOF:*p1++)
char buf[<<],*p1=buf,*p2=buf;
inline int read() {
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
struct Edge {
int v,w;
};
vector<Edge>v[MAXN];
LL mx[MAXN], Ans = ;
void Dfs(int now, int fa) {
for(int i=;i<v[now].size();i++) {
if(v[now][i].v != fa) {
Dfs(v[now][i].v, now);
mx[now] = max(mx[now], mx[ v[now][i].v ] + v[now][i].w);
}
}
for(int i=;i<v[now].size();i++) {
if(v[now][i].v != fa)
Ans += mx[now] - mx[ v[now][i].v ] - v[now][i].w;
}
}
int N, root;
int main() {
#ifdef WIN32
freopen("a.in","r",stdin);
#endif
N = read(), root = read();
for(int i=;i<=N-;i++) {
int x = read(), y = read(), z = read();
v[x].push_back((Edge){y,z});
v[y].push_back((Edge){x,z});
}
Dfs(root, -);
printf("%lld",Ans);
return ;
}
BZOJ1060: [ZJOI2007]时态同步(树形dp 贪心)的更多相关文章
- [BZOJ1060][ZJOI2007]时态同步 树形dp
Description 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数 字1,2,3….进行标号.电路板的各个节点由若干不相交的导线相连接,且对于电路 ...
- 【BZOJ1060】[ZJOI2007]时态同步 树形DP
[BZOJ1060][ZJOI2007]时态同步 Description 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字1,2,3-.进行标号.电路 ...
- 【BZOJ-1060】时态同步 树形DP (DFS爆搜)
1060: [ZJOI2007]时态同步 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2101 Solved: 595[Submit][Statu ...
- BZOJ 1060: [ZJOI2007]时态同步( 树形dp )
坑爹...数据是错的..详见discuss http://www.lydsy.com/JudgeOnline/wttl/wttl.php?pid=1060 先求根到叶子的距离最大值x, 然后把所有叶 ...
- [ZJOI2007]时态同步 (树形DP)
题目描述 小 Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字 1,2,3-.进行标号.电路板的各个节点由若干不相交的导线相连接,且对于电路板的任何两个 ...
- Luogu P1131 [ZJOI2007]时态同步 树形DP
要自下向上调整,尽可能用一个道具修改多个: 搜的时候记录叶节点的最大深度,减一下就好了. #include<cstdio> #include<iostream> #includ ...
- 洛谷 1131 [ZJOI2007]时态同步——树形dp
题目:https://www.luogu.org/problemnew/show/P1131 因为越高,调节一个影响到的越多,所以底下只要把子树间的差异消除了就行了,与其他部分的差异由更高的边调节. ...
- 洛谷 P1131 [ZJOI2007]时态同步 树形DP
题目描述 分析 我们从根节点开始搜索,搜索到叶子节点,回溯的时候进行维护 先维护节点的所有子节点到该节点最大边权(边权为叶子节点到同时到达它所需要时间) 然后维护答案,答案为最大边权减去所有到子节点的 ...
- bzoj千题计划163:bzoj1060: [ZJOI2007]时态同步
http://www.lydsy.com/JudgeOnline/problem.php?id=1060 以激发器所在节点为根 终止节点一定是叶节点 记录点的子树内最深的终止节点 然后从根往下使用道具 ...
随机推荐
- C++泛型 && Java泛型实现机制
C++泛型 C++泛型跟虚函数的运行时多态机制不同,泛型支持的静态多态,当类型信息可得的时候,利用编译期多态能够获得最大的效率和灵活性.当具体的类型信息不可得,就必须诉诸运行期多态了,即虚函数支持的 ...
- python tips:作为dict的key的类
Python的dict由hash实现,解决hash冲突的方法是二次探查法.hash值相同的元素会形成链表.所以dict在查找key时,首先获取hash值,直接得到链表的表头:而后在链表中查找等于key ...
- Python字符串格式化--formate()的应用
1.简单运用字符串类型格式化采用format()方法,基本使用格式是:转自 <模板字符串>.format(<逗号分隔的参数>) 调用format()方法后会返回一个新的字符串, ...
- Linux+Apache下如何安装SSL证书
最近很多站长在问linux系统平台下如何安装SSL证书?Linux+Apache下如何安装SSL证书?本文整理了关于Linux+Apache下如何安装SSL证书的相关教程供大家参考,更多SSL证书安装 ...
- 计蒜客 奇异家庭 (DP)
链接 : Here! 思路 : 首先这棵家族树非常非常非常有特点, 家族里的人要么没有孩子, 要么有两个孩子, 所以这棵家族树是一颗满二叉树. 设定状态 $dp[i][j]$ 为 $i$ 个人组成的不 ...
- 59.bouncing results
一.bouncing results成因及解决方案 bouncing results问题,两个document排序,field值相同:不同的shard上,可能排序不同:每次请求轮询路由到不同的 ...
- netty使用MessageToByteEncoder 自定义协议(四)
开发应用程序与应用程序之间的通信,程序之前通信 需要定义协议,比如http协议. 首先我们定义一个协议类 package com.liqiang.SimpeEcode; import java.sql ...
- 使用Neo4j和简单分词算法实现菜品推荐系统
背景:本推荐系统基于一款硬件产品--旺小宝桌牌.客人按下点餐按钮,扫码进入点餐界面,然后开始点自己喜欢的菜,在手机端下单.目前在成都已有近200家合作餐饮商家. 菜品推荐功能: 当客人在某商家使用桌牌 ...
- 大红数星星 图论 XD网络赛
问题 A: 大红数星星 时间限制: 3 Sec 内存限制: 128 MB提交: 1066 解决: 67[提交][状态][讨论版] 题目描述 “三角形十分的美丽,相信大家小学就学过三角形具有稳定性, ...
- K - Transformation
K - Transformation HDU - 4578 思路:发现自己的错误竟然是zz般的少了一个取模 ε=ε=ε=(#>д<)ノ #include<cstdio> # ...