Examples

2023-2-8 #35 将日光夺回的反叛 在冰结中展开

——Licis《蝉鸣死去的夜晚》

【乐正绫AI原创】蝉鸣死去的夜晚【原创曲PV付】 太好听了,真的很推荐!

昨天和 juju hzr 一起训了一场 ACM:CCPC2022 Weihai,不知道为啥感觉状态比较拉,签到的 G 题都不会做了,写的几道题也调了很久😔。(不过这场的题也很💩)

今天小小玩了一款恐怖游戏 缄默咖啡厅,剧情和美术风格都说得过去,不过娃娃跳脸还是吓到我了呜呜呜😟,希望晚上睡得着觉。

不太记得群论了,复习一下。(所以可能今天的题比较水!)

192 P4128 [SHOI2006] 有色图 / P4727 [HNOI2009]图的同构计数

做这题让我想起了圆环之理。

根据 polya 定理只需算出每种排列对应点的等价类数量与边的等价类数量。

由于 \(n\) 比较小,我们可以直接用分拆数的复杂度枚举环的拆分,注意分拆的系数需要考虑圆排列与相同大小环之间的无序,然后等价类就很好算了:无非是每个环内部有环长除二下取整的等价类,两个不同环有环长 \(\gcd\) 的等价类。

193 P4708 画画

也是一道分拆数的题,我们先类似上一道题分拆数地枚举一下。

环内的边:对于长为奇数的环,每条边都会让每个点度数加二;对于长度为偶数的环,只有恰好跨越半个环的边才会让整个环全体度数加一,其余都是加二。

环之间的边:对于两个大小分别为 \(x,y\) 的环,有 \(\gcd(x,y)\) 个等价类,一条边对左边每个点连出 \(\frac{y}{\gcd(x,y)}\) 条边,右边则是 \(\frac{x}{\gcd(x,y)}\)。那么每个等价类无非分三类:无作用、某个环所有点度数奇偶性改变、两个环同时改变。

那么可以变为一张有自环重边的图,你要选择一个子图使得每个点度数为偶数。而这是经典问题:P4494 [HAOI2018]反色游戏

给出结论:设自环数量为 \(s\),点数 \(n\),边数 \(m\),那么一个连通块的方案数为 \(2^{\max(s-1,0)+m-n+1}\),若没有自环我们可以任选一棵 dfs 树,每种非树边选择方案都恰好对应一种情况,有自环只需自环选择数量为偶数就好了。

194 loj#6538. 烷基计数 加强版 加强版 / P6598 烷烃计数 / P6597 烯烃计数

先做烷基计数。

毕竟有根树,可以直接列生成函数,对于根的三棵子树应用 burnside。

\[F(x)=1+\frac{x}{6}(F^3(x)+3F(x^2)F(x)+2F(x^3)) \]

其中置换 \((1,2,3)\) 三棵子树没有限制,\((1,3,2),(3,2,1),(2,1,3)\) 要求两棵子树相同,\((2,3,1),(3,1,2)\) 要求三棵子树相同。

这个东西可以牛顿迭代,但其实我也不太会牛顿迭代,复习一下!

多项式牛顿迭代:给定 \(g(x)\),求 \(f(x)\) 满足 \(g(f(x))\equiv 0\pmod{x^n}\)
方法:倍增,我们解出 \(g(f_0(x))\equiv 0\pmod{x^{\lceil\frac n2\rceil}}\)
\(g(f(x))\)\(f_0(x)\) 处泰勒展开得到 \(g(f(x))=\sum_{i\geqslant 0}\frac{g^{(i)}(f_0(x))(f(x)-f_0(x))^i}{i!}\equiv 0\pmod{x^n}\)
\(f(x)-f_0(x)\) 最低非零项为 \(\lceil\frac n2\rceil\),因此 \(i\) 只需考虑到 \(1\)
得到 \(g(f_0(x))+g'(f_0(x))(f(x)-f_0(x))\equiv 0\pmod{x^n}\),即 \(f(x)\equiv f_0(x)-\frac{g(f_0(x))}{g'(f_0(x))}\pmod{x^n}\)

那么有:

\[g(F(x))=1+\frac{x}{6}(F^3(x)+3F(x^2)F(x)+2F(x^3))-F(x)\\ g'(F(x))=\frac{x}{6}(3F^2(x)+3F(x^2))-1\]

牛顿迭代的过程 \(F(x^2),F(x^3)\) 都是常函数,套式子就好了,复杂度 \(O(n\log n)\)

然后是烷烃计数。

无根树经典的钦定方法:以重心为根。

根有可能有四个儿子,类似上面的式子我们能得到:

\[R(x)=1+\frac{x}{24}(F^4(x)+6F^2(x)F(x^2)+3F^2(x^2)+8F(x)F(x^3)+6F(x^4)) \]

重心去重比较简单,因为砍掉一棵重心子树后剩余两个连通块都是烷基。于是减去某棵子树大小大于 \(\lfloor\frac n2\rfloor\) 的情况以及两个重心算重的情况就好啦。

最后是烯烃计数。

断开碳碳键后两个连通块都是有根且根度数不超过 \(2\) 的烷烃,于是列出:

\[C(x)=1+\frac{x}{2}(F^2(x)+F(x^2))\\ D(x)=\frac{(C(x)-1)^2+C(x^2)-1}{2}\]

三道题都是 \(O(n\log n)\)

195 CF1630E Expected Components

场上不会 polya 折戟沉沙!

196 ABC284H Count Unlabeled Graphs

197 CFgym104023G Grade 2

很丢人阿,这种签到题不会做!把这题丢给 hzr 他一下秒掉了。

我们有:

\[\sum_{i=1}^n[\gcd(ix\oplus x,x)=1]=\sum_{i=1}^n[\gcd(ix+x-2(ix\operatorname{and}x),x)=1]\\=\sum_{i=1}^n[\gcd(2(ix\operatorname{and}x),x)=1] \]

那么可以立即得到 \(i\) 中高于 \(\lceil\log_2 x\rceil\) 的位无影响,答案有一个 \(2^{\lceil\log_2 x\rceil}\) 的循环节,预处理即可。

198 CFgym104023L Novice Magician

很难,不知道为什么很多队伍都会。

如果总和不是 \(2^{n-1}\) 的倍数一定无解,因为每次贡献都是这个的倍数。

我们首先可以用 \(2^{n-1}-1\) 次操作,每次用前面 \(2^{n-1}-1\) 个位置来辅助还原掉最后面一个数。

操作带来的 \(-0,-2,-4\) 的额外贡献显然可以预先消掉,那么一次操作可以看成选中的所有位置减去某个数。由于只剩 \(2^{n-1}+1\) 个数,其事实上等价于某个位置加一个数,这就好构造了。

注意到此时未还原的前 \(2^{n-1}+1\) 个数总和一定仍是这个的倍数,不妨记其为 \(s\)

直接给出策略:对于第 \(i\in[1,2^{n-1}+1]\) 轮,我们操作所有 \(j\ne i\),将其加上 \(\frac{s}{2^{n-1}}-a_i\),可以发现最后位置 \(i\) 加上的是 \(s-\sum_{j\ne i}a_j=a_i\)

posted @ 2023-02-08 11:09  xiaoziyao  阅读(139)  评论(1编辑  收藏  举报