随笔分类 -  dp-状压

摘要:题目描述: 题解: 考虑到一个学术只能看到同一行或者前一行同学的试卷,具有一定的顺序,考虑动态规划。考虑状压dp,定义dp[i][j]表示到i行为止,第i行状态为j时的 最大可坐学生个数,其中j用二进制展开,为1的位置表示坐了学生。状态转移方程为dp[i][j] = max(dp[i-1][k]+k 阅读全文
posted @ 2020-02-12 16:37 猪突猛进!!! 阅读(290) 评论(0) 推荐(0)
摘要:题意:中文题。。。 题解:状态比较多,可以说是状压的基础题吧,我们定义dp[i][j],j为一个二进制数,每位0表示接触过该物品,1表示没有接触过;j表示当前物品在谁手上。递推的顺序注意一下就好 ac代码: 阅读全文
posted @ 2017-10-24 18:50 猪突猛进!!! 阅读(246) 评论(0) 推荐(0)
摘要:大概题意是:有一个n*m的棋盘,在这个棋盘里边放k个旗子,要求每一行每一列都不能存在一对旗子相邻,问最后总共的方案数。 我们先来考虑个简单的,假如说只有一行,要求在这一行里边填充k个旗子,要求任意两个都不相邻,这个时候的dp应该怎么表示?这就很简单了,直接就是dp[i][j][x],代表已经到了第i 阅读全文
posted @ 2017-10-18 19:51 猪突猛进!!! 阅读(213) 评论(0) 推荐(0)
摘要:(先处理好基本的位运算的东西) 为了更好的理解状压dp,首先介绍位运算相关的知识。 1.’&’符号,x&y,会将两个十进制数在二进制下进行与运算,然后返回其十进制下的值。例如3(11)&2(10)=2(10)。 2.’|’符号,x|y,会将两个十进制数在二进制下进行或运算,然后返回其十进制下的值。例 阅读全文
posted @ 2017-09-02 21:14 猪突猛进!!! 阅读(2270) 评论(0) 推荐(2)