2020.08.04【省选B组】模拟 总结

估分:(100 + 100(假) + 0 = 200)
考场:(100 + 20 + 0 = 120)
估分(TM)假了。。。(T2)考虑不全。。。

(T1)

这道题就是个裸的可持久化(trie)吧。。。
我们选择时就是贪心从高位到低位选即可。

(T2)

一开始找出一个错误的结论。。。
以为这棵树一定是多个点并到唯一一点再到多个点的这种情况。
然而原来并非如此,而是一种看上去有多个根的树。。。
(GG),正解似乎也是组合数?求法类似?
正解考虑的明显比我的要全面的多了。。。
我们发现这是一棵树,而树的边的方向可以改成权值来判断。
我们设(f[i][j])表示对于(i)节点在子树中拓扑序排在(j+1)的位置上的方案数。
则我们转移分两种情况讨论(边的方向)
对于(son > fa)
我们需要让(fa)在前,(son)在后。
则可以:(f[fa][j+k]=∑f[fa][j]*(∑_{l=k}^{siz[son]-1}f[son][l])*C(j,j+k)*C(siz[fa]-j-1,siz[fa]-j-1+siz[son]-k))
而对于(sin < fa)
则是:(f[fa][j+k+1]=∑f[fa][j]*(∑_{l=0}^{k}f[son][l])*C(j,j+k)*C(siz[fa]-j-1,siz[fa]-j-1+siz[son]-k))
如此转移即可。对于转移里面的(∑)可以处理前缀和后缀和快速得到。

(T3)

题意都没有看懂。。。
真的没想到菜还可以吃半份、(1/3)份这样子的。。。
正解似乎是高斯消元。

没想到相比(T2),我竟然先打了(T3)

总结

想题时要考虑周全,要把所有情况都考虑到。
还有就是题目大意一定要看懂啊。。。想想不是数论那是否是小数的呢?

转载需注明出处。
原文地址:https://www.cnblogs.com/jz929/p/13433091.html