摘要: 题意: 戳这里 分析: 又是一道巨佬秒切了的题 我们以每个城市作为一个小根堆,把骑士作为元素,每次弹出不符合的元素之后 向自己的 \(fa\) 进行合并,同时更新堆内的每一个元素 注意特判堆是否为空 代码: #include<bits/stdc++.h> #define lc t[rt].ls #d 阅读全文
posted @ 2021-01-05 15:55 youth518 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 题意: 戳这里 分析: 题意:给定一片森林,三种操作:加边,求每个连通块的重心编号,求所有连通块重心编号异或和 暴力 好吧,这也不是很暴力的做法,\(lca\) 的启发式合并求重心,每次把小的连通块向大的连通块上一个点一个点合并,每次重心向大小超过 \(\frac{siz}{2}\) 的方向挪动一格 阅读全文
posted @ 2021-01-05 15:50 youth518 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 题意: 戳这里 分析: 题意:\(m\) 个操作每次操作给出 \(h,k\) 在前 \(h\) 个数字中选出 \(k\) 个 +1,使得操作结束后 \(\sum \frac{x\times (x-1)}{2}\) 最小 易证: 最后使得所有数尽可能小最优 ,若 \(x<y\) 则 \(\frac{x 阅读全文
posted @ 2021-01-05 15:40 youth518 阅读(68) 评论(0) 推荐(0) 编辑
摘要: P3348 [ZJOI2016]大森林 LCT 题意: 戳这里 分析: 巨佬1 说这是水题,应该一眼切,我还是太菜了/kk 不讲思考过程了,因为我压根就不会,思考了寂寞 具体做法就是,我们发现询问可以离线,那么对操作进行排序,利用LCT的动态维护的功能就可以在一棵树上通过删改得到所有情况的答案 我们 阅读全文
posted @ 2021-01-05 14:58 youth518 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 题意: 戳这里 分析: 暴力: 对于每一个操作,找出它加上或删掉影响的部分中最小的那个值,跟它比较之后决定删除或保留,复杂度 \(O(qm)\) 正解: 我还在想分成树边和非树边分开考虑怎么计算时,巨佬一眼就切了 没错,就是线段树分治,因为每一条边被修改中之后等价于删掉这条旧的边,同时加入一条边权为 阅读全文
posted @ 2021-01-05 10:25 youth518 阅读(102) 评论(0) 推荐(0) 编辑