题目链接:点击打开链接
题意:
给定n个点的树,任意拆掉一条边,得到2个子树,再用刚拆掉的边把这两个子树连起来。
得到新的树,这个树的权值为任意两个点间的距离和。
使得新的树权值最小。输出这个权值。
枚举拆掉的边(u,v)
得到2个以u为根的子树和以v为根的子树
计算每条边对答案的贡献,拆掉的边贡献就是siz[u]*siz[v]*edge[u,v].dis
剩下的就是计算如何连接2...
分类:
其他好文 时间:
2015-03-21 11:19:51
阅读次数:
209
/*
树形dp
题意:
给出一颗树,每个节点都有敌人,消灭敌人后会给报酬,自己的士兵一个能消灭20个,从节点1开始,如果根节点消灭,子节点就不消灭
给出一个n表示有n个节点,m表示自己士兵的数量,接下来n行,表示n个节点敌人的数量和报酬,接下来n-1行是树的情况
*/
#include
#include
const int maxn = 105;
...
分类:
其他好文 时间:
2015-03-20 20:32:21
阅读次数:
113
题意:给定n个点m条边的无向图。以下m行给出边和边权以下Q个询问。Q行每行给出一条边(一定是m条边中的一条)表示改动边权。(数据保证改动后的边权比原先的边权大)问:改动后的最小生成树的权值是多少。每一个询问互相独立(即每次询问都是对于原图改动)保证没有重边。求:全部改动后的最小生成树权值的平均值。思...
分类:
其他好文 时间:
2015-03-20 12:27:16
阅读次数:
120
我们可以树形dp...令f[p][d]表示以p为根的子树,与p距离为d的结点数然后我们计算答案:一种是从某个节点q到根p的方案,对和为d的贡献是1另一种是p的一个子树中的节点x到另一个子树中的节点y的方案,对和为d[x] ^ d[y]的贡献为1第二种我们可以通过f暴力求出,话说什么时候去研究一下FW...
分类:
其他好文 时间:
2015-03-19 23:39:05
阅读次数:
215
Problem Description
There is going to be a party to celebrate the 80-th Anniversary of the Ural State University. The University has a hierarchical structure of employees. It means that the supervi...
分类:
其他好文 时间:
2015-03-19 22:02:07
阅读次数:
105
Anniversary partyTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5619Accepted Submission(s): 2580P...
分类:
其他好文 时间:
2015-03-18 23:16:44
阅读次数:
182
题意:给你n个点,n-1条边构成树,每条边有边树,每个点有点权(表示走每条边的时间),问在时间T从点1走到点n,能够得到最多的点权有多少。由于是树,最优的结果一定经过最短路,其他边要么经过两次,要么零次,所以先求最短路,权置为零,之后dp,最短路直接搜索即可(树)/*树形DP先找出1到N的边,将这些...
分类:
其他好文 时间:
2015-03-18 17:49:51
阅读次数:
101
题意:给定一棵树,然后每次可以操作节点,使得节点和周围节点的状态都翻转,问是否能使得所有节点都为1
思路:树形DP, dp[n][2][2] 的状态,
表示在第n个节点的时候,值是0或1,是否翻转过, 的状态能否到达 ,状态转移注意下细节就可以了
代码:
#include
#include
#include
#include
using namespace std;
c...
分类:
其他好文 时间:
2015-03-17 21:57:34
阅读次数:
162
大致题意:在某个点派出两个点去遍历所有的边,花费为边的权值,求最少的花费
思路:这题关键好在这个模型和最长路模型之间的转换,可以转换得到,所有边遍历了两遍的总花费减去最长路的花费就是本题的答案,要思考,而且答案和派出时的起点无关
求最长路两遍dfs或bfs即可,从任意点bfs一遍找到最长路的一个终点,再从这个终点bfs找到起点
//1032K 79MS C++ 1455B
#include...
分类:
其他好文 时间:
2015-03-15 12:30:59
阅读次数:
152
题意:求树的重心的编号以及重心删除后得到的最大子树的节点个数size,如果size相同就选取编号最小的.
思路:随便选一个点把无根图转化成有根图,dfs一遍即可dp出答案
//1348K 125MS C++ 1127B
#include
#include
#include
#include
#include
using namespace std;
int n;
const int N= 20...
分类:
其他好文 时间:
2015-03-15 11:01:35
阅读次数:
111