
贪心
Rayment_cc
++Rp
展开
-
BZOJ 2151 种树
ProblemBZOJSolutionkaisa158题解 Orz贪心,只不过贪心有后效性,所以引入反悔机制解决后效性。按照贪心,每次会选取权值最大的地方种树,如这组数据: 4 2 3 5 4 1 那么,贪心算法首先将选取5,而在做第二个选择是1,反而不一定是最优答案,因为之前做的选择会影响到后来的选择,即我们常说的后效性。我们考虑起前面的选择只会对两侧的选择造成...原创 2018-03-21 11:22:05 · 338 阅读 · 0 评论 -
BZOJ 2525 POI2011 DYN-Dynamite
ProblemBZOJ权限题,放洛谷链接。Solution参考了PoPoQQQ大爷的题解OAO考虑二分答案,则只需判断对于给定覆盖范围,判断选m个点能否覆盖所有的点即可。 对于以一个节点为根的子树,有三种状态: 0.这棵子树中存在一个选择的点,这个选择的点的贡献还能继续向上传递 1.这棵子树中存在一个未被覆盖的关键点,需要一些选择的点去覆盖他 2.这棵...原创 2018-04-09 21:20:13 · 341 阅读 · 0 评论 -
BZOJ 1517 POI2006-MET subway
ProblemBZOJ又是权限题就不放链接了 洛谷给定一棵树,选择m条路径覆盖最多的点的个数是多少,路径允许相交。Solution话说1e6的数据,要O(n)的做法啊。尤其可能还有点卡常,写个register吧,实测register在调用次数多的时候,有1/10的常数。然后这题的思路有点神…… 贪心。 贪心的思路是这样,把所有的叶子归为第一层,入队,然后用拓扑排序,将...原创 2018-03-28 20:43:13 · 290 阅读 · 0 评论 -
BZOJ 1367 BOI2004数字序列
ProblemBZOJSolutiondalao安利的一道论文题。。为了方便思考,我们可以把ai减去i,把严格递增的条件转化为非严格递增的条件。不妨先考虑特殊情况,a如果是递增的,那么直接bi=ai即可。如果是递减的,就取它的中位数,原因后文再讲。先考虑一个简化的问题,是一个初中数学题,求使得|A−x|+|B−x|(A≤B)|A−x|+|B−x|(A≤B)|A-x|+|B-...原创 2018-06-28 17:35:37 · 308 阅读 · 0 评论 -
BZOJ 5092 分割序列
ProblemBZOJSolutionf(b,n)=maxi=0n((b1⊕b2⊕...⊕bi)+(bi+1⊕bi+2⊕...⊕bn))f(b,n)=\max_{i=0}^n((b_1 \oplus b_2 \oplus...\oplus b_i)+(b_{i+1} \oplus b_{i+2} \oplus...\oplus b_n))f(b,n)=i=0maxn((b1⊕b2⊕...原创 2018-12-15 16:13:41 · 264 阅读 · 0 评论 -
Codeforces526G Spiders Evil Plan
ProblemCodeforcesSolution我们可以先考虑怎么解决单组询问。可以把 xxx 提做根,然后每次贪心选贡献最大的叶子即可。注意到叶子被选作的贡献是可以确定的,因为选叶子的顺序是固定的,而这个恰好对应这这棵树的长链剖分,选某个叶子的贡献就是它的长链的长度。那么我们就得到了一个优秀的 O(n2logn+m)O(n^2\log n+m)O(n2logn+m) 算法啦!这个算法...原创 2019-03-26 17:19:05 · 453 阅读 · 3 评论