啊因为最近题实在是好啊,只能四五篇四五篇写了。
T1.
括号序列的确简单。
当我们维护左右$cnt$后。
到一个左括号的地方的话。
答案就是:
$$\sum\limits_{i=1}^{min(lc,rc)}\binom{lc-1}{i-1}\binom{rc}{i}$$
因为要固定一个来去重。
等价于:
$$\sum\limits_{i=0}^{n}\binom{n}{i}\binom{m}{i}=\sum\limits_{i=0}^{n}\binom{n}{n-i}\binom{m}{i}$$
这个东西其实是范德蒙恒等式。
它等于:
$$\binom{n+m}{n}$$
其实就是从$n$中选$n-i$个,从$m$中选$i$个,等价于从$n+m$个里面选$n$个。
考场上打了个表发现这个东西是生成函数:
$$f(x)=\sum\limits_{i=0}^{n}x^i$$
的几次幂的某项系数。
猛地想起来和之前某道前缀和的题相似。
这个函数的幂的系数全都是二项式系数!
然后就一分钟了无力会天。。。
想想这个函数为什么是二项式系数形式。
因为$f(x)$的意义很丰富。
而$f^n(x)[m]$的含义就是:
从小于等于的自然数里选出$n$个,使得加和为$m$的方案,那么这个东西其实就是$\binom{n+m-1}{n-1}$
也就是个插板了。
T2.
旁边$cbx$循环展开$A$了,但是其实正解又是$meet\ in\ the\ middle$。
其实更像$BSGS$...
预处理走$k$步和$k$百步的最短路即可。
复杂度就可以过得去了。
又被根号算法教做人。
T3.
和蚯蚓兄很类似了。
用队列代替优先队列。
每次从$15$个队头里选出最小的一个并$pop$,然后计数,然后分别加入$15$个队列中,要求让质因子从小到大加入,那么加入的编号只能是单调不降的,不然会重复。
T4.
记忆化搜索或者$dp$都可以$A$。
我采用了营长的$dp$,定义状态$dp[i][s]$为长度为$i$的序列状态为$s$的情况下的方案。
状态采用$8$进制压位,状态看似很多但是其实六个质因子的情况下状态数只有$7000*12$,四个只有$200*12$。
考虑一个更优秀的方式$dp$
我们发现第一位是没有用的。
因为在转移的过程中会让$s$变化,而且只向大变化,那么拿掉他。
状态就只有$7000$了,转移复杂度是$2^6$的,比大部分记忆化搜索的状态数要少一点,转移复杂度低一点。
详细说一下怎么$dp$
状态$s$代表六个质因子的状态,我们用$0-7$来分别代表:
$0$这一位没数占用。
$1-6$这一位编号为$1-6$的数占用。
$7$这一位有两个数占用了。
%%%营长状态定义。
这样的话就可以转移了。
枚举质因子集合转移。
当前一个质因子集合可以转移,当且仅当:
对应的每一个质因子所包含的被占用的数集合中有不超过一个不同数,且没有任何一个是7。
转移到的状态就是把为0的位置全部填成我的编号并且把有数的位置变成7。
可以解决问题。
T5.
概率算法了。
代入任何两个人的信息。高斯消元解出四个参量,然后代入$n$个人求解,看得到解决的是否超过了$n/2$个人,
容易发现这样失败的概率最高是$\frac{3}{4}$,那么解50次方程,全都失败的概率就是$\left(\frac{3}{4}\right)^{50}$
可以通过了。
原文地址:https://www.cnblogs.com/Lrefrain/p/11730102.html