「考试」省选39

非常值得反思的一场考试
考完改了20分钟就\(AK\)了。。。
\(T2\)的预处理处理到了\(n-2\)???
处理到\(n-1\)\(A\)了。
\(T3\)的一个循环写错了位置,往下调了一格就\(A\)了。???
自闭场。
明天就\(noi\ online\)了。。
诶。。状态什么时候能来啊。
行吧,就这样吧。

T1
讲过。
\(a_i,b_i\)连边。
将会形成环和链,统计一下环的个数。
然后链分为三种。
缩掉中间的那些非0部分可以分成:
\(0\rightarrow 0\)
\(0\rightarrow x\)
\(x\rightarrow 0\)
设分别有\(A,B,C\)个。
然后枚举一下第二种的个数。
看他们单独组成的环有多少个:

\[f(i)=\sum\limits_{j=i}^{B}\begin{bmatrix}i\\j\end{bmatrix}\binom{B}{j}\frac{(A+B-j-1)!}{(A-1)!} \]

为什么要-1呢?
意思是说我把这个位置以后作为划分的部分全作为这个\(0\rightarrow 0\)的附属品。
然后这样相同的板子一共有\(A-1\)个。
放进去一起排列。
然而这些板子是一样的。
所以除掉了\((A-1)!\)
相当于元素各不相同的插板。
然后设第三种单独成环的贡献为\(g(i)\)
所以:

\[g(i)=\sum\limits_{j=i}^{C}\begin{bmatrix}i\\j\end{bmatrix}\binom{C}{j}\frac{(A+C-j-1)!}{(A-1)!} \]

最后是\(0\rightarrow 0\)的贡献了。

\[h(i)=A!\begin{bmatrix}i\\A\end{bmatrix} \]

因为这\(A\)个物品的取值是不一样的。
然后把他们全都卷到一起就可以了。
复杂度\(O(n^2)\)

T2
其实挺简单的。
就是一个容斥。
首先发现三条边均不存在的条件不是很好满足。
然后可以搞一个容斥。
答案就是:
无限制贡献-至少有一条边的贡献+至少有两条边的贡献-至少有三条边的贡献。
第一个直接枚举每个位置不限制然后线性计算即可\(O(n)\)
第二个枚举边然后计算\(O(m)\)
第三个枚举中间点然后枚举出边计算\(O(m)\)
第四个三元环计数\(O(m\sqrt{m})\)
这样就可以出答案了。

T3
一个\(exsam\)
比较难写不好调。
然后思路上挺简单的。
\(substring\)那个题复杂化一点就行了。
建一个\(exsam\)就可以解决第一个和第三个问题。
第二个和第四个可以用\(LCT\)维护\(parent\)树,每个节点维护一下对于不同串的\(endpos\)集合大小就可以。
具体来说。
第二个操作就找到当时的那个前缀节点。
然后查询在当前\(parent\)树上当前然后查询一下某一个串的\(endpos\)集合大小。
第四个操作就直接在树上跑,然后最后跑到某个节点,把上面每个串的\(endpos\)集合大小取一个\(max\)即可。

posted @ 2020-03-06 14:59  Lrefrain  阅读(107)  评论(0编辑  收藏  举报