A. 铁轨建设

暴力插头dp+网络流判断可行性,可以拿到85分。

然而这个题看起来就很像无限之环,只要稍微改一下建图就好了。

然而这个建图还蛮难想到的。

 

B. 圈地游戏

因为不会做+看不懂题解+std太长,所以咕掉了。

 

C. 组合数学

70分部分分:考虑到状态数很少,直接暴力状压dp就好了(可以用vector+map记录状态)。

然而题解第一步的转化题意就很神仙:

考虑n种球,并且第i种有$a_i$个,每个球有不同的编号,总共有m个球。

现在将m个球排成一行,要求对于每种球,1号球应当排在2~$a_i$号球中每一个球的前面。

显然这个玩意等于m的阶乘除掉每个$a_i$,表示只对一号球在最前面施加限制。

然而上述简单的式子与题中给出的式子并不贴近,还要继续进行拟合。

考虑枚举一个长度为n的排列,表示每种球的1号的球出现的位置的排名。

因为确定了一个排名,限制可以继续进行施加,这个时候我们发现已经成功拟合出了前缀和的效果。

然而与题中的式子还差了一点,也就是对于最后一种球,并不需要施加限制。

所以问题可以转化为求m个球,满足除了最后一种球,其他种球标号为1的球在其他标号的球前面的方案数。

这个玩意可以通过容斥来求。

因为最后一种球不受限制的特殊性,现在枚举最后一种球,设为$last$,这种球的第一次出现的位置称为$pos$。

设$f_i$表示钦定$i$种球放到了$pos$的后面。

$g_i$表示恰好$i$种球放到了$pos$的后面。

显然我们只要求$g_0$,这个玩意容斥就好了。

枚举钦定放到$pos$后面的组合$b$,可能放到左面的集合为$c$。

有$f_i=a_{last}\frac{(t+a_{last}-1)!}{\prod b_j}*\binom{m-pos}{t+a_{last}-1}*\frac{(m-t-a_{last})!}{\prod c_j}$。

两边的项分别表示内部的排序,中间乘的组合数表示将两部分合并。

然而枚举组合的复杂度仍然没戏,然而本题中组合的贡献较为简单,所以考虑背包处理这个玩意就好了。