摘要: 树形dp 就是求每个点到标记的点的最大距离 一个经典模型 有一个巧妙的方法,我们求出以这些关键点的直径,然后每个点到关键点的最大距离就是到直径两端的距离 #include<bits/stdc++.h> using namespace std; const int N = 100010; int n, 阅读全文
posted @ 2017-09-26 16:11 19992147 阅读(297) 评论(1) 推荐(0) 编辑
摘要: 线段树+并查集 这道题跟codeforces #416 div2 E几乎一样 于是我又抄了一遍代码 我们建线段树,维护l->r区间这一块黑色白色连通块的数量,并且维护两端的并查集,每次合并区间就是把并查集合并,计算颜色的变化数量,并查集具体是维护一个fa数组,每次合并的时候把两端的并查集信息放到fa 阅读全文
posted @ 2017-09-26 16:07 19992147 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 贪心 想了一会觉得没什么很好的方法,看了题解 我们枚举每个二进制位,对于l,r如果这位相同就异或到答案里,否则停止,这里肯定是r比l大,也就是r这位是1而l是0,那么我们就让r这位选1,l选0,然后把l从这位-1直到0每位全部赋成1,这样就是答案 为什么是对的呢?考虑如果这位不同,那么之前的位全部都 阅读全文
posted @ 2017-09-26 10:59 19992147 阅读(295) 评论(0) 推荐(0) 编辑