状压DP
文章平均质量分 80
FainTwinkle
这么好的故事,你可别演砸了。
展开
-
POJ 2923 Relocation (状压DP+背包)
题目大意 这里有两辆车,每个车各自能装一定重量的物品,这里有N个物品,物品有各自的重量,每次要用两个车一起运物品,问你最少运的次数。 思路: 先预处理出来那个状态一次是可以运送的,把这些状态储存到sta的这个数组。 剩下的背包一下就差不多了,这里背包的是状态,状态转移方程式是: dp[ j | sta[i] ]=min( dp[j | sta[i] ] , dp[j]+1) AC代码:原创 2016-03-22 21:14:45 · 292 阅读 · 0 评论 -
UVA 11825 Hackers' Crackdown(状压DP)
这道题的题意就是有n个点,每个点都有邻居,问你依靠这些关系,一共可以组成几个完整的网络 思路 这道题因为数据最大才16,所以可以用状态压缩去做,0代表不经过,1代表经过。这样枚举肯定不会超时的,然后用cover数组记录的是每个状态的下一状态。然后状态转移方程就好写了,F(s)=max(F(s),F(S^S0)这个表示的是当前状态的剩余没用到的点+1) AC代码: /* **********原创 2016-05-25 21:49:54 · 264 阅读 · 0 评论 -
POJ 1185炮兵阵地(状压DP+优化)
这题是个十分经典的状态压缩DP了 如果直接状态压缩,每一行都是 2^10的复杂度,爆炸。 所以可以根据题目的一些性质来进行优化,这里他说每一个炮弹周围两个格子不能放炮弹了。所以就可以把一些没有用的状态处理掉。 只留下的有用的状态,这里可以用一个初始化来进行。stu这个数组来记录所有可能出现的状态,这个预处理一下就好了,num表示每个状态中1的个数。 然后就暴力dp就好辣! dp[ i ]原创 2016-07-29 20:00:15 · 266 阅读 · 0 评论 -
hdu5816Hearthstone(状压DP)
Hearthstone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 728 Accepted Submission(s): 355 Problem Description Hearthstone is a原创 2016-08-11 00:50:40 · 399 阅读 · 0 评论