原文链接 https://www.cnblogs.com/cly-none/p/UOJ450.html 题意:请自行阅读. 考虑用生成函数来表示答案.因为秒之间是有序的,所以这应当是个指数生成函数.故答案就是 \[ [x^n] \left( \sum_{i \geq 0} \frac {x^i} {i!} [d | i] \right)^k \] 突破口显然是在\([d|i]\)上. 于是考虑使用单位根反演.也就是 \[ \frac {1} {n} \sum_{i=0}^{n-1} \omega…
题目:http://uoj.ac/problem/450 重要式子: \( e^x = \sum\limits_{i=0}^{\infty} \frac{x^i}{i!} \) \( ( e^{a*x} )^{(n)} = a^n * e^{a*x} \) 所以 \( e^{a*x} \)  \( [x^n] \) 乘上 n! 就是 \( a^n \) (考虑求 n 次导之后,n 次项系数变成 0 次项系数:x 取值为0即可求得现在的 0 次项系数) 推式子可以看这里:https://blog.…
题面 传送门 思路 本文中所有$m$是原题目中的$k$ 首先,这个一看就是$d=1,2,3$数据分治 d=1 不说了,很简单,$m^n$ d=2 先上个$dp$试试 设$dp[i][j]$表示前$i$个复读机用掉了$j$个机会,注意这个东西最后求出来的是分配方案,还要乘以一个$n!$ $dp[i][j]=\sum_{k=0}^j [d|k]\binom{n-j+k}{k}dp[i-1][j-k]$ $dp[i][j]=\sum_{k=0}^j [d|k]\frac{(n-j+k)!}{(n-j)…
题意:n个位置,k种颜色.求有多少种方案使得每种颜色恰出现d的倍数次. 解:d=1就快速幂,n,k很小就DP,记得乘组合数来分配位置. d = 2 / 3的时候,考虑生成函数. f(x) = ∑[d | i] / (i!) 然后发现d = 2的时候就是(ex + e-x) / 2,这个东西的k次方可以用二项式定理展开,然后O(klogn)算,log是快速幂. d = 3的时候用单位根反演,O(k2)枚举系数,同样算.因为我不想学单位根反演就没写... #include <bits/stdc++.…
uoj450 [集训队作业2018]复读机(生成函数,单位根反演) uoj 题解时间 首先直接搞出单个复读机的生成函数 $ \sum\limits_{ i = 0 }^{ k } [ d | i ] \frac{ x^{ i } }{ i! } $ . 容易想到直接上单位根反演: \[\begin{aligned} \sum\limits_{ i = 0 }^{ k } [ d | i ] \frac{ x^{ i } }{ i! } & = \sum\limits_{ i = 0 }^{ k…
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ450.html 题解 首先有一个东西叫做“单位根反演”,它在 FFT 的时候用到过: $$\frac 1 n \sum_{i=0}^{n-1} \omega_n ^{d\cdot i} = [d|n]$$ 其中 $\omega_n$ 表示 $n$ 次单位根. 接下来我们回到本题. 我们来搞一个指数生成函数,第 i 项表示总共复读 i 次,使得一个复读机开心的方案. $$f(x) = \sum_{i\ge…
[UOJ#450][集训队作业2018]复读机(生成函数,单位根反演) 题面 UOJ 题解 似乎是\(\mbox{Anson}\)爷的题. \(d=1\)的时候,随便怎么都行,答案就是\(k^n\). \(d=2\)的时候,可以做一个\(dp\),设\(f[i][j]\)表示前\(i\)个复读机选了\(j\)个时间的方案数. 然后枚举当前这个复读机复读的次数,得到: \[f[x][j]=\sum_{i=0}^{j}[2|i]{n-j+i\choose i}f[x-1][j-i]\] 化简啥的之后…
题面 传送门 题解 我的生成函数和单位根反演的芝士都一塌糊涂啊-- \(d=1\),答案就是\(k^n\)(因为这里\(k\)个复读机互不相同,就是说有标号) \(d=2\),我们考虑复读机的生成函数 \[\left(\sum_{i=0}^\infty [2|i]{x^i\over i!}\right)^k[x^n]=\left(e^x+e^{-x}\over 2\right)^k[x^n]\] 后面那个可以二项式定理展开 顺便说一下,对于形如\(e^{ax}\)项的第\(n\)项系数就是把\(…
题目链接:UOJ EI神仙加强版 既然这题模数是今天日期减去\(7\times 10^5\),那就要赶紧把这题做了. 首先肯定是考虑指数型生成函数,列出来之后使用单位根反演一波. \[\begin{aligned}Ans&=(\sum_{d|i}\frac{x^i}{i!})^k \\&=(\frac{\sum_{j=0}^{d-1}\sum_{i=0}^n\frac{(\omega_d^jx)^i}{i!}}{d})^k \\&=(\frac{\sum_{i=0}^{d-1}e^…
链接:https://ac.nowcoder.com/acm/contest/327/G来源:牛客网 一天,处女座在牛客算法群里发了一句“我好强啊”,引起无数的复读,可是处女座发现复读之后变成了“处女座好强啊”.处女座经过调查发现群里的复读机都是失真的复读机,会固定的产生两个错误.一个错误可以是下面的形式之一: 1.       将任意一个小写字母替换成另外一个小写字母 2.       在任意位置添加一个小写字母 3.       删除任意一个字母 处女座现在在群里发了一句话,他收到了一个回应…