洛谷月赛泛做
LGR081 洛谷 1 月月赛
\(T1,T2,T3,T4,T6\) 较简单(场切)。
T5 Chasse Neige
来自 \(kals\) 的题解,改动了几处描述。
先作一步转化:极大值个数等于极长上升子段(长度>=2)数。但排列的第一个位置和最后一个位置并不算极大值。
枚举第一个和最后一个子段的单调性:
\(f_{n,k}\) 表示长度为 \(n\) 满足 \(a_1<a_2,a_{n-1}>a_{n}\) 且有 \(k\) 个极大值的排列个数;
\(g_{n,k}\) 表示长度为 \(n\) 满足 \(a_1>a_2,a_{n-1}>a_{n}\) 且有 \(k\) 个极大值的排列个数;
\(g'_{n,k}\) 表示长度为 \(n\) 满足 \(a_1<a_2,a_{n-1}<a_{n}\) 且有 \(k\) 个极大值的排列个数;
\(h_{n,k}\) 表示长度为 \(n\) 满足 \(a_1>a_2,a_{n-1}<a_{n}\) 且有 \(k\) 个极大值的排列个数;
显然有 \(g_{n,k}=g'_{n,k},f_{n,k+1}=h_{n,k}\) 。
考虑如何转移,新加入一个数 \(n\) :
化简一下:
发现两式是对称的,构造 \(dp_{i,2j}=f_{i,j},dp_{i,2j+1}=g_{i,j}\) ,则有:
注意到 \(\max(1,\lfloor \frac{n-1}{2}\rfloor -10)\le k\le \lfloor \frac{n-1}{2}\rfloor\) ,求的值位于对角线附近。
考虑快速计算对角线上值的 \(dp\) :
记 \(f_n\) 表示长度为 \(n\) 的排列中数字交错且 \(a_1<a_2,a_{n-1}>a_n\) 的排列数;
记 \(g_n\) 表示长度为 \(n\) 的排列中数字交错且 \(a_1>a_2,a_{n-1}>a_n\) 的排列数。
枚举 \(n\) 的位置,有:
显然 \(f_n\) 在 \(n\) 为偶数时、\(g_n\) 在 \(n\) 为奇数时等于 \(0\) ,设 \(F(x),G(x)\) 为 \(f,g\) 的 \(\text{EGF}\) ,则:
因此 \(dp_{n,n-1}=[x^n]F(x)+[x^n]G(x)\) ,剩下的部分递推即可。
时间复杂度 \(O(nlogn+n(n-2k))\) 。
LGR080 洛谷 11 月月赛 II
\(T1,T2,T3,T4\) 较简单。
T6 青春有悔
设 \(F(x)=\sum\limits_{i}a_ix^i\) 表示答案的前缀和,则显然有
前半部分由二项式定理得:
后半部分取个 \(ln\) ,由泰勒展开 \(ln(1+x)=\sum\limits_{i=1}^{\infty}(-1)^{i-1}\frac{x^i}{i}\) 得:
用桶记录 \(cnt[i]\) 表示 \(a_j=i\) 的个数,可 \(O(nlnn)\) 复杂度求出系数,再 \(exp\) 回去即可。
现在得到了 \(F(x)\) ,反面考虑,求的即 \([x^y]\frac{1-x^{b+1}}{1-x^{a_p+1}}F(x)\) 。
将其拆开:
发现需要计算 \([x^y]\frac{1}{1-x^a}F(x)\) ,考虑根号分治:
-
若 \(a>\sqrt{n}\) ,则有系数的位置只有 \(<\sqrt{n}\) 个,暴力计算;
-
若 \(a\le \sqrt{n}\) ,预处理 \(g[a][y]\) 表示答案。
时间复杂度 \(O(nlogn+q\sqrt{n})\) 。
LGR077 洛谷 10 月月赛 I
\(T1,T2,T3,T4,T5\) 较简单。
\(T6\) 见 \(\text{Ynoi泛做}\) 。
LGR076 洛谷 9 月月赛 I
\(T1,T2,T3\) 较简单。
T4 线性生物
很巧妙的概率 \(dp\) ,定义 \(E_{x→y}\) 表示 \(x\) 到 \(y\) 的期望步数,答案即为 \(E_{1→n+1}\) 。
记 \(deg_x\) 表示 \(x\) 的返祖边个数,则:
由于每次生物只会从 \(x\) 走到 \(x+1\) 或返祖,故对于 \(1\le x\le y\le n+1\) ,有 \(E_{1→y}=E_{1→x}+E_{x→y}\) 。
直接递推 \(E_{1→x}\) 即可,时间复杂度 \(O(n)\) 。
LGR075 洛谷 8 月月赛 II
\(T1,T2,T3,T5\) 较简单,其中 \(T5\) 细节较多。
T4 四月樱花
注意到 \(y^{d(y)}=\prod_{z|y}y\) ,令 \(f(n)=\sum\limits_{i=1}^{n}\lfloor \frac ni\rfloor\) ,则式子化简为:
两层整除分块即可,时间复杂度 \(O(n^{3/4})\) 。
T6 寒妖王
- 简要题意
给定 \(n\) 个点 \(m\) 条带权边,每条边有 \(\frac 12\) 概率存留,求期望最大边权和基环树森林的边权值。
\(1\le n\le 15,1\le m\le 60\)
- 简要思路
暴力类似 \(Kruskal\) ,边权从大到小依次取,复杂度 \(O(2^m poly(m))\) 。
转化下思路,考虑每条边在什么情况下不被选入基环树森林:(该边端点为 \(a,b\) )
- \(a,b\) 连通,且连通块不为树;
- \(a,b\) 不连通,且 \(a,b\) 所在连通块均为基环树。
记 \(cnt[S]\) 表示点集为 \(S\) 的导出子图边数,可高维前缀和 \(O(n2^n)\) 计算。
第一类贡献,统计仅保留这些边时点集 \(S\) 的生成树数量,然后枚举子集 \(T\subseteq S\) ,发现一颗生成树会被计算 \(|S|-1\) 次,除掉即可做到 \(O(m3^n)\) 。
第二类贡献,等价于点集 \(A\) 和点集 \(B\) 满足 \(x\in A,y\in B\) 且 \(A\) 是连通图不是生成树, \(B\) 是连通图不是树。
枚举 \(A,B\) 的总量是 \(3^n\) 的,只需要预处理连通图计数,用容斥即可做到 \(O(3^n)\) 。
时间复杂度 \(O(m3^n)\) ,第一类部分需要适当卡常。
LGR074 洛谷 8 月月赛 I
\(T1,T2,T3,T5\) 较简单。
T4 Fallen Lord
定义 \(val(u,v)\) 表示 \(u\) 和 \(v\) 间的边权,考虑树形 \(dp\) 。
定义\(f[u][0/1]\) 表示 \(val(fa_u,u)\le a[u]\) 或 \(>a[u]\) 时的最大边权和(不考虑 \(val(fa_u,u)\) 这条边);
定义\(g[u][0/1]\) 表示 \(val(fa_u,u)\le a[fa_u]\) 或 \(>a[fa_u]\) 时的最大边权和(考虑 \(val(fa_u,u)\) 这条边)。
考虑 \(f[u]\) ,不妨先设 \(val(u,v)\le a[u]\) ,则权值和为 \(\sum\limits_{v}g[v][0]\) 。由于只需要保证 \(\lfloor \frac{deg[u]}{2}\rfloor +1\) 个 \(\le a[u]\) 的即可,因此一些儿子可“升级”成 \(g[v][1]\) 。
按 \(g[v][1] - g[v][0]\) 从大到小排序,贪心取即可。
再考虑 \(g[u]\) ,分类讨论:
- \(a[u]\le a[fa_u]\) ,有:
- \(a[u]>a[fa_u]\) ,有:
时间复杂度 \(O(nlogn)\) 。
T6 Pekka Bridge Spam
神仙题。老年选手阿巴阿巴阿巴,题解懒得写了。
LGR067 洛谷 1 月月赛 II
\(T1,T2,T3,T4\) 较简单。
T5 仙人掌
Erdős–Gallai 定理
对于非递增度数序列 \(\{d_1,d_2,\cdots,d_n\}\) ,该序列可简单图化当且仅当\[1\le k\le n,\sum\limits_{i=1}^{k}d_i\le k(k-1)+\sum\limits_{i=k+1}^{n}\min(k,d_i) \]可感性理解。考虑前 \(k\) 个点连边度数上界,\(k(k-1)\) 为 \(k\) 个点内部连边上界,后面是前 \(k\) 个点与 \(n-k\) 个点连边的上界。
设度数序列为 \(d\) ,点集大小为 \(n\) ,边集大小为 \(m\) 。
显然有 \(\sum\limits_{i=1}^{n}d_i=2m,d_i\ge 1\) 。
先考虑树的情况,不难得出充要条件:
考虑归纳证明,对于 \(n=2\) 显然成立;对于 \(n>2\) ,必存在 \(d_j=1,d_k\ge 2\) ,将 \(j\) 与 \(k\) 连边,转化为 \(n-1\) 个点的求解问题。
考虑边仙人掌的情况,任取一个生成树,每条非树边对应一个环。
显然环数 \(c\) 满足:\(0\le c\le \lfloor \frac{n-1}{2}\rfloor\) 。
若度数均为偶数,有两种情况:
-
度数均为 \(2\) ,此时构造一个大环即可;
-
其他,此时必有 \(d_u=d_v=2,d_w\ge 4\) ,构造方式可类比树的归纳法。
若度数不全为偶数,则 \(c\) 的上界过松,应确定更强的约束条件。
设割边个数为 \(b\) ,奇度数个数为 \(o\) ,叶子个数为 \(l\) ,显然有 \(b\ge \max(\frac{o}{2},l)\) ,故
特殊处理一下 \(n=2\) ,因为它会出现两叶子相连的情况。
可以证明满足上述 \(c\) 的限制即可构造出仙人掌,具体构造方式
关于计数,枚举 \(o\) 和 \(l\) ,满足:
并且有 \(o-l\) 个奇度数且 \(\ge 3\) 的点,\(l\) 个叶子,\(n-o\) 个偶度数点,则方案为:
令 \(t=\frac{2m-o+2l-2n}{2}\) ,
预处理组合数,即可做到 \(O(n^2)\) 。
LGR066 洛谷 1 月月赛 I
\(T1,T2,T3,T4\) 较简单。
T5 小欧与回文串构造
构造串 \(\text{001011 001011 ...}\) 可以发现当 \(|S|\ge 9\) 时串只有 \(8\) 种本质不同回文串。
又 \(\text{00...0}\) 有 \(len\) 种本质不同回文串,两者结合一下即可拼出 \(m\le n\) 。
对于 \(m<8\) 且 \(m<n\) 的,除 \(n=8,m=7\) 外均无解。
T6 Fracture Ray
对于给定的 \(x\) ,将 \(>V\) 的所有数缩成一个根节点,则修改操作即 \(x\) 到根路径 \(+v\) ,查询操作即 \(x\) 到根路径权值和。
不难发现路径的并只有 \(5e7\) 量级,因此暴力跳 \(x\) 复杂度正确,可手写 \(bitset\) 压常数。
考虑建其虚树,点数不超过 \(4n\) ,记录 \(val[i]\) 表示点 \(i\) 与它虚树上的父亲的距离,修改和查询操作均可通过树剖+线段树解决。
时间复杂度 \(O(Cn+nlog^2n)\) ,\(C\) 约为 \(250\) ,空间大概 \(128MB\) 。

浙公网安备 33010602011771号