摘要: 题目大意: 每次操作可以让除了一条边之外的所有边-1,问让一条边必定出现在最小生成树上的代价是多少。 题解: 一条边必定出现在最小生成树上说明比它小的边不能把两点提前联通。对于比给定边小的边,割掉这条边的代价就要使得这条边比给定边权值来得大,目标是让给定边连接的两点不连通。 这就是最小割问题了 代码 阅读全文
posted @ 2018-04-05 21:00 ~Silent 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 题面:求一棵树嵌入一张图里有多少种不同的方案数 题解:首先是一个树形DP。dp[x][s]表示以x为根的子树使用了s这个集合。然而发现这个转移要枚举子集,复杂度好像很高的样子,我也不知道加了神奇的优化能不能过去。 然后我们发现如果一个数可以同时对应多个数就可以避免枚举子集,现在假设不用一一对应,状态 阅读全文
posted @ 2018-04-05 10:57 ~Silent 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 题意:完全背包 题解:完全背包 代码: 阅读全文
posted @ 2018-04-05 10:55 ~Silent 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给出一个N个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大 题解:首先以1为根统计一次答案,然后每次O(1)换根统计答案 代码: 阅读全文
posted @ 2018-04-05 10:53 ~Silent 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给一个长度为n的序列a。1≤a[i]≤n。 m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2。如果存在,输出这个数,否则输出0。 题解: 如果这个数存在,那么这个数存在的区间中数的个数必定大于(r-l+1)/2,这里的区间以数值为下标。我 阅读全文
posted @ 2018-04-05 10:51 ~Silent 阅读(116) 评论(0) 推荐(0) 编辑
Live2D