动态规划-状压
ruclion
天上一日,地下十年
展开
-
最简单的小型铺砖问题
题意:1*2的砖可以铺,然后n和m小于15,有的地方不能铺,问一共有多少种铺法. 题解:铺砖的基本思路,状压表示对当前状态有用的状态,来进行转移.这里(1)我们先定用砖的左上来考虑,dp[i][j][s],表示该铺i,j了.(2)s表示的是有关的状态,j之前的i层一定铺了,但是i+1层不一定,要表示,j和j之后的只用看看i层有没有铺,然后枚举当前铺不铺,转移到下一个.原创 2015-06-19 10:33:09 · 934 阅读 · 0 评论 -
Connect
题目描述:C. ConnectTime Limit: 5000msMemory Limit: 65536KB 64-bit integer IO format: %lld Java class name: Main Submit Status PID: 39565 ConnectYou are playing a solitaire puzzle called “Connect”, w原创 2015-10-09 15:47:58 · 288 阅读 · 0 评论 -
Sichuan Province 2012 F Fold The Paper
题目描述:F. Fold The PaperTime Limit: 2000msMemory Limit: 65535KB 64-bit integer IO format: %lld Java class name: Main Submit Status PID: 24254 You have a rectangular piece of paper that is divided原创 2015-10-08 15:08:48 · 358 阅读 · 0 评论 -
HDU 5117 Fluorescent
题目描述:DescriptionMatt, a famous adventurer who once defeated a pack of dire wolves alone, found a lost court. Matt finds that there are N fluorescent lights which seem to be the stars from the firmament原创 2015-09-16 17:10:55 · 399 阅读 · 0 评论 -
UVALive 6914
题目描述:一个8*8的格子.给你一个最多可以放的障碍物的数目.一个人只能往下或者往右走.问把00点和(n-1)(m-1)点能够隔开的总放障碍的方法数.题解:首先我们注意到n很小,可以状压. 如果我们不状压怎么样?f[i][j][k]隔断到i,j点,用了k个障碍. 那么i,j放不放障碍呢?放的话,好转移.不放的话,我们要考虑它的上方和左方放不放点.有一个放和两个都放好弄.两个都不放就不会了. 于是我原创 2015-07-27 10:50:41 · 428 阅读 · 0 评论 -
poj3411
题目描述:经过一条路有代价,但是多少取决于之前是否经过一个点,求1到n最小花费。题解:首先到达某一个点,还需要状压一个以前走过什么点.其次,因为要走回头,因此更新的时候不能普通的扫sta,然后走,因为不知道重复的到底有没有必要走,不好.所以用松弛的spfa,把sta和v当做一个统一放到队列里面,然后spfa的dp,直到队列为空.重点:图论会走回头路,因此用spfa上的dp代码:#include <i原创 2015-06-26 23:39:03 · 320 阅读 · 0 评论 -
poj1795
题目描述:用长度最短的的字符串来使得可以覆盖已经给出的字符,加一个为开头状态。一共有15个字符串,每个串长度<=200题解:字符串拼接,实际上就是可能有相邻字符串有重复的可以不再弄.重复的多一点就变成了包含.本来是15!的复杂度.但是我们发现其实出去最后一个串,那么我们再接上最后一个串的代价其实之和前面串的最后一个串有关(先叉一下:要想这样做,设i后面接j,那么j绝对不能把i给吃了,这样就会涉及到i原创 2015-06-26 16:31:30 · 636 阅读 · 0 评论 -
文章标题
题目描述:n×m场地,行不可相邻,上下不可相邻,场地中有不可选的地方,求可能数。题解:法一:矩阵上的dp,那么就一个格子一个格子的去看,需要考虑的状态仍然有上面的和左边的,其他的就不用判断了.那么复杂度是n*n*2^n,应该可以做,没有写..法二:提供了一个新的思路,每一行先处理出来可能合法的情况,就是相邻是间隔的二进制,那么直接枚举这一行怎么填,之后再检验,和上一行检验,和本行不能填的检验.这样是原创 2015-06-26 15:18:39 · 285 阅读 · 0 评论 -
poj2686
题目描述:有限车票去走城市,限定起点a,终点b,求最短时间。题解:重点:代码:原创 2015-06-26 11:49:50 · 339 阅读 · 1 评论 -
poj2836
题目描述:用面积和最小的矩形来覆盖给出的点,求最小的面积。预处理。题解:很好的一道题.用状压来表示哪些点被覆盖过了.之后就是用什么矩形来覆盖?因为矩形的先后顺序没有关系,因此当所有备选矩形出来之后就类似一个背包,矩形:所有两个点组成的矩形,最优解一定可以拆分成这样.因为这道题的特例,面积为0的不算,那么如果两个点在一条直线,必须把长或者宽从0变成1.并且顺便变就行(因为如果会影响到最终答案,一定有另原创 2015-06-26 16:03:18 · 411 阅读 · 0 评论 -
UVALive 7344 I - Numbered Cards
题目描述:You have N cards and each has an unique number between 1 and N written on it. In how many ways can you select a non-empty subset of the cards such that the number written on any two of your sele原创 2016-01-19 10:36:12 · 730 阅读 · 0 评论