2023-1-7 #24 放逐向无尽的清醒梦 该如何停止向下坠落
——霾《微观戏剧》
remake.
昨天没事干,尝试了一口气 vp 3 场 div2(edu75,76,77),感觉没啥意思。
要争取恢复日更啊。。。
129 AGC045D Lamps and Buttons
TEE 45w 了诶!
比较憨憨的题。
由于我们并不知道排列是啥,所以除了每个环都要有 \(\leqslant A\) 的下标外,我们还要保证在踩到自环前结束。
如果 \([1,A]\) 中没有自环,我们就是在做这样一个问题:两类数,每个二类数所在环都必须包含一个一类数的方案数。我们只需通过插入环/新建环的方式来生成排列,先插入一类数,二类数插入的时候禁止新建环就好了。
如果有自环,我们枚举自环第一次出现的位置 \(p\),枚举 \(p\) 前面自环数量来容斥“第一次出现”这个条件,问题无非在上面的问题基础上,最后插入一些无限制的数,方案数仍然很好算。
复杂度 \(O(n+A^2)\)。
130 loj#6741. 因子统计
一个结论:对于大于 \(\sqrt n\) 的素数 \(p\),其在 \({n\choose m}\) 的素因子分解中至多出现一次。
证明:\({n\choose m}=\frac{n^{\underline m}}{m!}\),连续 \(m\) 个数至少有 \(\lfloor\frac mp\rfloor\) 个 \(p\),至多有 \(\lceil\frac mp\rceil\) 个 \(p\),差不超过 \(1\)。
于是,小素数在每次询问中枚举,暴力计算贡献。大素数可以统一处理,通过前缀和计算出有多少大素数在分解中出现,贡献就是二的次幂。
复杂度 \(O(\frac{(n+q)\sqrt n}{\log n})\)。
131 Ptz2022 Winter Day2 KAIST Contest + KOI TST 2021 C AND PLUS OR
比较奇怪的题。
为啥都会做!很奇怪诶。
结论:只需枚举所有的 \(i=S\cup\{a\},j=S\cup\{b\}\) 就已足够。
不妨假设 \(i=S\cup U,j=S\cup V\),则:\(A_{S\cup V}-A_{S\cup U\cup V}<A_S-A_{S\cup U}\),令 \(F(T)=A_{S\cup T}-A_{S\cup U\cup T}\),则只需找到 \(F(V)<F(\varnothing)\)。
任取一个合法的 \(V\),称 \(V\) 前 \(i\) 个元素组成的集合为 \(W_i\),则必然存在一个 \(F(W_i)<F(W_{i-1})\)。(否则与假设冲突)
于是 \(A_{S\cup W_i}-A_{S\cup W_i\cup U}<A(S\cup W_{i-1})-A_{S\cup W_{i-1}\cup U}\),令 \(S\leftarrow S\cup W_{i-1}\),即可使 \(|V|=1\)。
\(|U|\) 同理,暴力枚举复杂度 \(O(2^nn^2)\)。
132 Ptz2017 Winter Xiaoxu Guo Contest 5 A Even Three is Odd
我也不知道在哪里找这场比赛!
题意是给定 \(w_{1\cdots n}\),求:
考虑只记录最大值的位置,\(f_{i,j,k}\) 表示正在计算 \(i,i+1,i+2\) 的贡献,最大值位置为 \(i+j\),值为 \(k\) 的权值和。
转移比较简单:要么 \(j\) 减一,\(k\) 不变;要么 \(j\) 初始为 \(0\),\(k\) 减小;要么\(j\) 变为 \(2\),\(k\) 不减。
前缀和优化,复杂度 \(O(n^2)\)。
133 Ptz2020 Summer Day4 Xi Lin Contest 6 J Ternary String Counting
容易列出 \(O(n^3)\) 的 dp,其可以看作每次按照下述方式转移后,仅保留 \(j\in[j_0,j_1],k\in[k_0,k_1]\) 的所有状态:
我们尝试去除 dp 数组的第一维,将 dp 数组放在一个二维平面上,那么转移一次变成了:继承上一次的 dp 值,对某一行/某一列的 dp 值求和,暴力修改 \(O(n)\) 个位置,保留一个子矩形的 dp 值。
前三步都是平凡的,而可以观察到一个位置被清空了后就不再会有值了,所以每行记录一下删到哪就好了,这样每个位置只会删一次。
复杂度 \(O(n^2)\)。
134 loj#3077. 「2019 集训队互测 Day 4」绝目编诗
首先有一个 \(O(n^4)\) 的暴力:每次从一个点出发,找一条到自己的回路,那么 \(n-2\) 种环长,每种会被搜到 \(n\) 次,要走 \(n\) 步,判定 \(O(n)\)。
结论:若边数大于 \(n+2\sqrt n\),一定有解。
我们随机删除 \(\sqrt n\) 条边,则期望环个数为:
因此一定有一种方案使得删掉 \(\sqrt n\) 条边后环数不超过 \(\sqrt n\),那么边数一定不超过 \(n+2\sqrt n\)。
此时,我们任取一棵生成树,将非树边连接的点的虚树取出,可以得到一张 \(O(\sqrt n)\) 个点,\(O(\sqrt n)\) 条边的带权无向图,我们执行上述 \(O(n^4)\) 做法。
复杂度可以分析到 \(O(n^2\sqrt n)\),为啥比其他题解多一个根号啊!(估计是哪里分析松了,之后再来看看)

浙公网安备 33010602011771号