首页 > 其他分享 >【题解】LOJ #6609 无意识的石子堆 - 感谢强大 alpha!!1【2】

【题解】LOJ #6609 无意识的石子堆 - 感谢强大 alpha!!1【2】

时间:2022-11-30 10:35:42浏览次数:38  
标签:right frac LOJ 题解 sqrt xy alpha mul left

其实只有三个部分:

  • 环的 EGF:\(\frac{1}{2}\sum\limits_{i\geq 2}\frac{x^iy^i}{i}=\frac{1}{2}\left(\ln\frac{1}{1-xy}-xy\right)\) 。
  • 链的 EGF:\(\frac{1}{2}\frac{xy^2}{1-xy}\) 。
  • 点的 EGF:\(y\) 。

于是答案为:

\[\begin{aligned} ans&={}[x^n][y^m]\exp\left(\frac{1}{2}\left(\ln\frac{1}{1-xy}-xy\right)+\frac{1}{2}\frac{xy^2}{1-xy}+y\right)\\ &={}[s^n][t^{m-n}]\exp\left(\frac{1}{2}\ln\frac{1}{1-s}\right)\exp\left(-\frac{1}{2}s\right)\exp\left(\frac{1}{2}\frac{st}{1-s}+t\right)\\ &={}[s^n][t^{m-n}]\frac{1}{\sqrt{1-s}}e^{-s/2}\exp\left(\frac{1}{2}\frac{st}{1-s}+t\right)\\ &={}[s^n]\frac{1}{\sqrt{1-s}}e^{-s/2}[t^{m-n}]e^t\sum_{i\geq 0}\frac{1}{i!}\left(\frac{1}{2}\frac{st}{1-s}\right)^i\\ &={}[s^n]\frac{1}{\sqrt{1-s}}e^{-s/2}\sum_{0\leq i\leq m-n}\frac{1}{i!(n-m-i)!}\left(\frac{1}{2}\frac{s}{1-s}\right)^i\\ &={}[s^n]\frac{1}{\sqrt{1-s}}e^{-s/2}\frac{1}{(m-n)!}\left(\frac{2-s}{2-2s}\right)^{m-n}\\ \end{aligned} \]

记 \(F_1=\frac{1}{\sqrt{1-s}},F_2=e^{-s/2},F_3=\left(\frac{2-s}{2-2s}\right)^{m-n}\) 。三者都是 D-finite 的,因此 \(F=\frac{1}{\sqrt{1-s}}e^{-s/2}\left(\frac{2-s}{2-2s}\right)^{m-n}\) 是 D-finite 的。

拆成两个部分:第一部分是 \(F_1F_2\),我们的任务是解决 \(e^{-s/2}\sqrt{1-s}\) 。第二部分是 \(F_3\) :

  • Part 1:重定义 \(F_1\) 为 \(\sqrt{1-s}\),记 \(F=F_1 F_2\) 。\(F'=F_1'F_2+F_1F_2'\),其中 \(F_1'=\frac{1}{2\sqrt{1-x}}\),于是 \(F'=\frac{1}{2\sqrt{1-s}}e^{-s/2}-\frac{1}{2}e^{-s/2}\sqrt{1-s}\) 。即 \((1-s)2F'=sF\) 。对比系数发现 \([s^i](1-s)2F'=2(i+1)F_{i+1}-2iF_i,[s^i]sF=F_{i-1}\) 。即 \(2(i+1)F_{i+1}=F_{i-1}+2iF_i\),递推即可,初值 \(F_0=1,F_1=0\) 。
  • Part 2:考虑令 \(G(x)=x^{m-n}\)。有 \(G'(x)=(m-n)x^{m-n-1}\),故 \((m-n)G(x)-xG'(x)=0\) 。带入 \(F=\frac{2-s}{2-2s}\) 有 \((m-n)G(F)-F\frac{[G(F)]'}{F'}=0\) 。即 \((m-n)G(F)=(2-3s+s^2)[G(F)]'\),对比系数递推即可。

时间复杂度 \(O(n+\log p)\) 。

signed main () {
	IN (n), IN (m);

	inv[1] = 1;
	lep (i, 2, n) inv[i] = mul (mod - mod / i, inv[mod % i]);

	f[0] = 1, f[1] = 0;
	lep (i, 1, n - 1) f[i + 1] = mul (mul (inv2, inv[i + 1]), add (f[i - 1], mul (mul (2, i), f[i])));

	const int rec = (m - n) % mod;
	g[0] = 1, g[1] = mul (rec, inv2);
	lep (i, 1, n - 1) g[i + 1] = mul (mul (inv2, inv[i + 1]), dec (mul (add (rec, 3 * i), g[i]), mul (i - 1, g[i - 1])));

	int ret = 0;
	lep (i, 0, n) pls (ret, mul (f[i], g[n - i]));

	lep (i, 2, n) ret = mul (ret, i); // n !
	lep (i, 1, n) ret = mul (ret, (m - i + 1) % mod); // m ! / (m - n) !

	printf ("%d\n", ret);
	return 0;
}

标签:right,frac,LOJ,题解,sqrt,xy,alpha,mul,left
From: https://www.cnblogs.com/qiulyqwq/p/16937662.html

相关文章

  • 题解 UVA11244
    题解UVA11244题目大意:判断大小为1连通块有几个这个题说实话真的挺水的,你可以考虑用dfs来判断联通块然后记录大小这只是其中一个思路,另一个思路是,直接判断*的8连......
  • 题解 CF546C
    题解CF546Ccodeforces网址这个题看起来很难,其实是一个模拟题大体思路就是模拟每个人拿出手牌,并且比较,然后放入相应的人的手牌中的过程然后让我们想一下,如何才能便捷的......
  • 题解 CF1676G
    这个题标签里有树形dp,但是其实用dfs已经足以解决这道题。看这道题就可以发现这两道题其实是差不多的。首先需要给两个节点之间建边,我们需要从2到n循环输入。因为......
  • 题解 SP346
    题解SP346这个题的翻译貌似有点问题,这里的coins和goldcoins其实是一个东西有了这个前提,我们是再去看题面,就可以发现,这里的coins可以同时换成$\dfrac{n}{2}\\df......
  • 题解 CF1743B
    这个题是个简单的构造题因为不能有连续的“排列”,而排列序列都是必须是以\(1\)开头所以我们只要让\(2\)和\(1\)不相邻就能保证一个序列里只有它本身和\(1\)这两......
  • 题解 CF1370B
    题解CF1370B这个题跟脑筋急转弯一样诶\(gcd\)这个东西他有很多种可能性,但是如果我们考虑最简单的数字性质奇偶,就会发现,其实所有偶数的\(gcd\)都是\(2\)对吧所以,我......
  • 题解 CF471A
    题解CF471A这个题看题解都写得非常的冗余,不简洁,这里提供一种特别神奇的做法首先他需要我们判断这里是否有相同的数字,并且还要通过这个相同的个数来进行判断所以,我们可......
  • 题解 CF1719B
    题解CF1719B这个题观察样例,可以发现,被选中的两个数,一定是相邻的两个数。所以,我们只需要先循环一遍,看看有多少数满足,然后判断是否等于n。如果等于说明可以,先输出YES......
  • 题解 SP18965
    题解SP18965题目大意:奶牛很厌烦等待,奶牛i在它的截止时间$d_i(1\leqd_i\leq10,000)$前挤\(g(1\leqg_i\leq1000)\)的奶,否则将不能挤奶。时间t开始时为0,......
  • 题解 CF518B
    题解CF518B这个题最暴力的做法就是对于每个\(s_i\)都在b字符串里扫一遍但是\(s.len\leq2\times10^5\)所以肯定过不了但是我们思考一下,这里的字母对应其实可以......