T2炸了。
T1
原题。
考虑建成(trie)。
然后再每个(Trie)节点挂一个结尾链。
然后依次加入并且使得(Trie)的父子之间连边即可。
T2
(MIM)的题。
设:(S[i][S])为从1出发,到达(i),不经过重复节点,经过的结点集合为(S)的全部路径方案。
然后直接用(MIM)合并即可。
T3
60分的暴力很好写。
考虑正解。
首先二分答案。
考虑(check)
对于每一个位置设(dp[i][j][k])为第(i)个点的子树中i进入时花费为(j),出去时花费为(k)是否存在。
空间不允许。
直接开成二元组。
然后两个儿子排序之后用单调指针合并。
最终任何一个节点的大小不会超过所有叶子节点的个数乘2.
这样直接判断根节点是否存在子树即可。
T4
期望题。
首先从0开始编号,方便取模。
[dp[i][j]$$表示剩下$i$个人,最后一枪打在$j$身上,0号存活的概率的期望。
$$dp[1][0]=1$$,$dp[n][(k-1)%n]$是答案。
考虑如何$dp$,枚举被打的这个人是否死亡。
$$dp[i][j]=egin{cases}&frac{1}{2}(dp[i-1][j+k-1 mod (i-1)]+dp[i][j+k mod i])&j>0\&frac{1}{2}dp[i][j+k mod i]&j=0end{cases}]
因为0号不能死。
然后发现这个转移是个图。
缩点之后变成了(DAG)。
然后 对于若干个环内进行高斯消元的话再进行拓扑图(dp)即可。
这样复杂度最劣是(O(n^4))的。
考虑这个图中只含有简单环((n)个点(n)条边的环)。
这种情况是可以直接系数递推的。
但是由于转移实在是太过简单我就直接给展开了。
观察(dp)转移。
我们发现转移成环一定是同层转移。
设转移的环的点个数为(a),那么:(ak=lcm(i,k))
也就是说:
[a=frac{i}{gcd(i,k)}
]
同时注意到环不相交,所以环的个数:
[t=frac{i}{frac{i}{gcd(i,k)}}=gcd(i,k)
]
对于每个环分别系数递推即可。
然后写一下直接展开的式子:
[dp[i][j]=frac{dp[i][j]}{2^a}+sumlimits_{l=1}^{a}frac{dp[i-1][j+lk-1 mod (i-1)]}{2^l}
]
消项得到:
[dp[i][j]=frac{2^a}{2^a-1}sumlimits_{l=1}^{a}frac{dp[i-1][j+lk-1 mod (i-1)]}{2^l}
]