Examples

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}\),求:

\[\sum_{x\in[n]^n}\prod_{i=1}^{n-2}w_{\max(w_i,w_{i+1},w_{i+2})} \]

考虑只记录最大值的位置,\(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]\) 的所有状态:

\[f_{i+1,j,k}\leftarrow f_{i,j,k}\\f_{i+1,i,k}\leftarrow f_{i,j,k}\\f_{i+1,j,i}\leftarrow f_{i,j,k} \]

我们尝试去除 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\) 条边,则期望环个数为:

\[\sum_{i=3}^n(1-\frac{1}{\sqrt n})^i<\frac{1}{1-(1-\frac 1{\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)\),为啥比其他题解多一个根号啊!(估计是哪里分析松了,之后再来看看)

posted @ 2023-01-07 17:00  xiaoziyao  阅读(144)  评论(0)    收藏  举报