专栏文章
ARC 题目选记
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mip6oqwu
- 此快照首次捕获于
- 2025/12/03 07:02 3 个月前
- 此快照最后确认于
- 2025/12/03 07:02 3 个月前
AT_arc085_c [ARC085E] MUL
完成情况:独立做出特点:网络流,最大权闭合子图
题解。
AT_arc085_d [ARC085F] NRE
完成情况:未独立做出原因:DP 时只想到对于下标作转移,想不到可以通过区间作转移。做题经验:区间选择问题,先对区间左端点或右端点排序,分别从下标角度和区间角度设计 DP。记住:右排左扫。特点:线段树优化 DP
先转换,变为序列元素是 或 ,找出若干个区间使得其并集的对应元素和最大。
DP。但是是从区间的角度 DP。
按右端点排序,从右端点较小的 DP 而来。
分类讨论前一个区间和这个区间有无交集,分别写两个式子转移。线段树优化。
AT_arc083_c [ARC083E] Bichrome Tree
完成情况:独立做出但 WA原因:背包 DP 掌握不好。01 背包要讲究 倒序DP,防止滥用转移变为完全背包。特点:树形 DP,背包 DP
染色与染色具体是什么色无关,所以我们不需要记录根的颜色这个状态。 就是说黑白颠倒也成立。
容易知道,树形 DP 过程中,我们只关心儿子的两种颜色对应权值的和分别是多少。
由于与根相同颜色的权值就是 ,所以对于某个结点 的子树的一种染色方案,我们只关心子树与 不同颜色的权值和,记作 。
后效性即为上述。进一步地,这些权值和种类可能很多,我们考虑剪掉某些种类。
我们把所有子树内的后效性看作二元组 ,就可以写作:
每一行选出若干个二元组,可以交换上下两个元素的值,使得上面元素的和 ,此时下面元素的和算作 的一个后效性。
然后我们发现:下面的和越小越优。
原因是无论怎么交换,要么 在上面,那么下面的值作为下一次的值,肯定越小越好。要么 在下面。那么这一次已经可以做到最优了,也是越小越好。
(我们其实是利用 不变来论证选择最小的最优性。)
推导一下,就变为一个背包问题。
AT_arc082_c [ARC082E] ConvexScore
完成情况:未独立完成。做题经验:形如 的计数,变为大小为 的集合的所有子集贡献之和。还要考虑其它集合的不变量,优化组合意义推导。特点:凸包,计数
比较经典。套路适用范围可以借鉴。
对于每一个点集形成的凸包,其价值为
求贡献和。
什么叫 的和?这样理解,一个大小为 集合,每个元素可以选或不选,方案数就为 。
对于每一个不在凸包上但是被包含的点集都有 的贡献。
上面这句话很难描述。
我们加上:每一个凸包上点集与不在凸包上但是被包含的点集都有 的贡献。 就是形成凸包的点集。(因为凸包唯一,所以合法。)
所以变为全集减去不能形成凸包的点集。而不能形成凸包的点集满足集合内元素共线。(包括一/两个点形成的点集)
枚举即可。
AT_arc083_d [ARC083F] Collecting Balls
完成情况:未独立完成。原因:未仔细审题。题目上明确表示有 个球,但是我以为球的数量是不确定的,所以导致思考的方向有问题。特点:基环树 DP
根据我们在 BSOI 2848 【5.24NOI模拟】城市建设 的经验,我们可以既可以把边看作点,也可以把点看作边。
矩阵常常和二分图形成双射。树和偶环基环树都是二分图。
根据鸽巢原理:每个机器人与每个球一一对应。
把每个点看作是对应二分图的连边,我们要确定每个球被哪一个机器人获取,相当于在给边定向。每个机器人只能获取一个球,那么说明每个点入度恰好为 。
为什么说它是基环树森林?
- 条边 个点的图,要么是基环树森林,要么必然存在一个连通块使得其边数 点数。不存在定向方案。
- 手玩数据可知,一定不存在两个矩形拼在一起的情况。说明复杂环不是很行。

(不存在这种情况)
恰好,基环树入度为 的定向只有两种情况:环内顺时针和环内逆时针。环外的都指向了环中央。
定向完之后是求拓扑排序的数量。由于已经定向,那么偏序关系也很好描述,就是找到对应方向的第一个结点,并向其连边。可以证明其为内向生成树。
AT_arc096_d [ARC096F] Sweet Alchemy
特点:背包 DP 的特殊优化(复杂度优化到较小的值域上)
差分转为多重背包(注意 号点无限制,其他点最多选 个)。
首先有一个假的贪心,直接贪心选择性价比最高的物品,能选则选。错误原因是,后面更优秀的方案,无法被前面贪心选择的方案替代。
考虑什么时候一定可以替代。考虑到每个物品的价值 。 当前面选择的还剩 种以上,后面选择的超过 种时,直接将后面的物品用前面的物品表示。
发现这样构造方案即可:前面价值为 ,后面价值为 。将 物品减少 个,将 物品增加 个,这样一定合法。将后面物品往前移,性价比整体是往上移的,对应的物品所占容量变小,不劣。
考虑贪心会在哪里出现错误。考虑最优状态下,可能是在某一个后面的位置选得比较多,前面某个位置选的比较少。但是刚刚分析就可以得出,后面如果 时,一定可以往前移而不劣。一直往前移,结束状态要么是前面达到限度了,要么后面 了。达到限度这种情况,贪心也可以得到最优状态。那我们实际上要考虑 这种情况。
贪心不能解决的最优状态,当且仅当元素选择小于等于 时。 直接背包 DP,把 的情况的所有子问题最优态给算出来,然后全局最优态一定是从 的最优态拼上贪心得到的。
启示:
-
有时候 DP 和贪心不一定是互斥的,贪心贪不了的状态,可以转为先用 DP 钦定其某种子问题再加上另一部分的贪心。
-
背包考虑容量和价值,在较小的那一部分考虑,看看能否用一些其他技巧优化。
-
多重背包考虑二进制分组和单调队列优化。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...