其他分享
首页 > 其他分享> > 正睿暑期集训1

正睿暑期集训1

作者:互联网

DP

P1896 [SCOI2005]互不侵犯

考虑状压,然后枚举下一行,大概在 \(5000^2\) 的样子。

然后轮廓线可以优化到 \(O(poly(n)\times 2^n)\) 的复杂度。

CF1238E Keyboard Purchase

设 \(f(s)\) 表示目前已安排了字符集 \(s\) 的顺序(前 \(|s|\) 个),然后假定其他的字符全部在最后面的(\(m+1\) 位置)的最少时间。设 \(g_{s,t}\) 代表 \(s,t\) 作为相邻的字符出现了几次。

\[f(s)+(m-|s|)\sum_{i\neq c} (-1)^{[i\in s]}g_{h,c}\to f(s\cup c) \]

[竟然过编译后直接过样例+AC!开心]

https://codeforces.com/contest/1238/submission/124022949

P4127 [AHOI2009]同类分布

考虑枚举数位和(最多180),然后直接数位DP即可。

P7609 [THUPC2021] 游戏

相当于要你求将 \(n\) 拆分成第 \(i\) 堆大小不超过 \(a_i\) 且所有的异或和不为 \(0\) 的方案数(补集转换一下变成求=0)。考虑二进制拆分,用状压维护每一堆是否在前面是紧逼着上界的。
\(f(i,s,k)\) 表示数位DP到第 \(i\) 位,紧逼上界的集合为 \(s\),从低位到高位有 \(k\) 的进位。

转移我们发现只要针对枚举那些被卡着的上界即可,其余的用组合数搞一搞(枚举剩下的数中的 \(1\) 的个数,然后直接组合数计算)。

https://loj.ac/s/1202880

标签:暑期,上界,枚举,正睿,然后,https,集训,DP,数位
来源: https://www.cnblogs.com/TetrisCandy/p/15073479.html