摘要: 一道很妙的状压dp,差不过做过才会,数组设置的很妙也很难 我们对 T 字符串进行考虑 首先T字符串每一位 只能是小写字母。 所以我们可以先预处理 T字符串每一位 为某个小写字母时,对应到S字符串集里面,能匹配那些S字符 令f[ i ][ j ]为T字符串第 i 位,为 j 小写字母时,对应到S字符串 阅读全文
posted @ 2023-03-27 16:31 QAQ啥也不会 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 这道题跟 P3092 [USACO13NOV]No Change 很像,比较妙的状压dp 首先M<=20,由这一部分可以从状压入手 首先令dp[i]为状态为 i 时,最少的出队人数 我们知道了 i 的状态,让 i 中的所有队都尝试放在最后排 现在我们要让 j 放在最后排,那么我们已经知道了dp[i^ 阅读全文
posted @ 2023-03-27 15:58 QAQ啥也不会 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 一道很妙,也挺有技巧的状压dp题。 我们从k入手,k的范围很小,且本题是按顺序购买的。 接下来是本题的核心:dp[i]是状态为i时,最多能买多少物品数 接下来是dp的状态转移: 我们知道 i 的状态有那些为1,我们把第 j 个钱放在最后花,然后已经知道了 dp[ i^(1<<j) ] 的最优解,便可 阅读全文
posted @ 2023-03-27 15:35 QAQ啥也不会 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 首先是考虑dp状态的问题:这道题主要处理的是 上行和上上行的状态。 假如我们令dp[i][x]来表示状态,仅用dp[i-1][y]来转移是不够的 所以我们dp状态不仅要有本行的状态,还要用上一行的状态。 令dp[i][x][y]为第i行的状态为x,第i-1行的状态为y时,最多的炮兵个数 然后便是预处 阅读全文
posted @ 2023-03-27 15:18 QAQ啥也不会 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 状压dp模板题: dp[i][j][k]为到了第i行,第i行的状态,一共有多少的国王。 预处理出第i行的所有可行的状态,显然不能有国王相邻,也不能有超过k个国王的可能 dp转移: 显然dp[ i ][ x ][ k ]是上一行情况累加过来: dp[i][x][k]+=dp[i-1][y][k-pop 阅读全文
posted @ 2023-03-27 15:01 QAQ啥也不会 阅读(7) 评论(0) 推荐(0) 编辑