摘要: "题面" 题解 感觉和$CDQ$分治一样套路啊 首先,构建出点分树 对于每一层分治重心,求出它到子树中任意点的距离 然后$two pointers$计算满足小于等于$K$的点对数目,加入答案 但是可能会算重,那么就减去子树内两两点之间的贡献即可。 代码 cpp include include inc 阅读全文
posted @ 2018-10-20 22:46 xgzc 阅读(141) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-10-20 17:23 xgzc 阅读(4) 评论(0) 推荐(0) 编辑
摘要: "题面" 题解 线段树合并 我们看到这道题目首先可以想到树上差分,然后$dfs$合并 发现题目让我们求的东西很好用线段树维护 于是可以想到线段树合并 ~~全世界只有我写指针版动态开点线段树(大雾~~ 如果你要写指针版,请开内存池,~~new又耗时又浪费空间~~ 代码 cpp include incl 阅读全文
posted @ 2018-10-20 15:24 xgzc 阅读(207) 评论(0) 推荐(0) 编辑
摘要: "题面" 题解 威佐夫博弈 代码 阅读全文
posted @ 2018-10-19 21:41 xgzc 阅读(489) 评论(0) 推荐(0) 编辑
摘要: "题面" 题解 树形背包板子题。 设$f[i][j]$表示在以$x$为根的子树选$j$门课(包括$x$)能够获得的最高学分,用分组背包转移即可。 代码 cpp include include define RG register inline int read() { int data = 0, w 阅读全文
posted @ 2018-10-19 17:14 xgzc 阅读(348) 评论(0) 推荐(0) 编辑
摘要: "题面" 题解 我们可以尝试寻找临界值。枚举,那么令$\frac{A}{a_i}+\frac{B}{b_i}=\frac{A}{a_j}+\frac{B}{b_j}$,如果这对$A,B$在$i,j$取到最值,那么$i,j$有用。 将每个型号看成平面上的点$(\frac1{a_i},\frac1{b_ 阅读全文
posted @ 2018-10-19 16:15 xgzc 阅读(259) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-10-19 13:00 xgzc 阅读(7) 评论(0) 推荐(0) 编辑
摘要: "题面" 题解 这道题目到底叫什么好呢?? ~~史上最短CDQ分治题~~ 记一个前缀和,然后CDQ分治即可。 代码 cpp include include define RG register inline long long read() { long long data = 0, w = 1; 阅读全文
posted @ 2018-10-18 17:24 xgzc 阅读(168) 评论(0) 推荐(0) 编辑
摘要: "题面" 题解 这道题要求关于第k大的东西,所以可以想到用主席树或整体二分 我们可以发现,这道题主要的难点就是路径之间的包含关系,那么我们分情况讨论: 1. LCA不是两个端点 令这个盘子的两个端点为$a,b$ 如果被一个水果完全覆盖, 那么,这个水果的两端分别在$a,b$的子树中 设$pos[a] 阅读全文
posted @ 2018-10-17 21:58 xgzc 阅读(183) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-10-17 15:10 xgzc 阅读(4) 评论(0) 推荐(0) 编辑