ATC 做题记录

其实是对着 yhx-12243 一个一个题噶的。

板刷 ATC 计划。

[ARC078F] Mole and Abandoned Mine
求一个联通图的子图保证 1n 只有一条路径且联通且边权和最大。
考虑把这一条链记下来,围绕这个这条链构造。状压下来每个点的连通性。我们需要知道的是,我们选完一条链后,每个点可以选若干联通快挂在底下。
我们考虑 fst,x 表示联通性如 st,目前链到了 x
那么就有两种情况。
xy 这个可以枚举一条出边,取一个集合外的点 y

fst,x+ex,yystfsty,y

x 选一个联通块,并计算其导出子图的贡献。

fst,x+valG,xystfstG,x

我们可以预处理每一个导出子图内点的贡献,以及导出子图到 x 的所有边,配合枚举子集可以做到 O(3n)

int sub = ~(-1 << n | st);
for ( ; sub; sub = (sub - 1) & ~st)

[AGC014D] Black and White Tree
先考虑链上情况,奇数先手胜,偶数先手负。
然后我们扩展到一颗由若干条链的子树上。
若有 2 条即以上奇数链,则可以染根,然后选一条链来染必然可以,否则可以随时被破坏。
考虑拼若干子树。我们如果有若干先手败的子树,我们可以转化到父亲先手胜的子树,所以可以有以下理论。

  • 两条及以上的奇链拼起来是先手必胜。
  • 有两颗及以上子树是先手必败。

[AGC007D] Shik and Game

考虑这些老头爆金币肯定要等一会时间,所以可以往返,那具体是什么时候呢?
我们可以考虑在一个点出发爆金币后再往返一次,取回之前的人爆的金币,这个是最优情况。
与之对应的只需要证明爆玩金币后在走是更优的就行了。
那么咋做?

fi=minfj+(xixj)+max{2(xixj+1),T}

其中 xixj 不难发现为 0e 这一段。我们拿单调队列维护 2xixj+1T 即可。

[AGC035D] Add and Remove

考虑贡献的最小值。然后自然可以想到记下左右端点的系数,然后 dp。
观察到序列左右端点只会在最后合并一次,所以考虑逆推
记录 fl,r,cl,cr 为左右端点为 l1,r+1 系数为 cl,cr 然后有:

fl,r,cl,cr=minfl,i1,cl,cl+cr+fi+1,r,cl+cr,cr+(cl+cr)ai

状态数较少,直接暴搜 dfs(2,n1,1,1) 即可。

[ARC065F] シャッフル

考虑维护一个端点最右边的 r
那么我们考虑 fi,j 为前 i 个数 j 个 1。
然后我们考虑贪心调度出 1 的上下界即可。

注意 Implement

ABC 神秘东方力量大赏。

[ABC256Ex] I like Query Problem

GJOI 原题??考虑以不相同元素个数为势能,必然修改后变小,所以除法如果 min = max 直接转化为区间加,否则暴力改即可。
注意下传 cover 时清空 add。

[ABC255Ex] Range Harvest Query

我真的不是杀软二次元()

Chtholly-Tree 模板题,考虑颜色段。
每次修改只会增加 O(1) 个颜色段,容易发现每个颜色段只会使用一次,所以是 O(q) 个。
考虑怎么计算一个段的贡献,等差数列即可。

(dd0)(l+r)(rl+1)2

[ABC258Ex] Odd Steps

考虑 dp。

f_i = f_{i - 1} + f_[i - 3} + .....

这些可以考虑直接使用矩阵快速幂维护,然后分段计算,对于每个 ai 清零即可。

[ABC259Ex] Yet Another Path Counting

考虑按照每个颜色出现次数分类。

n 考虑直接 dp,每次讨论转移下来和新开一条路即可。

nn2 的组合数算就好了。

[ABC302Ex] Ball Collector

感觉 ptsd 没了,现在又新的东西了。

考虑 aibi。然后根据填数游戏我们发现一颗树就只能选 v1 个点。然后其他都是 v

可撤销并查集。

posted @   Cust10  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示