小题狂练 (J)
目录
- [AGC070B] Odd Namori
- [JOI Open 2025] 冒泡排序机 / Bubble Sort Machine
- [AGC039F] Min Product Sum
- CF1842G Tenzing and Random Operations
- [清华集训 2024] 乘积的期望
- [THUPC 2024 决赛] 采矿
- PKUSC 2024 D2T2 排队
- QOJ #9879. ReTravel
- CF1034E Little C Loves 3 III
- [HBCPC2024] Points on the Number Axis B
- [SEERC 2019] Tree Permutations
- Candy Retribution
- [JOISC 2020] ビルの飾り付け 4
- [PA 2010] Termites
- O(rand)
- QOJ #8235. Top Cluster
- QOJ #8049. Equal Sums
- [Ynoi2024] After god
- [COTS 2023] 下 Niz
- CF2152G Query Jungle
- CF377D Developing Game
- [Ynoi Easy Round 2021] TEST_152
- QOJ #8528. Chords
- QOJ #2562. Fake Plastic Trees 2
- [SDOI/SXOI2022] 小 N 的独立集
- [Ynoi2013] 对数据结构的爱
- [ABC429G] Sum of Pow of Mod of Linear
- CF1572F Stations
- [Ynoi2004] rpfrdtzls
- P8321 『JROI-4』沈阳大街 2
[AGC070B] Odd Namori
Matrix-Tree 定理:给一张带权有向图 \(G\),求 \(G\) 所有以 \(1\) 为根的内向生成树边权之和 .
看成给每个点 \(i\ge2\) 选一个出边 \(p_i\),不能连自环,求 \((1-1)^{\#\mathrm{cycle}}\) 之和,也就是相当于钦定若干环贡献 \(-1\) . 直接分析 Kirchhoff 矩阵 \(L=D-A\) 的行列式就相当于是选一个排列 \(\pi\),不是自环的部分贡献边权(这些部分相当于钦定的环),自环部分乱连 . 由于交换一次排列奇偶性改变所以逆序对个数的奇偶性和 \(n-\#\mathrm{cycle}\) 的奇偶性是一样的,最后加上 \(A\) 上的负号的贡献,容斥系数正好是 \((-1)^{\#\mathrm{cycle}}\) .
对于原题来说相当于算 \((1+1)^{\#\mathrm{odd}}(1-1)^{\#\mathrm{even}}\),学习 Matrix-Tree 定理可以发现其实是算 \(\det(D+A)\) .
构造这样一个图(以下所有 \(i\in[2,n]\)):\(1\xrightarrow{-1}i,\,i\xrightarrow{n}1,\,i\xrightarrow{1}p_i,\,i\xrightarrow{-2}0,\,1\xrightarrow{2n}0\) . 由 Matrix-Tree 定理可知就是要算以 \(0\) 为根的内向生成树边权和 .
接下来先选树边,然后讨论 1 连 0 还是连树上的点,把贡献拆到树上就可以得到答案的表达式了 .
upd. 听说有拟阵道理?不过我还没看(
[JOI Open 2025] 冒泡排序机 / Bubble Sort Machine
一个前缀 \([1,x]\) 经过 \(c\) 轮冒泡后得到的序列相当于 \([1,x+c]\) 的前 \(x\) 小值,然后就随意维护了 .
[AGC039F] Min Product Sum
一、行 min 和列 min 是 \(a_i,b_j\),那么就是要求 \(\prod_{i,j}\min(a_i,b_j)\) 之和 . 从小到大填,每轮分步转移行 / 列,min 需要容斥一下才能做 .
二、考虑改成数 \((A,B)\) 使得 \(A\) 的行 max 不大于 \(B\) 的行 min 且 \(A\) 的列 max 不大于 \(B\) 的列 min,从小到大填 \(A\) 的行 max 和 \(B\) 的列 min,每轮分步转移行 / 列,这样就能做了 .
CF1842G Tenzing and Random Operations
等要选的时候再结算 \(v\) 的方位(以前选过 / 以前没选过),时间复杂度 \(O(n^2)\) .
[清华集训 2024] 乘积的期望
神奇的 Imbalance's trick 题:
- \(3m\le n\):学习 CF1842G,令第 \(i\) 次在 \(p_i\) 操作,则答案为 \(\prod_i\sum_jb_{p_j}([p_j\le i]-[p_j\le i-m])\) . 同样延后计算,后面带 \(i-m\) 的项在 \(i\) 处计算,状态里记一个 \(m\)-bit 的二进制数标记选过哪些 \(-[p_j\le i-m]\) 即可 . 时间复杂度 \(O(n^22^m)\) .
- \(3m>n\):把序列排成三行,每行 \(m\) 个数 . 直接考虑最后 \(a\) 长什么样,讨论可得 \(a\) 需要满足下面三个条件:第一行递增,第三行递减;\(a_i+a_{i+m}+a_{i+2m}=c\);\(a_m+a_{2m+1}<c\) . 同时如果知道第一行和第三行就知道操作方案了 . 那么可以枚举 \(a_{2m+1}\) 按列 DP 记两行解决,两行可以分步转移以做到 \(O(nc^4)\) . 根据前一个 case 可以知道答案是关于 \(c\) 的不超过 \(n\) 次多项式,那么插值一下就可以 \(O(n^6)\) 了 .
综合以上两部分即可!
[THUPC 2024 决赛] 采矿
问 50 次,保证每条边问 25 次 0、25 次 1,然后就能推出来了 .
PKUSC 2024 D2T2 排队
把询问挂到右端点上,扫描线扫右端点,动态维护每个左端点的答案 . 显然有单调性,从而每次只需要二分到对应的位置然后区间 +1 即可 . 时间复杂度 \(O((n+q)\log n)\) .
QOJ #9879. ReTravel
大概有一个树形结构,\(dp_{l,r}\) 表示 \(l,r\) 区间(作为一整个结点)的答案,让起点是 \((\min x,\min y)\) 然后枚举分界点即可 . 时间复杂度 \(O(n^3)\) . 如果利用决策单调性应该可以到达 \(O(n^2)\) .
CF1034E Little C Loves 3 III
占位多项式代入 \(x=4\) 直接或卷积算即可 \(O(n2^n)\) . 这里错的贡献肯定是 4 的倍数所以有正确性 . 有点卡常啊这个题 .
[HBCPC2024] Points on the Number Axis B
贡献拆开就是算比赛那个题的 \(a_i=1\) 版本,然后应该就随手过了 .
[SEERC 2019] Tree Permutations
首先将 \(a\) 排序,如果存在 \(a_i>i\) 直接无解 . 对于所有 \(a_i=i\) 的数必定在 \(1-n\) 的路径上,那么 \(1-n\) 的路径长度至少不小于 \(a_i=i\) 的个数、不大于 \(a_i\) 中互不相同的元素个数 .
对于界里面的路径长度 \(k\),只需要把 \(a_i=i\) 的元素和剩下的元素中最小的若干数拿出来做序列 \(p\),剩下的前 \(k\) 大做序列 \(w\) 就可以了 . 直接维护即可 \(O(n\log n)\) .
Candy Retribution
[JOISC 2020] ビルの飾り付け 4
[PA 2010] Termites
首先改成若干个 deque 在开头或结尾取 . 注意到如果三个相邻的位置 \(x,y,z\) 满足 \(y\ge x,z\) 且 \(x\le z\) 那么肯定按 \(x,y,z\) 顺序连着删,所以可以合并成一个数 . 那么合并出来最后每个 deque 都是单谷的,朴素贪心即可 .
O(rand)
首先改成数 OR 为全集、AND 为空集的集合个数 . 考虑容斥,钦定若干位 \(mask\) 不合法,那么选中的数必须满足 AND 上 \(mask\) 后一样,可以扫一遍开桶记录 . 时间复杂度 \(O(nV)\) .
QOJ #8235. Top Cluster
QOJ #8049. Equal Sums
[Ynoi2024] After god
[COTS 2023] 下 Niz
CF2152G Query Jungle
Hint. consider the Euler tour
CF377D Developing Game
[Ynoi Easy Round 2021] TEST_152
QOJ #8528. Chords
首先有朴素的 \(O(n^2)\) DP,然而注意到答案大概率是 \(O(\sqrt n)\) 级别的,从而交换值域定义域即可 \(O(n^{1.5})\) .
QOJ #2562. Fake Plastic Trees 2
DP 如果 \(x,y,z\) 都可行且 \(z-x\le R-L+1\) 那么可以不存 \(y\),这样就是 \(O(nk^3)\) 的 .
[SDOI/SXOI2022] 小 N 的独立集
内层 DP \(\max(dp_{u,0},dp_{u,1})-dp_{u,0}\le k\),所以只有 \(O(nk^2)\) 状态 .
[Ynoi2013] 对数据结构的爱
魔怔
[ABC429G] Sum of Pow of Mod of Linear
可爱捏
CF1572F Stations
[Ynoi2004] rpfrdtzls
(标题感觉破解不出来,如果以后破解了就补)
标题破解:rpfrdtzls = range push front range divide-to-zero length sum.
对序列扫描线,关于历史和只有改变的段才改,别的段直接用 \(kx+b\),这样就只会改 \(O(q)\) 次,总共就是 1 log 的 .
进行了一些非常魔怔的卡常才过。。惊现压位 Trie
P8321 『JROI-4』沈阳大街 2
以下是博客签名,正文无关
本文来自博客园,作者:yspm,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/19083875
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ

浙公网安备 33010602011771号