T1
dy讲的原题。
建议去翻\(DC\)大神的\(dp\)视频课。
T2
结论题。
一种想法是抽象为一个\(ans+1 n\)的矩阵。
每次从上面一段连续区间向底层走。
维护每一个位置最高的高度是多少就可以得到答案了。
这里用一个队列实现。
每一个位置的队列长度可以用来更新答案。
T3
生成函数题。
考虑容斥。
用走了几条输入边来容斥。
设\(dp[i][s]\)为当前在\(i\)点,经过的点集为\(s\)的方案数。
设\(f[s]\)为经过的点集为\(s\)的方案数。
设\(g[i][s]\)为经过了\(i\)条链的方案数。
设\(F[i]\)为经过了\(i\)条链再整张图上的方案数。
于是答案就是\(\sum\limits_{i=1}^{nk}(-1)^{nk-i}F[i]\)
因为经过的输入边个数是\(nk-i\)。
原文地址:https://www.cnblogs.com/Lrefrain/p/12628441.html
时间: 2024-11-03 10:17:13