另一道不知道哪里来的容斥题

考虑只有0和2怎么做。
求出有多少种区间的选择方法数x。
ans=x^m。
带上1以后,有一个暴力的做法,直接容斥那些1最后没有变成0,然后把这些看成2来做。
复杂度O(2^n)。
有一个更优秀的做法,可以用dp去算这个容斥系数。
dp[i][k],k那一维是存了有多少个可行区间,显然K<=n^2。
每次转移的时候
遇到0直接复制。
遇到1决策是否把它变成2,转移的时候乘上-1。
遇到2考虑上一个2在哪里。
最后每一项直接m次方加起来即可。
复杂度O(n^4)。

猜你喜欢

转载自www.cnblogs.com/Creed-qwq/p/10343938.html
今日推荐