【传送门:BZOJ2435】 简要题意: 给出n个点,n-1条边,显然是一棵树,每条边有权值,而建设每条边的代价是这条边的权值乘上这条边左边的点数减去右边的点数的绝对值 求出总代价 题解: 很水 我们默认点1为树的根,DFS将每个点遍历一遍,求出每个点的深度和子树点数 然后遍历一遍所有的边,ans+ ...
分类:
其他好文 时间:
2018-02-20 15:59:30
阅读次数:
172
傻叉树形dp。。 2435: [Noi2011]道路修建 Description 在 W 星球上有 n 个国家。为了各自国家的经济发展,他们决定在各个国家之间建设双向道路使得国家之间连通。但是每个国家的国王都很吝啬,他们只愿意修建恰好 n – 1条双向道路。 每条道路的修建都要付出一定的费用, 这个 ...
分类:
其他好文 时间:
2016-09-09 22:07:48
阅读次数:
200
bzoj2435[Noi2011]道路修建 题意: 给个n点树,每条边的费用为这条边两端的节点数的差值*这条边的长度,求这个数的总费用。 题解: 水题,dfs求出节点的子树大小sz,对于每一条边,费用为深度大的sz值与n-sz相减的绝对值乘边的长度。 代码: 20160611 ...
分类:
其他好文 时间:
2016-08-17 00:11:10
阅读次数:
249
这是NOI11年题,你在逗我?直接dfs就可以了,Linux下貌似不会爆栈。。。 1 /************************************************************** 2 Problem: 2435 3 User: rausen 4 ...
分类:
其他好文 时间:
2015-02-19 15:06:58
阅读次数:
155
Description在 W 星球上有 n 个国家。为了各自国家的经济发展,他们决定在各个国家之间建设双向道路使得国家之间连通。但是每个国家的国王都很吝啬,他们只愿意修建恰好 n – 1条双向道路。 每条道路的修建都要付出一定的费用, 这个费用等于道路长度乘以道路两端的国家个数之差的绝对值。例如,在...
分类:
其他好文 时间:
2014-12-11 17:05:18
阅读次数:
142
题目大意:给定一棵树(直接给树,不是给图求生成树!),求每条边权值*两边点数之差的和
BFS水过即可
其实DFS也能过。。。系统栈可能有些不充裕,我们可以利用内嵌汇编手动开大系统栈 详见代码
这题读入优化可以优化掉4s左右
#include
#include
#include
#include
#define stack_size (20001000)
#define M 1001001
...
分类:
其他好文 时间:
2014-10-10 18:45:30
阅读次数:
139
两遍DFS。第一遍统计以每个点为根的子树大小,第二遍更新答案。 1 #include 2 #include 3 using namespace std; 4 int v[2000001],w[2000001],first[2000001],next[2000001],en,sz[1000001]; ...
分类:
其他好文 时间:
2014-09-09 18:07:09
阅读次数:
188