数学记录(有码)
多项式全家桶
多项式
定义
形如 \(\sum a_nx^n\) 的求和式若为有限项相加,那么称作多项式 记作\(f(x)=\sum_{n=0}^m a_nx^n\)
对于如 \(\sum_{n=0}^{\infty}a_nx^n\) 有一个非负整数次幂乘以一个常数,称作幂级数
运算
加减运算
两个多项式 \(F(x)=\sum_{n\geq0}a_nx^n\) 与 \(G(x)=\sum_{n\geq0}b_nx^n\) 有
\[F(x)\pm G(x)=\sum_{n\geq0}(a_n\pm b_n)x^n
\]
卷积(乘法)
两个多项式 \(F(x)=\sum_{n\geq0}a_nx^n\) 与 \(G(x)=\sum_{n\geq0}b_nx^n\) 有
\[F(x)\times G(x)=\sum_{i\geq0}a_ix^i \sum_{j\geq0}b_jx^j\\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\sum_{n\geq0}x^n\sum_{i\geq0}a_ib_{n-i}
\]
FFT
单位根
对于 \(n\) 次单位根为 \(\omega_n\) 表示在复平面上以原点为圆心的半径为1的园,并从实部正半轴开始逆时针将园 \(n\) 等分后的原点与第一个 \(n\) 等分点构成的复数。
在弧度制下,该角弧度为 \(\frac{2\pi}{n}\) ,那么
\[\omega_n^k=\cos (k\times \frac{2\pi}{n}) +i\sin (k\times \frac{2\pi}{n})
\]
那么可以推导出:
\[(\omega_n^n)=(\omega_n^0)=1\\
\omega_{2n}^{2k}=\cos(2k\times\frac{2\pi}{2n})+i\sin(2k\times\frac{2\pi}{2n})=\omega_n^k\\
\omega_n^{\frac{n}{2}}=\cos(\frac{n}{2}\times\frac{2\pi}{n})+i\sin(\frac{n}{2}\times\frac{2\pi}{n})=\cos(\pi)+i\sin(\pi)=-1\\
\omega_n^{k+\frac n2}可以理解为在选择\frac{2k\pi}n 的基础上继续旋转\frac{2\pi \frac{n}2}{n}=\pi,即多旋转180^\circ,\\从向量的角度看,可以感性理解为其相乘,则\omega_n^{k+\frac n2}=-\omega_n^{k}
\]
\[(\omega_n^k)^2=(\cos (k\times \frac{2\pi}{n}) +i\sin (k\times \frac{2\pi}{n}))\times(\cos (k\times \frac{2\pi}{n}) +i\sin (k\times \frac{2\pi}{n}))\\
=\cos^2(k\times \frac{2\pi}{n})-\sin^2(k\times \frac{2\pi}{n}) +i2\cos(k\times \frac{2\pi}{n})\sin(k\times \frac{2\pi}{n})\\
\\\because \begin{bmatrix}
\cos \alpha&-\sin\alpha\\
\sin \alpha&\cos\alpha\\
\end{bmatrix}
\begin{bmatrix}
\cos \alpha\\
\sin \alpha
\end{bmatrix}=
\begin{bmatrix}
\cos^2\alpha-\sin^2\alpha\\
2\cos\alpha\sin\alpha\\
\end{bmatrix}\\
\therefore \cos 2\alpha=\cos^2\alpha-\sin^2\alpha\\
\sin 2\alpha=2\cos\alpha\sin\alpha\\
\therefore(\omega_n^k)^2=\cos(2k\times\frac{2\pi}{n})+i\sin(2k\times\frac{2\pi}{n})=\omega_n^{2k}
\]
\[可以感性理解一下(\omega_n^i)(\omega_n^j)=(\omega_n^{i+j}),因为其可以看作向量旋转
\]
DFT
考虑将这 \(n\) 个 \(n\) 次单位根带入一个 \(n\) 次多项式,获得其点值表示法,复杂度肯定是 \(O(n^2)\) ,但是如果对下标进行奇偶性分离:
\[A(x)=\sum_{i=0}^{n-1} a_ix^i=a_0+a_1x^1+a_2x^2+\dots +a_{n-2}x^{n-2}+a_{n-1}x^{n-1}\\
=a_0+a_2x^2+\dots+a_{n-2}x^{n-2}
\\+a_1x^1+a_3x^3+\dots+a_{n-1}x^{n-1}\\
令A_1(x)=a_0+a_2x^1+\dots+a_{n-2}x^{\frac n2-1}\\A_2(x)=a_1+a_3x^1+\dots+a_{n-1}x^{\frac n2-1}\\
那么A(x)=A_1(x^2)+xA_2(x^2)\\
将其中一个单位根 \omega_n^k \ (k<\frac n2) 带入:\\
A(\omega_n^k)=A_1((\omega_n^k)^2)+\omega_n^kA_2((\omega_n^k)^2)\\
=A_1(\omega_n^2k)+\omega_n^kA_2(\omega_n^2k)\\
若将\omega_n^{k+\frac n2}带入:\\
A`(-\omega_n^k)=A_1(\omega_n^2k)-\omega_n^kA_2(\omega_n^2k)\\
\]
我们可以发现,\(A\) 与 \(A`\) 只有一个常数项不同,所以在求 \(A\) 时可以 \(O(1)\) 算出第二个,所以 \(k\) 的取值范围时 \([0,\frac n 2-1]\) ,然后发现 \(A_1,A_2,A\) 的性质相同,所以可以递归转化,复杂度为 \(O(n\log_2 n)\) 。
IDFT
现在已知 \((y_0,y_1,y_2,\dots,y_{n-1})\) 是 \((a_0,a_1,a_2,\dots,a_{n-1})\) 的点值表示法。
假设有个向量 \((c_0,c_1,c_2,\dots,c_{n-1})\) ,即多项式 \(B(x)=\sum\limits_{i=0}^{n-1}y_ix^i\) 在 \((\omega_n^0,\omega_n^{-1},\omega_n^{-2},\dots,\omega_n^{-(n-1)})\) 上的值。
那么:
\[\begin{aligned}
c_k&=\sum_{i=0}^{n-1}y_i(\omega_n^{-k})^i\\
&=\sum_{i=0}^{n-1}(\sum_{j=0}^{n-1}a_j(\omega_n^i)^j)(\omega_n^{-k})^i\\
&=\sum_{i=0}^{n-1}(\sum_{j=0}^{n-1}a_j(\omega_n^i)^j(\omega_n^{-k})^i)\\
&=\sum_{i=0}^{n-1}\sum_{j=0}^{n-1}a_j(\omega_n^i)^j(\omega_n^{-k})^i\\
&=\sum_{i=0}^{n-1}\sum_{j=0}^{n-1}a_j(\omega_n^j)^i(\omega_n^{-k})^i\\
&=\sum_{i=0}^{n-1}\sum_{j=0}^{n-1}a_j(\omega_n^{j-k})^i\\
&=\sum_{j=0}^{n-1}a_j\sum_{i=0}^{n-1}(\omega_n^{j-k})^i\\
\end{aligned}
\]
\[设S(x,n)=\sum_{i=0}^{n-1}x^i\\
当x=\omega_n^k时:\\
S(\omega_n^k,n)=1+(\omega_n^k)+(\omega_n^k)^2+\dots+(\omega_n^k)^{n-1}\\
(\omega_n^k)S(\omega_n^k,n)=(\omega_n^k)+(\omega_n^k)^2+(\omega_n^k)^3+\dots+(\omega_n^k)^n\\
两式相减:\\
(\omega_n^k-1)S(\omega_n^k,n)=(\omega_n^k)^n-1\\
S(\omega_n^k,n)=\frac{(\omega_n^k)^n-1}{\omega_n^k-1}\\
\therefore S(\omega_n^k,n)=\frac{1-1}{\omega_n^k-1}\\
但是在k=0时S(\omega_n^k,n)=n\\
所以在原式c_k=\sum_{j=0}^{n-1}a_j\sum_{i=0}^{n-1}(\omega_n^{j-k})^i\\
当i\neq k时,后一个\sum中值为0\\
当i= k时,后一个\sum中值为n\\
故c_k=na_k\\
a_k=\frac{c_k}{n}
\]
总结
那么两个多项式相乘可以先将其分别转化为点值表示法,然后对于位置相乘得到结果的点值表示法,然后在跑一遍那个将多项式转化为点值的函数,将点值转化为多项式,最后依据 \(IDFT\) 除以即可。
实际上对于上述算法还可以进行优化,就是不递归的写法。
因为我们发现一个数的位置是其元下标二进制翻转后的位置,所有可以预处理然后枚举长度合并。
NTT
原根
将最小的满足 \(a^l\equiv1\pmod p\) 的 \(l\) 称作 \(a\) 在模 \(p\) 意义下的阶 。
如果 \(g\) 在模 \(p\) 意义下的阶是 \(\varphi(p)\) ,那么称 \(g\) 是 \(p\) 的原根 。
求原根可以这样做:如果 \(\gcd(g,p)=1\) ,设 \(p_1,p_2 \dots p_k\) 为 \(p\) 的所有质因子,如果 \(g\) 是 \(p\) 的原根就满足对于任意 \(i\in[1,k],g^{\frac{\varphi(p)}{p_i}}\not\equiv1\pmod p\)
可以发现原根有一个非常优秀的性质就是对于在 \(1\) 到 \(\varphi(p)\) 中的任意一个幂次都是不一样的,而且是以 \(\varphi(p)\) 为长度的一个循环节,这与 \(\omega\) 的性质很像。而且当 \(p\) 为质数时,如果 \(\varphi(p)\) 有很多 \(2\) 这个因子就十分优秀,像 \(998244353=2^{23}\times 7\times 17+1\) 它的原根是 \(3\) 。
那么现在我们可以用 \(g^{\frac{\varphi(p)}{n}}\) 代替 \(n\) 次单位根就行。
多项式牛顿迭代
给定多项式 \(g(x)\) 求在模 \(x^n\) 下的 \(f(x)\) 使其满足:
\[g(f(x))\equiv0\pmod {x^n}
\]
通过倍增和泰勒展开(不会)得到:
\[f(x)\equiv f_0(x)-\frac{g(f_0(x))}{g'(f_0(x))}\pmod{x^n}
\]
多项式求逆
设给定的多项式是 \(h(x)\) ,那么有:
\[g(f(x))=\frac{1}{f(x)}-h(x)\equiv 0\pmod{x^n}
\]
于是有:
\[f(x)\equiv f_0(x)-\frac{\frac{1}{f_0(x)}-h(x)}{-\frac{1}{f_0^2(x)}}\pmod{x^n}\\
\equiv 2f_0(x)-f_0^2(x)h(x)\pmod{x^n}\\
\]
而当 \(n=1\) 时,\([x^0]f_0(x)=[x^0]h(x)^{-1}\)
多项式开根
设给定的多项式是 \(h(x)\) ,那么有:
\[g(f(x))\equiv f^2(x)-h(x)\pmod{x^n}\\
\]
于是有:
\[f(x)\equiv f_0(x)-\frac{f^2_0(x)-h(x)}{2f_0(x)}\pmod{x^n}\\
\equiv\frac{f_0^2(x)+h(x)}{2f_0(x)}
\]
多项式对数函数
假设我们要求 \(G(x)\equiv\ln(F(x))\pmod{x^n}\) ,设函数 \(f(x)=\ln(x)\) ,那么我们要求的是:
\[G(x)\equiv f(F(x))\pmod{x^n}\\
G'(x)=f(F(x))'\\
G'(x)=f'(F(x))F'(x)\\
\]
注意到 \(\ln(x)\) 的导数是 \(\frac{1}{x}\) ,所以有:
\[G'\equiv \frac{F'(x)}{F(x)} \pmod{x^n}
\]
因为我们只关心余数,所以可以求逆就行。
多项式指数函数
设给定的多项式是 \(h(x)\) ,那么有:
\[g(f(x))\equiv\ln(f(x))-h(x)\pmod{x^n}
\]
于是有:
\[f(x)\equiv f_0(x)-\frac{\ln(f_0(x))-h(x)}{\frac{1}{f_0(x)}}\pmod{x^n}\\
\equiv(f_0(x))(1-\ln(f_0(x))+h(x))\pmod{x^n}
\]
多项式快速幂
设给定的多项式是 \(h(x)\) ,那么求:
\[G(x)\equiv h(x)^k \pmod{x^n}\\
\ln(G(x))\equiv k\ln(h(x))\pmod{x^n}\\
G(x)\equiv e^{k\ln(h(x))}\pmod{x^n}
\]
注意到要求 \(\ln\) 所以要保证第一位位 \(1\) ,所以对于部分不合法多项式应该左移 \(z\) 位到第一位不为 \(0\) ,如果是别的数要先除以 \(a_0\) ,但是最后要每一项乘以 \(a_0^{k\mod \varphi(p)}\) ,然后还要乘以一个 \(x^{zk\mod p}\)
第二类斯特林数
定义
第二类斯特林数 \(\begin{Bmatrix}n\\m\end{Bmatrix}\) 也记作 \(S(n,m)\) ,表示将 \(n\) 个区分的小球放入 \(m\) 个相同的盒子且不允许有空盒子的方案数。
递推公式
\[\begin{Bmatrix}n\\m\end{Bmatrix}=\begin{Bmatrix}n-1\\m-1\end{Bmatrix}+m\begin{Bmatrix}n-1\\m\end{Bmatrix}
\]
通过组合意义来解释:
当加入一个球时可以将其单独放入一个空盒子中,方案数为 \(\begin{Bmatrix}n-1\\m-1\end{Bmatrix}\) ,
也可以将其放入一个非空的盒子中,方案数为 \(m\begin{Bmatrix}n-1\\m\end{Bmatrix}\) 。
通过加法原理得到递推公式。
通向公式
\[\begin{Bmatrix}n\\m\end{Bmatrix}=\sum_{i=0}^m\frac{(-1)^{m-i}i^n}{i!(m-i)!}
\]
可以使用容斥证明该式子:
将 \(n\) 个区分的球放入 \(m\) 个区分的盒子中且允许有空盒子的方案为 \(A_m\) ,
将 \(n\) 个区分的球放入 \(m\) 个区分的盒子但不能有空盒子的方案是 \(B_m\) 。
那么有 :
\[A_m=m^n=\sum_{i=0}^m\binom{m}{i}B_i
\]
通过二项式反演可得:
\[\begin{aligned}
B_m&=\sum_{i=0}^m(-1)^{m-i}\binom{m}{i}A_i\\&=\sum_{i=0}^m (-1)^{m-i}\frac{m!i^n}{i!(m-i)!}
\end{aligned}
\]
因为 \(B_m\) 正好 \(\begin{Bmatrix}n\\m\end{Bmatrix}\) 的 \(i!\) 倍,所以得到通向公式:
\[\begin{Bmatrix}n\\m\end{Bmatrix}=\sum_{i=0}^m\frac{(-1)^{m-i}i^n}{i!(m-i)!}
\]
第二类斯特林数·行
发现其通向公式
\[\begin{Bmatrix}n\\i\end{Bmatrix}=\sum\limits_{j=0}^i\frac{(-1)^{i-j}j^n}{j!(i-j)!}\\
=\sum_{j=0}^i\frac{j^n}{j!}.\frac{(-1)^{i-j}}{(i-j)!}
\]
这是一个卷积的形式,所以可以 NTT 求。
第二类斯特林数·列
先假设每个盒子也要区分,考虑对于一个盒子计算,其生成函数是 \(G(x)=\sum\limits_{i\geq 1}\frac{x^i}{i!}=(e^x-1)\) ,其第 \(i\) 项表示在这个盒子放入了 \(i\) 个球。 这样对于 \(m\) 个盒子,\(F(x)=G(x)^m\) ,那么如果有 \(n\) 个球,答案就是 \([x^n]G(x)^m\) 由于目前的盒子是区分的,所以要乘以一个 \(m!\) ,故有 \(n\) 个球的答案是 \(m![x^n]G(x)^m\) 。这样可以多项式快速幂求,都是发现多项式 \(G(x)\) 的首项是 \(0\) 所以要多项式平移。这里使用的是 EGF 其卷积形式如下 \(\sum\limits_{i\geq 0}x^i\sum\limits_{j=0}^i\frac{1}{i!(i-j)!}a_ib_j=\sum\limits_{i\geq 0} \frac{x^i}{i!}\sum\limits_{j=0}^i\binom{i}{j}a_ib_j\) 就是考虑了 \(a\) ,\(b\) 合并的顺序,而最后要乘一个 \(i!\) 去消掉 EGF 的 \(i!\) 这个系数。
第一类斯特林数
定义
第一类斯特林数 \(\begin{bmatrix}n\\k\end{bmatrix}\) 表示将 \(n\) 个区分的元素划分为 \(k\) 个互不区分的非空轮换中的方案数。
递推公式
\[\begin{bmatrix}n\\m\end{bmatrix}=\begin{bmatrix}n-1\\m-1\end{bmatrix}+(n-1)\begin{bmatrix}n-1\\m\end{bmatrix}
\]
因为加入一个元素时有以下两种情况:
加在之前一个轮换中,此时它可以加在 \(n-1\) 个元素的右边,故有 \((n-1)\begin{bmatrix}n-1\\m\end{bmatrix}\) 种方案
新开一个轮换,故有 \(\begin{bmatrix}n-1\\m-1\end{bmatrix}\) 种方案
第一类斯特林数·行
考虑像第二类斯特林数
第一类斯特林数·列
可考虑对于每个轮换生成函数为 \(G(x)=\sum\limits_{i\geq 0}\frac{x^i}i\) 所有可以直接多项式快速幂求 \(F(x)=G(x)^m\) 。
设 \(cnt_i\) 表示颜色为 \(i\) 的珍珠个数。那么对于一个合法序列满足:
\[\begin{aligned}
\sum_{i=1}^{D} \lfloor\frac{cnt_i}{2}\rfloor&\geq m\\
\sum_{i=1}^D\frac{cnt_i-(cnt_i\mod 2)}{2}&\geq m\\
\sum_{i=1}^Dcnt_i-(cnt_i\mod2)&\geq2m\\
n-\sum_{i=1}^Dcnt_i\mod2&\geq 2m\\
\sum_{i=1}^D cnt_i \mod2&\leq n-2m
\end{aligned}
\]
然后可以特判两种情况,分别是 \(n<2m\) 和 \(2m\leq n-D\) ,答案分别为 0 和 \(D^n\) 。
对于其他情况,我们发现答案只与每种珍珠出现的奇偶性有关,那么我们设 \(odd_i\) 表示恰好有 \(i\) 个奇数的方案数,那么 \(ans=\sum\limits_{i=0}^{n-2m} odd_i\) 。
看到恰好可以考虑容斥,定义 \(f_i\) 表示钦定 \(i\) 个是奇数,其余的不进行限制的方案数,那么 \(f_i=\sum\limits_{j=i}^{D} \binom{j}{i} odd_j\)
由二项式反演可以得到:
\[\begin{aligned}
odd_i&=\sum_{j=i}^D (-1)^{j-i}\binom{j}{i}f(j)\\
&=\sum_{j=i}^D(-1)^{j-i}\frac{j!}{i!(j-i)!} f(j)\\
&=\frac{1}{i!} \sum_{j=i}^D \frac{(-1)^{j-i}}{(j-i)!}j!f(j)\\
\end{aligned}
\]
通过EGF的卷积定义:
\[\begin{aligned}
(F*G)[k]&=\sum_{i+j=k} \binom{k}{i}F[i]G[j]\\
\frac{(F*G)[k]}{k!}&=\sum_{i+j=k}\frac{F[i]}{i!}\frac{G[j]}{j!}
\end{aligned}
\]
我们可以发现上面式子中:
\[\sum_{j=i}^D \frac{(-1)^{j-i}}{(j-i)!}j!f(j)
\]
是个卷积形式。
考虑先求 \(f(i)\) ,因为奇数位是1的EGF是:
\[\begin{aligned}
\sum\limits_{i=0}\frac{[i\%2==1]}{i!}x^i&=\frac{e^x-e^{-x}}{2}\\
\therefore f_k&=\binom{D}{k}n^k(e^x)^{D-k}\\
&=\binom{D}{k}n![x^n]\frac{1}{2^k}(e^x-e^{-x})^k(e^x)^{D-k}\\
&=\binom{D}{k}\frac{n!}{2^k}[x^n](e^x-e^{-x})^k(e^x)^{D-k}\\
\end{aligned}
\]
由二项式定理 \((x+y)^k=\sum\limits_{i=0}^k\binom{k}{i}x^iy^{k-i}\) 可知:
\[\begin{aligned}
f_k&=\binom Dk \frac{n!}{2^k}[x^n]\sum_{i=0}^k\binom kie^{ix}(-e^x)^{k-i}(e^x)^{D-k}\\
&=\binom Dk \frac{n!}{2^k}\sum_{i=0}^k\binom ki(-1)^{k-i}e^{ix-(k-i)x+(D-k)x}[x^n]\\
&=\binom Dk \frac{n!}{2^k}\sum_{i=0}^k\binom ki(-1)^{k-i}[x^n]e^{(D-2(k-i))x}\\
\because [x^n]e^{ax}&=\frac{a^n}{n!}\\
\therefore f_k&=\binom Dk\frac{n!}{2^k}\sum_{i=0}^k\binom ki(-1)^{k-i}\frac{(D-2(k-j))^n}{n!}\\
&=\frac{D!}{k!(D-k)!}\frac{n!}{2^k}\sum_{i=0}^k\frac{k!}{i!(i-k)!}(-1)^{k-i}\frac{(D-2(k-j))^n}{n!}\\
令 j&=k-i\\
\therefore f_k&=\frac{D!}{k!(D-k)!}\frac{n!}{2^k}\sum_{j=0}^k\frac{k!}{j!(k-j)!}(-1)^j\frac{(D-2j)^n}{n!}\\
&=\frac{D!}{(D-k)!2^k}\sum_{i=0}^k\frac{(-1)^i(D-2i)^n}{i!}\frac{1}{(k-i)!}
\end{aligned}
\]
显然后面求和号中是一个EGF的卷积形式,于是我们可以求出 \(f_k\) 。
\[\begin{aligned}
ans&=\frac1n\sum_{i=1}^nn^{\gcd(n,i)}\\
&=\frac1n\sum_{d|n}n^d\sum_{i=1}^{n}[\gcd(n,i)==d]\\
&=\frac1n\sum_{d|n}n^d\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}[\gcd(\frac{n}{d},i)==1]\\
&=\frac1n\sum_{d|n}n^d\varphi(\frac{n}{d})
\end{aligned}
\]
\[\sum_{i=1}^ni^{v(i)+1}\\
d=\prod_{i=1}p_i^{t_i}\\
设t_{max}为\max(t_1,t_2\dots)
\\
令:f(x)=\sum_{i=1}^ni^{x+1}[v(i)==x]\\
\therefore ans=\sum_{i=1}^{t_{max}}f(i)\\
设d_t=\prod_{i=1}p_{i}^{\lceil\frac{t_i}{k}\rceil}\\
\therefore d|i^k等价于d_k|i\\
并且[v(i)==k] 等价于[d_{k-1}\nmid i]\&\&[d_k|i]\\
\therefore f(k)=
\begin{cases}
\sum\limits_{i=1}^ni[d_{t_{max}}\nmid i]&&&k=0\\
\sum\limits_{i=1}^ni^2[d_1|i]&&&k=1\\
\sum\limits_{i=1}^ni^{k+1}[d_{k-1}\nmid i][d_k|i]&&&k>1
\end{cases}\\
\]
当 \(k=0\) 时:
\[\begin{aligned}
f(k)&=\sum_{i=1}^ni[1-d_{t_{max}}|i]\\
&=\sum_{i=1}^ni-\sum_{i=1}^ni[d_{t_{max}}|i]\\
&=\sum_{i=1}^ni-d_{t_{max}}\sum_{i=1}^{\lfloor\frac{n}{d_{t_{max}}}\rfloor}i
\end{aligned}
\]
当 \(k=1\) 时:
转枚举 \(i\) 变为枚举 \(i\) 的因子
\[\begin{aligned}
f(k)&=\sum_{i=1}^{\lfloor\frac{n}{d_1}\rfloor}(id_1)^2\\
&=d_1^2\sum_{i=1}^{\lfloor\frac{n}{d_1}\rfloor}(i)^2\\
\end{aligned}
\]
当 \(k>1\) 时:
\[\begin{aligned}
f(k)&=\sum_{i=1}^{\lfloor\frac{n}{d_k}\rfloor}(id_k)^{k+1}[\frac{d_{k-1}}{d_k}\nmid i]\\
&=d_k^{k+1}\sum_{i=1}^{\lfloor\frac{n}{d_k}\rfloor}i^{k+1}[1-d_{k-1}|i]\\
&=d_{k}^{k+1}(\sum_{i=1}^{\lfloor\frac{n}{d_k}\rfloor}i^{k+1}-\sum_{i=1}^{\lfloor\frac{n}{d_k}\rfloor}i^{k+1}[\frac{d_{k-1}}{d_k}|i])\\
&=d_{k}^{k+1}(\sum_{i=1}^{\lfloor\frac{n}{d_k}\rfloor}i^{k+1}-\sum_{i=1}^{\lfloor\frac{n}{d_{k-1}}\rfloor}(i\frac{d_{k-1}}{d_k})^{k+1})\\
&=d_k^{k+1}\sum_{i=1}^{\lfloor\frac{n}{d_k}\rfloor}i^{k+1}-d_{k-1}^{k+1}\sum_{i=1}^{\lfloor\frac{n}{d_{k-1}}\rfloor}i^{k+1}
\end{aligned}
\]
设 \(sum(n,k)=\sum\limits_{i=1}^ni^k\)
\[f(k)=
\begin{cases}
sum(n,1)-d_{t_{max}}sum(\lfloor\frac{n}{d_{t_{max}}}\rfloor,1)&&k=0\\
d_1^2sum(\lfloor\frac{n}{d_1}\rfloor,2)&&k=1\\
d_k^{k+1}sum(\lfloor\frac{n}{d_k}\rfloor,k+1)-d_{k-1}^{k+1}sum(\lfloor\frac{n}{d_{k-1}}\rfloor,k+1)&&k>1
\end{cases}
\]
不知道为什么要开 __int128
才过,不知道哪里爆 long long
了。
设 \(F(x)=\sum\limits_{i=1}^ni^k\) ,\(G(x)=\sum\limits_{i=1}^ni^k[\gcd(i,n)==1]\)
\[\begin{aligned}
\because F(x)&=\sum_{d|x}d^kG(\frac{x}{d})\\
\end{aligned}
\]
由莫反可知:
\[\begin{aligned}
G(x)&=\sum_{d|x}d^k\mu(d)F(\frac{x}{d})\\
\end{aligned}
\]
因为F(x)是应该x+1次多项式,即:
\[\begin{aligned}
\\F(x)&=\sum_{i=0}^xf_ix^i\\
\therefore G(x)&=\sum_{d|x}d^k\mu(d)\sum_{i=0}^{k+1}f_i(\frac{x}{d})^i\\
&=\sum_{i=0}^{k+1}f_ix^i\sum_{d|x}d^{k-i}\mu(d)\\
\end{aligned}
\]
由于 \(\sum_{d|x}d^{k-i}\mu(d)\) 为积性函数
\[\begin{aligned}
\because n&=\prod_{p_i|n}p_i^{a_i}
\\
\therefore G(x)&=\sum_{i=0}^{k+1}f_ix^i\prod_{p_j|x}\sum_{z=0}^{a_i}\mu(p_j^z)p_j^{z(k-i)}\\
\therefore \mu(p^k)&=
\begin{cases}
1&&&k=0\\
-1&&&k=1\\
0&&&k>1
\end{cases}\\
\therefore G(x)&=\sum_{i=0}^{k+1}f_ix^i\prod_{p_j|x}(1-p_j^{k-i})\\
\therefore G(n)&=\sum_{i=0}^{k+1}f_in^i\prod_{p_j|n}(1-p_j^{k-i})\\
\end{aligned}
\]
那么只需要插出 \(F(x)\) 的多项式就行。
第一个问题:
\[\begin{aligned}
Ans_1&=\sum_{T\subseteq S\&\&|T|=k}[\gcd_{x\in T}x=1]\\
&=\sum_{T\subseteq S\&\&|T|=k}\sum_{i|\gcd_{x\in T}x}\mu(i)\\
&=\sum_{i=1}^n\mu(i)C_{cnt_i}^k\\
\end{aligned}
\]
\(cnt_i\) 表示 \(i\) 的倍数的出现次数,\(n\) 为值域。
第二个问题:
\[考虑容斥,如果一个数作为\gcd那么其他选出来的数必定是其倍数,\\并且不是其倍数的倍数\\
例如:当i作为\gcd时,ans_i=i(C_{cnt_i}^k-C_{cnt_{2i}}^k-C_{cnt_{3i}}^k-C_{cnt_{5i}}^k+C_{cnt_{6i}}^k\dots)\\
可以发现ans_i=i\sum_{j=1}\mu(j)C_{cnt_j}^k\\
\begin{aligned}
\therefore Ans_2&=\sum_{i=1}^nans_i=\sum_{i=1}^ni\sum_{j=1}^{\lfloor\frac{n}{i}\rfloor}\mu(j)C_{cnt_{ij}}^k\\
&=\sum_{i=1}^nC_{cnt_i}^k\sum_{j|i}\mu(j)\frac{i}{j}\\
&=\sum_{i=1}^nC_{cnt_i}^k\sum_{j|i}\mu(j)id(\frac ij)\\
\because \mu\ * id &=\varphi\\
\therefore Ans_2&=\sum_{i=1}^nC_{cnt_i}^k\varphi(i)\\\
\end{aligned}
\]
现在这样是 \(O(nm)\) 的暴力,肯定过不去,考虑优化。可以发现这两个式子只与 \(cnt_i\) 的值有关,那么我们可以将式子改写为:
\[\begin{aligned}
Ans_1&=\sum_{i=1}^vC_{i}^k\sum_{j=1}^n\mu(j)[cnt_j==i]\\
Ans_2&=\sum_{i=1}^vC_{i}^k\sum_{j=1}^n\varphi(j)[cnt_j==i]\\
v&=\max_{i=1}^n\ cnt_i
\end{aligned}
\]
可以发现两个式子后面一个求和号中的值是不随 \(k\) 变化而变化的,那么我们可以花费 \(O(n)\) 的代价算出来其和为 \(S1_i\) ,\(S2_i\) ,故:
\[Ans_1=\sum_{i=1}^vC_i^kS1_i\\
Ans_2=\sum_{i=1}^vC_i^kS2_i\\
\]
由于 \(cnt_i\) 的种类不会过多,大约是 \(O(\sqrt n)\) 种,可以暴力了。
\[\prod_{i_1=1}^n\prod_{i_2=1}^n\dots\prod_{i_k=i}^nlcm(i_1,i_2\dotsi_k)\mod 998244353\\
考虑对每个质数计算其贡献:\\
a_{p,j}表示在j质因数分解以后的质因子p的个数\\(后文可能会省略p,若省略则默认为p_i)
\\
ans=\prod_{p_i|n}p_i^{\sum\limits_{j_1=1}^n\sum\limits_{j_2=1}^n\dots\sum\limits_{j_k=1}^n\max(a_{p_i,j_1},a_{p_i,j_2},\dots a_{p_i,j_k})}\\
尝试对p_i计算\sum\limits_{j_1=1}^n\sum\limits_{j_2=1}^n\dots\sum\limits_{j_k=1}^n\max(a_{p_i,j_1},a_{p_i,j_2},\dots a_{p_i,j_k})\\
假设:t=\max(a_{j_1},a_{j_2},\dots a_{j_k})\\
那么满足\max(a_{j_1},a_{j_2},\dots a_{j_k})<t时的j的可供取值的个数是:
n-b_t\\等等,好像有锅\\
b_{p,j}表示在[1,n]中拥有只是j个质因子p的数的个数(省略同a\\
那么存在k^{(n-b_t)}种取值使得\max(a_{j_1},a_{j_2}\dots a_{j_k})<t\\
那么是不是可以对于每个p暴力枚举t,做差得到\max(a_{j_1},a_{j_2}\dots a_{j_k})=t的个数。\\
ans=\prod_{p_i|n}p_i^{\sum\limits_{t=1}^{p_i^t\leq n}t\times(k^{n-b_{t+1}}-k^{n-b_i})}
\\
问题关键在于求b_{p,j},这个我们可以花费 O(n\log n)的时间对每个数质因数分解,\\然后求前缀和就行\\
\]
现在问题在于暴力(或前缀和)的复杂度是多少(二者复杂度相同),可以列出计算式:
\[\sum_{p\in prime\&\&p<n}\log_pn
\]
通过打表发现在 \(1e6\) 时这个值大约是 \(75000\)
但是好像复杂度有问题(我也不会算),主要是还要加快速幂,先搁一下
因为有 \(Burnside\) 引理:
\[|X/G|=\frac{1}{|G|}\sum_{g\in G}|X^g|\\
\]
\(|X/G|\) 是群 \(G\) 作用在集合 \(X\) 的轨道。
\(X^g\) 是 \(g\) 作用在 \(X\) 上的不变的集合。
那么我们要求的就是 \(|X/G|\) 。
由于对顶点重排是一个置换群,每一种置换是有若干轮换构成的,我们可以发现有若干边是等价的,即他们的颜色必须相同,而对于每个等价类都有 \(m\) 种选择,那么如果有 \(k\) 个等价类,那么就会存在 \(m^k\) 种染色方式,使其在经过若干次该操作后会恢复成原状。(注意:一个等价类并不等同于一个轮换,因为是经过若干操作后变化原状,并不是一次操作。)
现在问题的关键在于求解 \(k\) ,如果我们将一个置换拆解为 \(len\) 个轮换,第 \(i\) 个轮换长度是 \(b_i\) 。
先考虑在同一个轮换中的贡献:我们可以发现,在同一个轮换的同一个等价类中的边长度是一样的,因为这样才能在若干次操作后恢复原因。由于在一个轮换中我们选择的是点,那么他们之间两两连边也应该取出,那么就构成了一个完全图。而在一个有 \(a\) 个点的完全图中长度不同的边有 \(\lfloor\frac{a}{2}\rfloor\) 中,于是这 \(len\) 个轮换的贡献是 \(\sum\limits_{i=1}^{len}\lfloor\frac{b_i}{2}\rfloor\) 。
这是在同一个轮换中,但是在一个轮换中我们只取出其内部连边,然而两两轮换中的连边还没有分类。那么如何统计两两轮换间的贡献呢?
我们可以发现在只两个轮换 \(i\) 和 \(j\) 时 ,只需要经过 \(\operatorname{lcm}(b_i,b_j)\) 次操作就会恢复原样,那么其等价类长度为 \(\operatorname{lcm}(b_i,b_j)\) ,由于有 \(b_ib_j\) 条边,那么会产生 \(\frac{b_ib_j}{\operatorname{lcm}(b_i,b_j)}=\gcd(b_i,b_j)\) 个等价类,那么两两轮换中的贡献是:\(\sum\limits_{i=1}^{len}\sum\limits_{j=1}^{i-1}\gcd(b_i,b_j)\) 。
那么可以得到 \(k=\sum\limits_{i=1}^{len}\lfloor\frac{b_i}{2}\rfloor+\sum\limits_{i=1}^{len}\sum\limits_{j=1}^{i-1}\gcd(b_i,b_j)\) ,但是新的问题又出现了,就是该群的置换个数即 \(|G|\) 是 \(n!\) 的,我们没法去直接枚举所有置换。但是我们发现答案好像只与 \(b\) 数组有关系,那么我们是不是只用去找的 \(b\) 数组的所有情况然后去重就行了呢?
说做就做:将这 \(n\) 个数随便放置的方案是 \(n!\) 种,但是对于一个长度为 \(b_i\) 的轮换会重复计算 \(b_i!\) 种,那么总共有 \(\frac{n!}{\prod\limits_ib_i!}\) ,这是考虑不同轮换之间的方案,而对于一个轮换内部,其实是一个园排列,那么对于一个长度是 \(b_i\) 的轮换会存在 \((b_i-1)!\) 种不同方案,那么总方案就是 \(\prod\limits_i(b_i-1)!\) 种。有一开始的式子我们发现答案与轮换的顺序没有关系,那么我们还要去除因为顺序所带来的重复,假设 \(b_i\) 出现了 \(cnt_i\) 次,那么重复次数为 \(cnt_i!\) ,所以全部重复次数为 \(\prod\limits_icnt_i!\) 。
那么我们将最后式子写出来:
\[\begin{aligned}
k&=\sum\limits_{i=1}^{len}\lfloor\frac{b_i}{2}\rfloor+\sum\limits_{i=1}^{len}\sum\limits_{j=1}^{i-1}\gcd(b_i,b_j)\\
|X/G|&=\frac{1}{|G|}\sum_{g\in G}\frac{m^{k}\times n!\times \prod(b_i-1)!}{\prod (b_i!cnt_i!)}\\
\end{aligned}
\]
由于 \(|G|\) 是 \(n!\) ,那么整理这个式子得到:
\[\begin{aligned}
k&=\sum\limits_{i=1}^{len}\lfloor\frac{b_i}{2}\rfloor+\sum\limits_{i=1}^{len}\sum\limits_{j=1}^{i-1}\gcd(b_i,b_j)\\
|X/G|&=\sum_{g\in G}\frac{m^{k}}{\prod (b_icnt_i!)}\\
\end{aligned}
\]
我们发现 \(b\) 是 \(n\) 的一种分拆形式,并且 \(n\) 本身不大,那么我们可以暴力枚举,计算贡献。
然后对于 P4727 [HNOI2009] 图的同构计数 可以将问题转换为每条边染不染色,即 \(m=2\) 的情况求解。
令 \((i,j)\) 表示 \([\gcd(i,j)==1]\)
\[\sum_{i=1}^A\sum_{j=1}^B\sum_{k=1}^Cd(ijk)\\
\]
先考虑 \(C=1\) 时:
有结论 \(d(ij)=\sum\limits_{x|i}\sum\limits_{y|i}(x,y)\) 。因为我们可以对于每个质因子单独考虑,对于质因子 \(P\) 它在 \(i\) 中出现了 \(p_i\) 次,在 \(j\) 中出现 \(p_j\) 次,那么它会在 \(ij\) 中出现 \(p_i+p_j\) 次。我们知道 \(d(i)=\prod\limits_{P\in pri\&\&P|i} (p_i+1)\) 因为对于一个 \(P\) 你可以选择的次数是在 \([0,p_i]\) 中,根据乘法原理可知。那么质因子 \(P\) 在 \(d(i,j)\) 中的贡献也是 \(p_i+p_j+1\) 。而当 \([\gcd(x,y)==1]\) 时,对于质因子 \(P\) 它要么不出现,要么只在 \(x\) 或 \(y\) 中出现(废话) 。这样它的贡献是 \(p_i+p_j+1\) 现在考虑是不是乘法原理,因为对于每个 \(P\) 是相互独立的,假设在 \(x\) 中出现了 \(a_x\) 次,那么是不会影响另外质因子 \(P^{'}\) 。所以可以证明。
那么将这个结论推广到 \(C\neq 1\) 时,那么有 \(d(ijk)=\sum\limits_{x|i}\sum\limits_{y|i}\sum\limits_{z|k}(x,y)(y,z)(x,k)\) 。
那么:
\[\begin{aligned}
ans&=\sum_{i=1}^A\sum_{j=1}^B\sum_{k=1}^C\sum_{x|i}\sum_{y|i}\sum_{z|k}(x,y)(y,z)(x,k)\\
&=\sum_{i=1}^A\sum_{j=1}^B\sum_{k=1}^C(x,y)(y,x)(x,k)\frac{A}{x}
\end{aligned}
\]
考虑答案为从点 \((0,0)\) 到点 \((n,m)\) 的只向上或右走的路径长度之和,考虑枚举转折点,为了不重,将转折点分为两类:
从左边来然后向上走
从下边来然后向右走
于是考虑选 \(i\) 转折点 1 的方案有 \(\binom ni\binom mi\) ,然后路径上一共有 \(n+m-1\) 个点,由于已经钦定了 \(i\) 个点了,那么剩下 \(s=n+m-i-1\) 个点可选可不选,对于这 \(s\) 个点的贡献是:
\[\begin{aligned}
\sum_{j=0}^s\binom sj(i+j+2)&=2^s(i+2)+\sum_{j=0}^s\binom sj j\\
&=2^s(i+2)+\frac{\sum_{j=0}^s\binom sj s}{2}\\
&=2^s(i+2)+s2^{s-1}\\
\therefore ans&=\sum_{i=0}^{\min(n,m)}\binom ni \binom mi(2^s(i+2)+s2^{s-1})
\end{aligned}
\]
因为每次洗牌是独立的,所以一次抽中王牌的概率 \(p=\frac{1}{m}\) ,所以有:
\[ans=\sum_{i=0}^n\binom nip^i(1-p)^{n-i}i^k
\]
用第二类斯特林数拆幂次:
因为 \(m^n\) 等于将 \(n\) 个区分的小球放入 \(m\) 个区分的盒子中,允许有空的方案数,用第二类斯特林数表示就是:
\[m^n=\sum_{i=0}^{\min(n,m)} \binom{m}{i}i!\begin{Bmatrix}n\\i\end{Bmatrix}
\]
代入原式可得:
\[\begin{aligned}
ans&=\sum_{i=0}^n\binom ni p^i(1-p)^{n-i}\sum_{j=0}^{k} \binom ij j!\begin{Bmatrix}k\\j\end{Bmatrix}\\
&=\sum_{j=0}^{k}j!\begin{Bmatrix}k\\j\end{Bmatrix}\sum_{i=0}^n\binom ni \binom ij p^i(1-p)^{n-i}\\
\end{aligned}
\]
考虑第二个求和号中的内容:
\[\begin{aligned}
&=\sum_{i=0}^n\binom ni\binom ijp^i(1-p)^{n-i}\\
&=\sum_{i=0}^n \frac{n!i!}{i!(n-i)!j!(i-j)!}p^i(1-p)^{n-i}\\
&=\frac{1}{j!}\sum_{i=0}^n\frac{n!}{(n-i)!(i-j)!}p^i(1-p)^{n-i}\\
&=\frac{1}{j!}\sum_{i=0}^n\frac{(n-j)!}{(n-i)!(i-j)!}\frac{n!}{(n-j)!}p^i(1-p)^{n-i}\\
&=\frac{n!}{(n-j)!j!}\sum_{i=0}^n\binom{n-j}{n-i}p^i(1-p)^{n-i}\\
&=\binom nj\sum_{i=0}^n\binom{n-j}{i-j}p^i(1-p)^{n-i}\\
&=p^j\binom nj \sum_{i=0}^{n-j}\binom{n-j}{i}p^i(1-p)^{n-i-j}\\
&=p^j\binom{n}{j}\\
\therefore ans&=\sum_{j=0}^kj!\begin{Bmatrix}k\\j\end{Bmatrix}p^j\binom nj
\end{aligned}
\]
\[\because m^n=\sum_{i=0}^m\binom mi i!\begin{Bmatrix}n\\i\end{Bmatrix}
\]
通过二项式反演得到:
\[\begin{Bmatrix}n\\m\end{Bmatrix}=\frac{1}{m!}\sum_{i=0}^m(-1)^{m-i}\binom mi i^n
\]
代回原式得到:
\[\begin{aligned}
ans&=\sum_{j=0}^k\frac{1}{j!}\sum_{i=0}^j(-1)^{i-j}\binom ji i^kj!\binom njp^j\\
&=\sum_{i=0}^k(-1)^ii^k\sum_{j=i}^k\binom nj\binom ji(-p)^j\\
&=\sum_{i=0}^k(-1)^ii^k\sum_{j=i}^k\frac{n!j!}{j!i!(n-j)!(j-i)!}(-p)^j\\
&=\sum_{i=0}^k(-1)^ii^k\binom ni\sum_{j=i}^k \binom {n-i}{j-i}(-p)^j\\
&=\sum_{i=0}^ki^kp^i\binom ni\sum_{j=0}^{k-i}\binom {n-i}{j}(-p)^j\\
\end{aligned}
\]
设 \(S(i)=\sum\limits_{j=0}^{k-i}\binom {n-i}j(-p)^j\) ,裂开组合数:
\[\begin{aligned}
S(i)&=\sum_{j=0}^{k-i}\left( \binom{n-i-1}{j}+\binom{n-i-1}{j-1}\right)(-p)^j\\
&=S(i+1)+\binom{n-i-1}{k-i}(-p)^{k-i}+\sum_{j=0}^{k-i}\binom{n-i-1}{j-1}(-p)^j\\
\end{aligned}
\]
令 \(s=S(i+1)+\binom{n-i-1}{k-i}(-p)^{k-i}\) ,
\[\begin{aligned}
S(i)&=s+(-p)\sum_{j=0}^{k-i}\binom{n-i-1}{j-1}(-p)^{j-1}\\
&=s+(-p)\sum_{j=0}^{k-i-1}\binom{n-i-1}j(-p)^j\\
\therefore S(i)&=c+(-p)S(i+1)=(1-p)S(i+1)+\binom{n-i-1}{k-i}(-1)^{k-i}\\(S(k)&=1)\\
\therefore ans&=\sum_{i=0}^ki^k\binom ni p^i S(i)
\end{aligned}
\]
首先对于一个体积为 \(V\) 物品可以很轻易的求出其生成函数:
\[F_V(x)=\sum_{i\geq 0}[i\%V=0]x^i=\frac{1}{1-x^V}
\]
所以最后的答案是 :
\[[x^m]\prod_{i=1}^nF_{a_i}(x)
\]
但是现在是 \(O(n^2\log n)\) 的,但是因为有如下操作:
\[G(x)*F(x)=e^{\ln(G(x))+\ln(F(x))}
\]
所以考虑对所有生成函数求 \(\ln\) ,设:
\[\begin{aligned}
G(x)&=\ln(\frac{1}{1-x^V})\\
&=\ln1-\ln(1-x^V)\\
&=-\ln(1-x^V)\\
&=-\ln(F(x))\\
G'(x)&=\frac{F'(x)}{F(x)}\\
&=\frac{-Vx^{V-1}}{1-x^V}\\
&=-\sum_{i\geq0}Vx^{iV+V-1}\\
G(x)&=-\sum_{i\geq 0}\frac{x^{iV}}{i}
\end{aligned}
\]
最后求 \(\exp\) 就行。
发现联通这个限制比较强,考虑转换,设 \(g_i\) 表示 \(i\) 个点的简单无向图 个数,显然有 \(g_i=2^{\binom i2}\) ,设 \(f_i\) 表示 \(i\) 个点的无向连通图 个数。这样,我们考虑第一个点所在连通块大小,有如下转移方程:\(g_n=\sum\limits_{i=1}^n\binom{n-1}{i-1}f_{i}g_{n-i}\) ,推一下式子得到:
\[g_n=\sum\limits_{i=1}^n\binom{n-1}{i-1}f_{i}g_{n-i}
=\sum_{i=1}^n\frac{(n-1)!}{(i-1)!(n-i)!}f_{i}g_{n-i}\\
\frac{g_n}{(n-1)!}=\sum_{i=1}^n\frac{f_{i}}{(i-1)!}.\frac{g_{n-i}}{(n-i)!}
\]
设:
\[F=\sum_{i\geq0}\frac{f_i}{i!}x^i\\
H=\sum_{i\geq1}\frac{2^{\binom i2}}{(i-1)!}x^i\\
G=\sum_{i\geq0}\frac{2^{\binom i2}}{i!}x^i \\
\because H=F*G\\
\therefore F=H*G^{-1}
\]
考虑先对单个集合生成函数 \(F(x)=e^x-1=\sum\limits_{i\geq1}\frac{x^i}{i!}\) 然后现在令答案的生成函数是 \(G(x)\) ,显然有:
\[G(x)=\sum_{i=0}^n\frac{F^i(x)}{i!}=e^{F(x)}
\]
球与盒子互不相同
无限制
显然是 \(m^n\) 。
每个盒子最多一个球
发现 \(n>m\) 时答案为 0,从组合上讲答案是 \(n!\binom mn\) 。
每个盒子至少一个球
从 EGF 的角度出发,每个盒子的 EGF 是 \((e^x-1)\) ,故答案是 \([x^n](e^x-1)^m\) ,然后直接多项式快速幂?
球要区分,盒子不区分
无限制
是第二类斯特林数,答案为 \(\sum\limits_{i=1}^m\begin{Bmatrix}n\\i\end{Bmatrix}\) 。
每个盒子最多一个球
答案为 \([n\leq m]\)
每个盒子至少一个球
第二类斯特林数 \(\begin{Bmatrix}n\\m\end{Bmatrix}\) 。
球不区分,盒子要区分
无限制
考虑插板法 \(\binom{n+m-1}{m-1}\) 。
每个盒子最多一个球
答案为选 \(n\) 个有球的盒子 \(\binom mn\) 。
每个盒子至少一个球
先给每个盒子放一个,然后插板法 \(\binom{n-1}{m-1}\) 。
球与盒子都不区分
无限制
发现这个就是P4389 付公主的背包 ,只不过重量只有 \(1\) 。
每个盒子最多一个球
答案是 \([n\leq m]\) 。
每个盒子至少一个球
同样,先保住下限,然后跑无限制。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】