正睿暑期集训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,集训,DP,数位 来源: https://www.cnblogs.com/TetrisCandy/p/15073479.html