该文被密码保护。 阅读全文
摘要:
Prob 树上选择一些物品,有多个,要求选择的所有物品成一个连通块,求出最大的价值。 Sol 点分治,考虑强制选择某个点 的答案,那么就以 为根做多重背包,并且特判必须选 ,对于 个点都做一遍强制选,那么就可以取到最优解。可以证明点分治也同样可以取到了所 阅读全文
摘要:
Sol 点分治板子,写一些细节: 以下代码中,对于每个重心 ,每次统计所有过 的链对所有答案的贡献。 每一条链可以和子树外的所有链造成贡献,而并非前面枚举到的链。 Code #include <bits/stdc++.h> #define x first #define y 阅读全文
摘要:
Sol 整体二分板子,没啥好说。 讲一下一些细节: 注意是区间加,最大总和可达 ,会爆 long long。 注意复杂度,遍历出边次数最多为深度乘上边数,不会 TLE。 Code #include <bits/stdc++.h> #define x first #define 阅读全文
摘要:
Sol 保证有解,这题就会方便很多。 不难注意到两端在同个双连通分量的边定向一定任意,所以我们可以先缩边双,然后考虑缩点后的树即可。 考虑一种差分(边权差分),d[s]++,d[t]--,考虑这种差分会影响到哪些点的权值,会让 边权 阅读全文
摘要:
Sol 分块 + 可撤销并查集好题。 假设对于每 个操作分一块暴力做: 对于没修改到的边,暴力加入并查集,复杂度 。 对于修改到的边,最多 条,按边权排序,询问也按边权排序,那么可以双指针和并查集做到 。 这里可以注意到前面没修 阅读全文
摘要:
Day1 2h 写完暴力,20 + 20 + 8。 看了一眼 B 想了想好像会了 B 性质 12 分,开写,写了 2h,假了,摆了,寄了。 出来发现怎么都过 A 了,草草草,问了问,我擦,怎么这么水,我是傻逼。 最终得分 20 + 20 + 8。 Day2 1h 写完暴力,44 + 8 + 8。 手 阅读全文
摘要:
对于一个简单无向图,直接暴力枚举做是 的,假设图上的每个点的度为 ,考虑给边重定向,如果连接的两个边度不同,那么大的连小的,如果度相同,那么编号小的连达到,此时考虑暴力做,复杂度不超过 ,考虑证明: 如果 \(deg_i\le\s 阅读全文