ATC 做题记录
其实是对着 yhx-12243 一个一个题噶的。
板刷 ATC 计划。
[ARC078F] Mole and Abandoned Mine
求一个联通图的子图保证 只有一条路径且联通且边权和最大。
考虑把这一条链记下来,围绕这个这条链构造。状压下来每个点的连通性。我们需要知道的是,我们选完一条链后,每个点可以选若干联通快挂在底下。
我们考虑 表示联通性如 ,目前链到了 。
那么就有两种情况。
从 这个可以枚举一条出边,取一个集合外的点 。
从 选一个联通块,并计算其导出子图的贡献。
我们可以预处理每一个导出子图内点的贡献,以及导出子图到 的所有边,配合枚举子集可以做到 。
int sub = ~(-1 << n | st);
for ( ; sub; sub = (sub - 1) & ~st)
[AGC014D] Black and White Tree
先考虑链上情况,奇数先手胜,偶数先手负。
然后我们扩展到一颗由若干条链的子树上。
若有 2 条即以上奇数链,则可以染根,然后选一条链来染必然可以,否则可以随时被破坏。
考虑拼若干子树。我们如果有若干先手败的子树,我们可以转化到父亲先手胜的子树,所以可以有以下理论。
- 两条及以上的奇链拼起来是先手必胜。
- 有两颗及以上子树是先手必败。
[AGC007D] Shik and Game
考虑这些老头爆金币肯定要等一会时间,所以可以往返,那具体是什么时候呢?
我们可以考虑在一个点出发爆金币后再往返一次,取回之前的人爆的金币,这个是最优情况。
与之对应的只需要证明爆玩金币后在走是更优的就行了。
那么咋做?
其中 不难发现为 这一段。我们拿单调队列维护 即可。
[AGC035D] Add and Remove
考虑贡献的最小值。然后自然可以想到记下左右端点的系数,然后 dp。
观察到序列左右端点只会在最后合并一次,所以考虑逆推。
记录 为左右端点为 系数为 然后有:
状态数较少,直接暴搜 即可。
[ARC065F] シャッフル
考虑维护一个端点最右边的 。
那么我们考虑 为前 个数 个 1。
然后我们考虑贪心调度出 1 的上下界即可。
注意 Implement。
ABC 神秘东方力量大赏。
[ABC256Ex] I like Query Problem
GJOI 原题??考虑以不相同元素个数为势能,必然修改后变小,所以除法如果 min = max 直接转化为区间加,否则暴力改即可。
注意下传 cover 时清空 add。
[ABC255Ex] Range Harvest Query
我真的不是杀软二次元()
Chtholly-Tree 模板题,考虑颜色段。
每次修改只会增加 个颜色段,容易发现每个颜色段只会使用一次,所以是 个。
考虑怎么计算一个段的贡献,等差数列即可。
[ABC258Ex] Odd Steps
考虑 dp。
。
这些可以考虑直接使用矩阵快速幂维护,然后分段计算,对于每个 清零即可。
[ABC259Ex] Yet Another Path Counting
考虑按照每个颜色出现次数分类。
考虑直接 ,每次讨论转移下来和新开一条路即可。
用 的组合数算就好了。
[ABC302Ex] Ball Collector
感觉 ptsd 没了,现在又新的东西了。
考虑 。然后根据填数游戏我们发现一颗树就只能选 个点。然后其他都是 。
可撤销并查集。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话