摘要:
首先直径是很好求的,先以任意点为根DFS求出最远点,再以最远点为根求出第二个点 两个点之间的距离即为直径 显然对于第二问,答案是直径上的某一段,且满足不可向左右扩展出跟直径等长的路径 那么我们就可以暴力枚举直径上的点,看看它是否可以向右和向左扩展即可 阅读全文
摘要:
样例真是坑爹,给了和没给一样 显然对于Bob而言,只需要把P全部加到流量最大的那条边上显然对他是最有利的 问题就变成了求在最大流限制下使流量最大的边最小 二分之后将每条容量大于二分值的边减小到二分值并且跑网络流判断最大流是否改变即可 阅读全文
摘要:
做法参见JSOI 冷冻波 (话说那个题目还需要写计算几何判断是否可以打到,这个题目直接给定0,1了QAQ) 二分+最大流判定即可 阅读全文
摘要:
分析一下样例就可以知道,求的实际上是从左下角到右上角的最长路 因为对于任意不在这个最长路的上的点,都可以通过经过最长路上的点的路径将这个点的价值减光 (可以用反证法证明) 之后就是一个非常NOIP的DP了 阅读全文
摘要:
做法和APIO2012派遣 那道题目类似 在树上DFS,维护当前子树的小根堆 因为需要合并孩子们的信息,使用左偏树就可以了 每次弹出死亡骑士,对剩余骑士打上奖励标记 至于标记的下传和更改,只需要每次在需要遍历到这个点之前push_down就可以了 阅读全文
摘要:
假设我们用了边权前i小的边使得图连通,那么对答案的贡献为i/m+1 又因为期望的线性性质,我们只需要求用了i条边就可以了 不妨设g(S)(i)表示用了i条边使得点集S连通的概率 设f(S)(i)表示用了i条边使得点集S没有连通的概率 设cnt(S)表示点集S内部的边的数量 我们可以知道f(S)(i) 阅读全文