首页 > 其他分享 >取胜 题解

取胜 题解

时间:2024-04-16 12:44:23浏览次数:19  
标签:结点 right frac pT 题解 钦定 ge 取胜

很厉害的题,记录下

题意是随机一棵无根树,随一个根,每条边存在(能走通)的概率为 \(p\),以根为起点,每次一方选择当前点的一个能走通的儿子走过去,问先手必胜的概率.

容易发现可以当成有根树.

用 \(F(x)\) 和 \(G(x)\) 表示必胜树和必败树的 egf,有

\[\begin{cases} F(x) = xe^{F(x)}\left(e^{G(x)}-1\right)\\ G(x) = xe^{F(x)} \end{cases} \]

记有根树的 egf 为 \(T(x)\),根据经典结论有 \(T(x) = \sum_{i\ge 1}\dfrac{n^{n-1}}{n!}x^n\),记其复合逆为 \(H(x) = xe^{-x}\).

由 \(T(x) = F(x) + G(x)\),得 \(T(x) = G(x)e^{G(x)} = -H(G(x))\),于是 \(G(x) = -T(-T(x))\).

答案为

\[1 - \frac{n!}{n^{n-1}}[x^n]\frac1p G\left(pxe^{(1-p)T(x)}\right) \]

\[[x^n]G\left(pxe^{(1-p)T(x)}\right) = [x^n]G\left(pT(x)e^{-pT(x)}\right) = [x^n]G(H(pT(x))) = [x^n]-T(-T(H(pT(x)))) = [x^n]-T(-pT(x)) \]

接下来考虑求 \([x^n]T(-pT)\),先展开一层

\[\begin{split} [x^n]T(-pT) &=[x^n]\sum_{i\ge 1} \frac{i^{i-1}}{i!}(-pT(x))^i\\ &=\sum_{i\ge 1} \frac{i^{i-1}}{i!}(-p)^i[x^n]T^i(x) \end{split} \]

考虑求 \([x^n]T^i(x)\),施 Lagrange 反演

\[[x^n]T^i(x) = \frac{i}{n}[x^{n-i}]e^{nx} = \frac{i}{n}\frac{n^{n-i}}{(n-i)!} \]

代入得

\[[x^n]T(-pT) = \sum_{i\ge 1} \frac{(-pi)^i n^{n-i-1}}{i!(n-i)!} \]

那么答案为

\[1 + \frac1p\sum_{i\ge 1}\binom{n}{i}\left(\frac{-ip}{n}\right)^i \]

到这里,这道题就结束了,然而...

如此优美的题目,想必有组合意义吧!

考虑对必败树计数,必败树根的所有子树一定均为必胜树,容斥为 所有树的方案数-钦定为必败树的方案数,于是加入每棵子树时分是否钦定两种情况分别加入,被钦定的结点可以继续钦定其孩子. 那么所有被钦定的结点形如一棵树,每个被钦定的结点又和其下面挂的所有未被钦定的结点构成一颗树,那么形如一个 \(n\) 个点 \(k\) 棵树的森林被一棵 \(k\) 个结点的树串了起来,这与 \(G(x) = -T(-T(x))\) 相对应. 每条边存在的概率为 \(p\),在该容斥里的意义即为:除根结点外,一个点可以被钦定的概率为 \(p\),于是带上概率后的必败树的 GF 即为 \(-\frac1p T(-pT(x))\).

(感觉直接想到组合意义的有点外星人了)

标签:结点,right,frac,pT,题解,钦定,ge,取胜
From: https://www.cnblogs.com/0922-Blog/p/-/just-useless-algo

相关文章

  • 开机后mysql服务未启动问题解决
    问题:mysql的启动类型设置了自动,但是电脑开机后还是需要手动启动。 解决方法:一、Win+R快捷键弹出运行框 二、输入regedit后回车 三、地址栏内输入计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control后回车 四、找到Control入径后,新建一个名称为ServicesPipe......
  • [题解][2021-2022年度国际大学生程序设计竞赛第10届陕西省程序设计竞赛] Type The Str
    题目描述给定n个字符串,有以下几种操作:打出一个字符,花费1。删除一个字符,花费1。复制并打出一个之前打出过的字符串,花费k。求打出所有n个字符串的最小花费。(注意,打出顺序和字符串输入的顺序不必相同)题解显然,操作3需要算字符串的最长公共子序列来处理。这个问题可以转换为......
  • P4298 [CTSC2008] 祭祀 题解
    P4298[CTSC2008]祭祀题解给定DAG,求最长反链长度,最长反链方案,有多少个点可以成为反链上的点。Case1熟知Dilworth定理:偏序集的最长反链的长度等于最小链划分。因为偏序集有传递性,所以我们也需要对DAG做一遍传递闭包。这样可以套用Dilworth定理,最小链划分等于点数减......
  • [题解][2021-2022年度国际大学生程序设计竞赛第10届陕西省程序设计竞赛] Hash
    题目描述给定字符串T,要求求字符串S,满足以下条件:S是T的前缀S和T运行某段代码的哈希值相同(代码见下)T只包含小写字母S和T的长度差不超过50哈希代码://LanguageC++14longlongmod=5999993;longlonggethas(strings){longlongret=0;for(charc:s)ret=......
  • PGSQL 问题解决
    1服务无法启动 这里更改安装目录bin下面例如E:\WorkingSoftware\PostgreSql\16\bin更改权限,下面都改下 2  安装时提示database出错,就初始化下执行以下命令E:\WorkingSoftware\PostgreSql\16\bin\pg_ctl.exe-DE:\WorkingSoftware\PostgreSql\16\dat......
  • 2024小学组AHOI赛后题解
    观看建议调成浅色模式(右下角图标)写前扯一下这次省赛可谓是人才辈出啊。结束前一个半小时就交卷,可见这次考试的难度。后我问他们是不是很有信心AKXX:做了前两题,后两题崩溃了。。。好吧,其实第三题没那么难,不过AK的真没有,听说没有一个人做对。接下来带大家看看这几题。(记得,看......
  • CF1253F Cheap Robot 题解
    首先建立一个超级点\(S\),对于每一个可以充电的点\(u\)都建立一条从\(S\tou\)的边权为\(0\)的有向边。从这个超级点\(S\)开始跑一遍最短路算法,就可以得到每一个点\(u\)至少需要花费多少的电量才可以走到一个充电点。令\(D_i\)表示\(i\)号点最少花费多少可以到一个......
  • LlamaIndex 常见问题解答(FAQ)
     提示:如果您尚未完成,请安装LlamaIndex并完成起步教程。遇到不熟悉的术语时,请参考高层次概念部分。在这个章节中,我们将从您为起步示例编写的代码开始,展示您可能希望针对不同应用场景对其进行的常见定制方法:python fromllama_index.coreimportVectorStoreIndex,Simp......
  • P4383 林克卡特树 题解
    题意:给定带边权的树,要切掉\(k\)条边,再任意连上\(k\)条边权为\(0\)的边。问最优策略下得到的树的边权最大值。\(n,k\le3\times10^5\)。参考【问题转化】切掉\(k\)条边后会变成\(k+1\)个连通块,之后的连边一定会把这\(k+1\)个连通块的直径连起来。所以相当于问把......
  • [题解](A-G)Atcoder Educational DP Contest(更新中)
    AtcoderEducationalDPContest\(\textbf{A.Frog1}\)对于一块石头\(i(3\lei\leN)\),\(i-1\)和\(i-2\)均能到达。用\(f[i]\)表示跳到第\(i\)个石头用的最小体力消耗:\[f[i]=min(abs(h[i]-h[i-1])+f[i-1],abs(h[i]-h[i-2])+f[i-2])\qquadi\ge3\]时间复杂度\(O(n)\)。......