专栏文章
mx
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mio2tlrx
- 此快照首次捕获于
- 2025/12/02 12:27 3 个月前
- 此快照最后确认于
- 2025/12/02 12:27 3 个月前
mx1
赛:85 + 24 + 40 + 0
补:100 + 100 + 100 + 24
总结: 不能双 ,注意题目没写在数据范围里的部分分。
P110120 宇宙(universe)
做法显然,直接两次二分。
观察到随着 增加, 和要维护的下标 都是单调递增的,先推一下式子,看一下 应满足什么条件。
先排序,求出前缀和 ,保证 后就可以双指针求出 。
P110121 跳跃(jump)
- 先做第一关键字。
- 题目的关键性质:询问保证了端点都是白色,代表极长的黑色区间要么不包含,要么完全包含。
- 如果有性质 ,这代表可以不踩任何一个黑格子。
- 如果没有,一段长度为 的黑色区间,其中有 是必须踩的,直接缩成 的区间。
- 再考虑第二关键字。
- 如果一个点直接跳到了白色,直接不管。
- 否则看一下他在黑色区间的相对位置,如果他跳出去了就不管,否则让他跳回最后的白色的位置。
但这样还是太吃操作了,直接缩黑色区间,只保留 ,这样直接跑特殊性质 ,然后累加一下黑色区间的贡献即可。
P110122 圆环(circle)
这道题中 表示考虑前 个要求后,一个在 另一个在 的最小操作数。
把第二个转移拆了:
发现第一个转移要维护区间加,第二个转移维护 和 的最小值,直接上线段树即可。
回到本题。
如果只有一个约束,有转移方程:
相比上面只是多了一项。
然后考虑一个时刻要满足两个条件怎么做。
这个时候末状态是定的, 数组只有一个有值。
只需钦定一个顺序,第二次转移时在不进行转移一即可。
mx2
赛:50 + 100 + 36 + 16
补:100 + 100 + 100 +100
总结:对拍,不要相信大样例。
P110124 Mex
是 级别的。
一个数能成为 说明 中 的位置对应的 ,第一问枚举即可。
第二问如果 说明这个位置随便换。
P110125 独立集
很好的树形 dp。
令 分别 dp。
对于每个点 选不选设计状态。
表示不选 时子树选择的总方案数。
表示 选了 个邻居的方案数,同时用 记一下前缀和。
相当于子树可以随便选。
的转移则考虑加入一个元素 。
时间复杂度 。
P110126 删点
神秘性质题。
- 一定不会删的点:。
- 取最左侧的极值到最右侧的极值,选这个矩形,中间的点都会被删掉。
- 然后可能留下的点:一段前缀中 ,一段后缀中 。
- 观察到对于每一种可能得删法都可以转化为不相交矩形的删除。
然后 dp,只讨论前缀的情况。
表示考虑前 个点,是否能留下 个。
再使用
bitset 优化即可做到 。mx3
赛:95 + 0 + 100 + 0
补:100 + 100 + 100 + 0
总结:梦熊大粪评测规则,最后一定要再交一次代码。
P110128 委托 (entrust)
贪心,对于一个任务肯定做完之后尽快回到 ,排序后二分做最大不相交子区间即可,注意可以落单一个。
P110129 骑车环行 (cycle)
先建出最小生成树,加入一条边后生成一个环,环的代价更新为边权的最大值,答案是最大值的最小值。
树剖线段树维护。
mx4
赛:100 + 50 + 0 + 0
补:100 + 100 + 100 +100
总结:T3 可以比 T2 简单。
P110132 异或子段
神秘诈骗题。
先套路地钦定一个最大值 ,然后要考虑的就是跨过 且长度为 的区间,显然过不了。
剪枝,单调栈预处理左边第一个 ,右边第一个 ,再花 的代价检查答案。
这样复杂度神奇地变成了 。
证明
全局最大值先选出来,会暴力统计一个长度为 的区间。
像建立笛卡尔树一样得到其余两个子区间的最大值,会产生 的贡献。
这样总贡献类似归并排序,是 。
P110133 氧气堆
-
观察到值域很小,可以考虑值域上的做法。
-
对每一个值维护一个链表,同时用指针 表示当前扫到的最小值。
-
但是这可能会被操作二破坏 的最小性。
-
考虑额外维护一个 ,由于操作二会弹出最小值,所以 最多只有一个。
-
时间复杂度 。
坑点:若当前的 ,影响最晚的是当前插入的 。
P110134 Toptrees 领先
- 没有简单环的无向图是森林。
- 预处理森林里每棵树的信息,一条边合法的条件是:不使用当前树的 ,能否凑出一个定值 。
- 一种方法是预处理前缀背包和后缀背包,用
bitset优化,时间复杂度 ,code。 - 新知识:转为计数, 表示凑成 的方案数,转移方程 ,发现这个转移方程是可撤销的。
tips
bitset 相关技巧:可以将 bitset 看作一个数组,<< 相当于往右平移,>> 相当于往左平移。也可以看成一个数,只是从左到右表示高位到低位。
mx5
赛:未知
补:100 + 100 + 12 + 0
总结:冲不出正解要打暴力分。
P130006 阿蛮
组合意义题。
考虑一个局面 ,当前一共有 个人,第一个人及其支持者有 个,它的贡献为 。
考虑一个局面出现的概率,总方案是 的排列,其中 保持顺序,即 。
然后计算 后面有 个人的方案数,首先对 个人随便排,再从 个人选 个固定,即 。
于是局面 出现的概率是 。
所以答案是
固定 ,使用前缀和预处理即可。
P130007 菟园
先跑
kmp,建立失配树,问题转化为动态加叶子节点,动态询问子树权值,路径加。分块,可以处理出 跳出块第一个跳到谁。
然后权值可以懒标记, 表示跳出去之前的祖先上都需要权值 。
mx6
赛:100 + 0 + 6 + 4
补:100 + 100 + 100 + 20
总结:调试最后一定要注释掉。
P130011 句法分析
区间 dp 即可,签到。
P130012 树上前 k 大菊花
妙妙题,肯定是多路归并优先队列。
先考虑大菊花怎么做,把邻居降序排序,然后钦定只选 个,压入最优方案。
扩展是考虑如何得到次优解,肯定是有一个指针往后移动一格导致。
很智慧的一点:当前选择是往后移当前指针,或固定当前指针,后面的指针都不能超过他。
这样只扩展出 个状态。
很多菊花时再用一个堆维护所有堆顶即可。
P130013 相关聚类
观察 :如果是一棵树,从 考虑,初始时贡献为 的数量, 减小 ,如果有 代价就减少 ,否则代价增加 。
观察 :基环树不同点在于合并了 个点后就相当于连通了,代价会强制被剩下的边改变。如果环上都是 则没有影响,有多个 也没有影响,因为这个时候 已经选完了。所以只有 需要特殊考虑。
当 时的合并顺序:树上的 ,环上的 ,树上的 。
当 的时合并顺序:环上的 ,树上的 ,树上的 ,环上的 。
mx7
赛:100 + 0 + 20 + 0
补:100 + 100 + 20 + 0
总结:构造题太难了。
P130019 地球往事
然后按照 递增, 递减的顺序排序,相当于不严格的逆序对之间会连边,求最后连通块的数量。
每个点只会被加入一次删除一次,时间复杂度 。
可以用单调栈把最后的过程变成 。
P130020 纪元
- 一个字符串对前一个字符串有约束。
- 具体地,设 字符集为 ,对于其中任意一个字符,都要求
mx8
VP:反正做出一道题。
补:100 + 100 + 5 + 0
总结:dp 太难了。
P130015 项链 (necklace)
sol1
二分答案,分成 的和 的, 的一定要选,两个 之间最多夹一个 ,线性检查即可。
sol2
两两成对的插入堆中,堆头是瓶颈,一定是要被调整的,调整的一对一定会删去较大的,直接拿链表模拟即可。
P130016 计树 (tree)
神秘的插空 dp。
由于题目的限制,钦定一个 的加点顺序。
表示考虑前 个数,形成了 棵树,且留有 个空位的方案数。
- 当前节点儿子个数可以取 。 代表为该节点开一棵树,或者把该节点放在一个空位。
- 当前节点儿子个数可以取 。 这个转移是一样的,只不过要钦定它接的是左儿子还是右儿子。
- 当前节点儿子个数可以取 。 分别代表:新开一棵树产生两个空位,直接接在一个空位,新开一棵树并接一棵树上去,接在一个空位并在该节点上接一棵树。
mx9
赛:100 + 0 + 0 + 0
补:100 + 0 + 0 +0
总结:在补。
mx10
没打。
补:0 + 100 + 0 + 0
总结:在补。
min-max 容斥。
mx11
赛:0 + 0 + 0 + 0
补:100 + 0 + 0 +0
总结:文件读写要写对。
mx12
赛:60 + 40 + 60 + 10
补:100 + 40 + 100 + 10
总结:对拍,根号分治太强了。
P130032 距离
floyd 本质是 dp,可以求出 之间编号不超过 的最短路。
考虑分块, 表示不使用编号为 之间的点, 的最短路。这一部分处理时间是 。
然后对每个 求出全源最短路数组。
对于一个 在 块内,只需要加入 的其他元素即可,时间复杂度 。
取 得到最优复杂度 。
mx13
赛:50 + 20 + 30 + 0
补:100 + 100 + 30 + 0
总结:,需要仔细分析性质。
mx14
赛:100 + 10 + 0 + 25
补:100 + 10 + 0 + 25
总结:在补。
mx15
赛:40 + 0 + 25 + 0
补:100 + 0 + 25 + 10
总结:在补。
P130051 玲珑宝塔
先二分答案,检查可以贪心,开 个位置。每次肯定顺着填下去。
mx16
赛:100 + 70 + 45 + 0
补:100 + 100 + 45 + 0
总结:在补。
P130067 删数游戏
由于单调递增,从最后的数开始删一定是对的。
赛时发现问题转化为求 位置的最大值,同时动态删点,直接打了分块维护。
实际上找到最后满足的位置后直接把之后的加进来就行。
P130068 货币改革
同于最短路,考虑使用 凑出 的每个剩余系最小价值,那么 都是不能被表示的。
然后就是加边最短路,但这题有特殊性质,每次只用考虑新加的边即可。
因为松弛过后假设这个点变为 ,那么此时不需要 的边进行松弛,因为最终都可以表示为 的形式,可以直接由这个点更新。
使用类似归并的方法用双端队列实现迪杰。
mx17
赛:100 + 36 + 30 + 10
补:100 + 100 + 30 + 0
总结:在补。
mx18
赛:100 + 20 + 50 + 20
补:100 + 100 + 100 + 20
总结:在补。
P130078 染色(paint)
一个颜色的刷子肯定用来刷 , 代表了该颜色的左右边界。
从 开始往后刷
solve(l,r) 代表将 染色,递归处理即可。P130079 交换(swap)
最难做的情况是最小值在右儿子处取到,可以记忆化搜索。
表示以 为根的子树将 改成 ,这个值最终变到哪里。
直接记忆化搜索,一个点的取值只能是其祖先或者祖先的兄弟。
mx19
赛:100 + 0 + 10 + 4
补:100 + 0 + 10 + 4
总结:在补。
mx20
赛:80 + 30 + 0 + 0
补:100 + 100 + 100 + 0
总结:
vector 使用要注意效率问题,数组要算空间。mx21
赛:100 + 70 + 44 + 10
补:100 + 100 + 100 + 10
总结:数论分块忘记了,本场未挂分。
P130109 新站长 (webmaster)
先把所有
B 变成 A,然后从后往前考虑,能变回来就变,直接贪心。P130110 小粉兔不想挂科 (failure)
数论分块复习。
对于 , 的值只有 个。
如果 ,由于 只有 个, 的值只有 个.
如果 ,,只有 个。
所以 的值只有 个。
满足 的 的取值范围为 。
由不等式 推得。
回到原题,依次求 。
数论分块,计算 的一段。
此时 固定,要算 在这一段的和。由于 ,所以下标是一个 结尾的一段等差数列,公差为 。
由于 ,所以只需要预处理以 结尾的公差 前缀等差数列,而且对于一个 最多需要 个。
调和级数,时间复杂度 。
P130111 管理组招新 (recruitment)
神秘带派。
表示考虑前 个人,配好了 组,还有 组只有组员的答案。
先排序,经验从小到大,而且组员要先被考虑。
直接转移即可。
由于 ,所以 , 可以过。
mx22
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...