6. 重庆

6.12 模拟赛

T1

CF509E

最小链覆盖 \(=\) 最长反链 \(=\) \(n\ -\) 拆点二分图最大匹配

那么如何根据得到的最大匹配构造方案

最小链覆盖的方案是容易的,可以根据最小链覆盖调整出最长反链方案(蓝书 P438)

还有一种简洁的方法

右侧的非匹配点出发 dfs,从右走到左只能走非匹配边,从左往右走只能走匹配边,取左侧 dfs 到的点和右侧没 dfs 到的点,得到的是一种最小点覆盖的方案。

取最小点覆盖的补集,得到最大独立集

\(x\) 在左右两侧拆出的点都在最大独立集中,我们就选出 \(x\),所有这样的 \(x\) 构成原 DAG 最长反链。

https://www.cnblogs.com/PinkRabbit/p/12238880.html

T2

AGC031D

我竟然把置换的复合记反了 /lh

\(f\circ g=h\) 的含义是 \(h_i=f_{g_i}\),有结合律没有交换律,有逆元 \(f\circ f^{-1}=f_{-1}\circ f=e\)\(e_i=i\) 为单位元。

有性质 \((f\circ g)^{-1}=g^{-1}\circ f^{-1}\)

然后这题就是找规律玩了

T3

AGC026E

6.14

T1

给你长度为 \(n\) 的序列 \(a\),求忽略出现次数大于 \(w\) 的数字之后的区间第 \(k\) 小,强制在线。

\(n,q\leq 10^5\)

先考虑离线怎么做,当然是莫队啊,离线可以整体二分,二分之后对于每个值 \(x\),我们让区间中前 \(w\)\(x\) 产生 \(1\) 的贡献,第 \(w+1\)\(x\) 产生 \(-w\) 的贡献,后面的 \(x\) 贡献为零。考虑每个数能对哪些区间产生多少的贡献,发现这些区间都是矩形,于是问题就可以先矩形加,每个询问区间就相当于一次单点查询,线段树扫描线即可。

不过这个题强制在线,上面的算法是不是寄了?其实上述过程中每个分治区间每个矩形都是线段树上做区间加,我们把用到的所有线段树都可持久化下来,查询就能每次直接在主席树上查了。

时间和空间复杂度都是 \(O(n\log^2 n)\),比较难受。

T2

\(x\) 质因数分解为 \(\prod_i p_i^{\alpha_i}\),定义

\[f_k(x)=\prod\limits_i(-1)^{\alpha_i}[\alpha_i\leq k] \]

给定 \(n,k\),求

\[\sum\limits_{i=1}^n\sum\limits_{j=1}^n\sum\limits_{d=1}^k f_d(\gcd(i,j)) \]

\(n\leq 10^{10},k\leq 40\),模数 \(2^{30}\)

完全不会什么 powerful number,min_25,州阁筛,只能照搬题解做法了/dk

莫反一下得到

\[ans=\sum\limits_{x=1}^n\sum\limits_{d=1}^kf_d(x)\left(2\sum\limits_{i=1}^{\lfloor n/x\rfloor}\varphi(i)-1\right) \]

\(\varphi\) 的前缀和杜教筛即可,考虑求 \(f\) 的前缀和 \(F_d(x)=\sum_{i=1}^xf_d(i)\)

定义 \(\lambda(x)=\prod_i(-1)^{\alpha_i}\),容斥求出 \(F_d\)

\[F_d(x)=\sum\limits_{i=1}^x\mu(i)\sum\limits_{j=1}^{\lfloor\frac{x}{i^{d+1}}\rfloor}\lambda(i^{d+1}j) \]

这个容斥的含义是,钦定 \(x\) 为不合法质因数集合 \((\alpha_i>d)\),剩下随意。

\(\lambda\) 显然是积性函数,那么 \(\Lambda(x)=\sum_{i=1}^x\lambda(i)\) 也可以杜教筛了。不过杜教筛 \(\Lambda\) 还需要一个 observation,就是 \(\sum_{d|x}\lambda(d)=[x\text{为完全平方数}]\)

整理一下

\[F_d(x)=\sum\limits_{i=1}^{\lfloor x^{\frac{1}{d+1}}\rfloor}\lambda^{d+1}(i)\mu(i)\Lambda(\lfloor\dfrac{x}{i^{d+1}}\rfloor) \]

​ 求 \(F\) 时,若 \(x\) 较小线性筛预处理,\(x\) 较大枚举上式,可以套用杜教筛的复杂度分析,也是 \(O(n^{2/3})\) 的。

\(\gcd(i,j)=d\) 的数对 \((i,j)\) 数量是 \(2\sum_{i=1}^{\lfloor n/d\rfloor}\varphi(i)-1\) 能不能记住啊啊啊啊

T3

T3 构造竟然是这场最水的一题,应该在这个题上多花点时间的,做出的可能性还是很大的

懒得写了,反正这个题之后我也不大可能来复习(

6.15 多项式,数学专题

其实很不愿意做这个专题,多项式一直是我比较恐惧的一个东西,生成函数那些理论一直拖着没学,多项式全家桶也完全不会,不学的话大量数学题全都摆烂非常难受,学的话现在还有一个月 NOI,学新知识点,还是 10 级的,好像也不划算。

总之这几天专题就是挑了几个最简单的做了一下(

P2354 [NOI2014] 随机数生成器

你是怎么混进来的(

CF923E Perpetual Subtraction

牛逼啊这个卧槽

DP 式子就是 \(p_i\leftarrow\sum_{j\geq i}\dfrac{p_j}{j+1}\)\(p\) 下标 \(0\sim n\),总共 \(m\) 轮,\(n\leq 10^5,m\leq 10^{18}\)

首先把 \(p_{0\sim n}\) 写成列向量 \(P\),这个 DP 转移就是对 \(P\) 的一个线性变换,把这个变换写作矩阵 \(A\),就是要求 \(A^mP\)

这个 \(A^m\) 直接算是无法容忍的 \(n^3\log m\),这时有一个 amazing 的方法,对角化

概念

如果向量 \(v\) 在线性变换 \(A\) 下只发生了伸缩,称 \(v\)\(A\)特征向量,伸缩倍数 \(\lambda\) 称为特征值。写成公式就是

\[Av=\lambda Iv \]

也就是

\[(A-\lambda I)v=0 \]

\(v=0\) 是平凡的,如果 \(v\) 不是零向量,那么就说明 \(A-\lambda I\) 的列是线性相关的,或者说它不是满秩的,也就是等价于

\[\det(A-\lambda I)=0 \]

从这个方程可以解出特征值 \(\lambda\),进而求出 \(v\)

得到了 \(v\) 有什么用?如果在 \(n\) 维线性空间中的线性变换,我们解出了它的 \(n\) 个特征向量 \(v_{1\sim n}\),考虑\(v_{1\sim n}\) 做线性空间的基底,基变换之后,\(A\) 作用于空间中任一向量,都只有伸缩效果!记 \(A\) 在新的基底下为 \(A^\prime\),也就是说 \(A^\prime\) 是一个对角矩阵!它的幂可以非常容易的求得!

回到本题,通过手解和大胆找规律,发现第 \(i\) 个特征向量的第 \(j\) 维为 \((-1)^{i+j}\binom{i}{j}\),把 \(n\) 个特征向量排成矩阵 \(F\),就是基变换的矩阵(原基底变为新基底乘 \(F^{-1}\),反之就是乘 \(F\))。

同样大胆猜规律,得到 \(F^{-1}_{ij}=\binom{i}{j}\)

答案可以写成 \(F(F^{-1}AF)^mF^{-1}\)\((F^{-1}AF)\) 是对角矩阵,\(m\) 次方快速幂即可,而 \(F,F^{-1}\) 都是组合数,乘一个向量能写成卷积,NTT 即可。

于是复杂度就是 \(O(n\log n)\),做完了!

Gym102978A Ascending Matrix

好题啊这个

posted @ 2022-06-19 22:12  iMya_nlgau  阅读(82)  评论(0编辑  收藏  举报