BZOJ 1060 ZJOI 2007 时态同步 树形DP
来源:互联网 发布:资源搜索软件 编辑:程序博客网 时间:2024/05/21 01:32
题目大意:给出一个有根树,树上的边有边权。现在可以将一个边的边权的值+1,要想使得根节点到所有叶子节点的距离相等,最少需要多少个+1操作。
思路:当只考虑以一个节点为根的子树的时候,就必须要保证这个根节点到所有这个子树中的叶子节点的距离相等,才能保证最终根节点到所有叶子节点的距离都相等。所以就深搜一次,对于每个节点求出到这个节点的最长距离,将所有其他的边加成这个最长距离,记录答案。
但是这样并不能AC,因为标称是错的,它没有开long long ,于是乎我们也要开int才能AC。。-、-
CODE:
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define MAX 500010using namespace std;#define max(a,b) ((a) > (b) ? (a):(b)) int points,root;int head[MAX],total;int next[MAX << 1],aim[MAX << 1],length[MAX << 1]; long long ans; inline void Add(int x,int y,int len){ next[++total] = head[x]; aim[total] = y; length[total] = len; head[x] = total;} int DFS(int x,int last){ int max_length = 0; long long sum = 0,cnt = 0; for(int i = head[x],l; i; i = next[i]) { if(aim[i] == last) continue; ++cnt; l = DFS(aim[i],x) + length[i]; (这个l要开成int,不然就是WA) max_length = max(max_length,l); sum += l; } ans += (max_length * cnt - sum); return max_length;} int main(){ cin >> points >> root; for(int x,y,z,i = 1; i < points; ++i) { scanf("%d%d%d",&x,&y,&z); Add(x,y,z),Add(y,x,z); } DFS(root,0); printf("%lld\n",ans); return 0;}
0 0
- BZOJ 1060 ZJOI 2007 时态同步 树形DP
- BZOJ 1060 ZJOI2007 时态同步 树形DP
- BZOJ 1060: [ZJOI2007]时态同步 树形DP
- bzoj 1060: [ZJOI2007]时态同步 树形dp
- bzoj 1060: [ZJOI2007]时态同步(树形DP)
- BZOJ 1060 时态同步
- [BZOJ1060][ZJOI2007]时态同步(树形dp)
- 【bzoj1060】【ZJOI2007】时态同步(树形dp)
- [bzoj1060][ZJOI2007]时态同步 树形DP
- [ZJOI2007]时态同步(树形DP+DFS)
- 【BZOJ1060】时态同步(ZJOI2007)-树形DP
- 【BZOJ】1060: [ZJOI2007]时态同步
- BZOJ 1060: [ZJOI2007]时态同步
- BZOJ 1093 [ZJOI 2007] 最大半连通子图 (tarjan+树形DP)
- BZOJ 1040 ZJOI 2008 骑士 基环树林+树形DP
- bzoj1060 [ZJOI2007]时态同步 [树形dp][贪心…]
- LuoguP1131[ZJOI2007] 时态同步 解题报告【树形DP(?)】
- bzoj 1060 [ZJOI2007] 时态同步 题解
- 二叉树的建立和遍历
- error C2664: “FindFirstFileW”: 不能将参数 1 从“char [261]”转换为“LPCWSTR” 解决
- 设计一个圆柱体类
- Java中String和StringBuffer的区别
- 哈佛教授丘成桐:中国学生基础好的说法是自欺欺人
- BZOJ 1060 ZJOI 2007 时态同步 树形DP
- Ueditor结合七牛云及百度云存储(JAVA版,ueditor-1.4.3)实现图片文件上传
- node.js数据库相关
- 程序员如何选择技术方向
- Apache服务的安装与卸载
- mongodb在python中的应用——利用pymongo和mongoengine
- Linux和Windows下查看cpu和core个数
- JAVA-day0-写在前面的话
- 开心吧”商城值得信懒的网购天堂!