上一页 1 2 3 4 5 6 ··· 11 下一页
摘要: Sol 不难想到暴力 DP,复杂度 O(tk2),无法通过。 观察转移方程,注意到贡献到每个点的状态一定是连续的区间,那么用前缀和维护就好了。 偏移量可以设置的大一些以防 RE。 Code #include <bits/stdc++.h> #define x first #define y 阅读全文
posted @ 2025-03-10 17:06 incra 阅读(3) 评论(0) 推荐(0) 编辑
摘要: Sol 很考验注意力啊。 注意限制是边权最大值,想到二分,对于能反向的边建双向边,否则建单向边,跑缩点后判断是否只有一个点没有入度,证明显然。 自己想出来的 *2200,很难得啊。 Code #include <bits/stdc++.h> #define x first #define y sec 阅读全文
posted @ 2025-03-10 17:05 incra 阅读(2) 评论(0) 推荐(0) 编辑
摘要: Prob 树上选择一些物品,有多个,要求选择的所有物品成一个连通块,求出最大的价值。 Sol 点分治,考虑强制选择某个点 u 的答案,那么就以 u 为根做多重背包,并且特判必须选 u,对于 n 个点都做一遍强制选,那么就可以取到最优解。可以证明点分治也同样可以取到了所 阅读全文
posted @ 2025-03-06 16:44 incra 阅读(3) 评论(0) 推荐(0) 编辑
摘要: Sol 点分治板子,写一些细节: 以下代码中,对于每个重心 rt,每次统计所有过 rt 的链对所有答案的贡献。 每一条链可以和子树外的所有链造成贡献,而并非前面枚举到的链。 Code #include <bits/stdc++.h> #define x first #define y 阅读全文
posted @ 2025-03-06 14:58 incra 阅读(4) 评论(0) 推荐(0) 编辑
摘要: Sol 整体二分板子,没啥好说。 讲一下一些细节: 注意是区间加,最大总和可达 1023,会爆 long long。 注意复杂度,遍历出边次数最多为深度乘上边数,不会 TLE。 Code #include <bits/stdc++.h> #define x first #define 阅读全文
posted @ 2025-03-05 13:08 incra 阅读(3) 评论(0) 推荐(0) 编辑
摘要: Sol 保证有解,这题就会方便很多。 不难注意到两端在同个双连通分量的边定向一定任意,所以我们可以先缩边双,然后考虑缩点后的树即可。 考虑一种差分(边权差分),d[s]++,d[t]--,考虑这种差分会影响到哪些点的权值,会让 sLCA(a,b) 边权 阅读全文
posted @ 2025-03-04 15:39 incra 阅读(6) 评论(0) 推荐(0) 编辑
摘要: Sol 分块 + 可撤销并查集好题。 假设对于每 B 个操作分一块暴力做: 对于没修改到的边,暴力加入并查集,复杂度 O(m)。 对于修改到的边,最多 B 条,按边权排序,询问也按边权排序,那么可以双指针和并查集做到 O(B2logn)。 这里可以注意到前面没修 阅读全文
posted @ 2025-03-03 20:28 incra 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 注意到假如说温度是 t,选择的冰系人是温度 t 的,火系人是温度 t。那么答案就是 2×min(sumfire,sumice)。 注意到一个函数递增,一个函数递减,所以我们只需要维护交叉点两侧的答案即可,注意双 log 过不去 阅读全文
posted @ 2025-03-03 20:01 incra 阅读(4) 评论(0) 推荐(0) 编辑
摘要: Day1 2h 写完暴力,20 + 20 + 8。 看了一眼 B 想了想好像会了 B 性质 12 分,开写,写了 2h,假了,摆了,寄了。 出来发现怎么都过 A 了,草草草,问了问,我擦,怎么这么水,我是傻逼。 最终得分 20 + 20 + 8。 Day2 1h 写完暴力,44 + 8 + 8。 手 阅读全文
posted @ 2025-03-03 18:03 incra 阅读(7) 评论(0) 推荐(0) 编辑
摘要: Sol 注意到选取包含 20 的序列一定不符合条件,因为如果把 20 一个分到前缀一个分到后缀,那么前缀 min0,后缀 mex 大于 0,不满足条件。 同时,可以发现如果没有选 \(0 阅读全文
posted @ 2025-02-13 21:02 incra 阅读(10) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 11 下一页
点击右上角即可分享
微信分享提示