动态规划——状态压缩
文章平均质量分 84
XDU_Skyline
Everything is over, everything is just beginning.
展开
-
例题9-15 校长的烦恼 UVa10817
1.题目描述:点击打开链接 2.解题思路:本题利用集合上的动态规划解决。定义集合s1表示恰好有一个人教的课程,集合s2表示至少有两个人教的课程。定义d(i,s1,s2)表示已经考虑了前i个人时的最小花费(人物编号从0开始)。则不难写出状态转移方程: d(i,s1,s2)=min{d(i+1,s1',s2')+c[i],d(i+1,s1,s2)}; 上式中只有当i≥m时才会考虑第二项。对于这个原创 2015-02-16 15:00:01 · 944 阅读 · 0 评论 -
HDU 4427 Math Magic (2012年长春现场赛H题)
1.题目描述:点击打开链接 2.解题思路:本题要求寻找k个正整数,它们的和恰好是N,它们的LCM恰好是M的解的个数。可以设置一个三维的dp来解决。用dp(i,j,k)表示选择i个数,它们的和恰好是j,它们的LCM恰好是k的个数。那么答案就是dp(k,n,m)。不过这里介绍一种利用状态压缩思想求解的方法。 通过题意可以发现,N,M的范围都比较小,不超过1000,而1000之内的所有数的不原创 2015-08-27 00:04:23 · 1204 阅读 · 0 评论 -
POJ 2686 Traveling by Stagecoach
1.题目描述:点击打开链接 2.解题思路:本题是状压dp。根据题意,可以把当前手中拥有的车票和当前所在的城市看做一个状态,然后进行状态转移。因为票数是在不断减少的,因此构成的图实际上是一个DAG,可以通过简单的dp得到答案。时间复杂度为O(nm^2*2^n) 3.代码: #include #include #include #include #include #include #includ原创 2015-09-16 16:49:18 · 388 阅读 · 0 评论 -
HDU 5135 Little Zu Chongzhi's Triangles (2014年广州赛区现场赛I题)
1.题目描述:点击打开链接 2.解题思路:典型的状压dp题目,用集合S表示当前已经使用过的木棍的集合,那么有dp(S)=max{dp(S),S(i,j,k)+dp(S/{i,j,k})}。从小到大递推枚举集合即可。 3.代码: #include #include #include #include #include #include #include #include #include #i原创 2015-10-05 01:08:53 · 582 阅读 · 0 评论