dp,状压dp等 一些总结
也就作业几题而已,分析一下提醒
最重要的就是,记住,没用的状态无论怎么转移最后都会是没用的状态,所以每次转移以后的有值的状态都是有用的状态。
几种思考方向:
第一种:枚举当前的状态,转移成另外一个状态
第二种:枚举最终状态,然后通过另外一个枚举能转移到这种状态
①就是给你一个地图,然后这个图上面1的可以放东西,0的不能放,问一共有n个东西,每个东西只能放在特定的几个位置上,最多有几种?POJ2441
这个问题就是,因为地图之间的每个空间都是很大的,如果只是普通的dp是无法进行状态转移的,因此这道题就是状压dp(当然数据小的话也是一种标志),然后接下来就是从上到下,然后枚举状态即可。(把上面一行的所有的状态的可能性都放过来,是从上面一种状态转移到另外一种状态)
②所有的种类问题,给你一个地图,地图上面1可以放东西,0不能放,一个有多少种放法?(放东西的次数可以为1,2,3,4...到无穷)POJ3254
这道题目虽然和上面这个题目很像,但是由于可以任意放,所以又有点变化,和第一类的主要区别在于,目前所在的这个状态是上一种条件下能够满足加入这个状态的所有状态的和
③铺砖问题UVA11270
这一类问题是轮廓线dp,但是就是状压dp的变种。
就是给你一个矩阵n*m,再给你方块,问你有多少种情况能铺满整个矩阵?
我们就是不断的递推目前的dp,然后dp的每一维的长度都是1<<m,然后我们只需要每次从上往下移位,然后转移的时候判断能否往上、往左、往下、往右、或者不放即可(当然只是其中的几种,看你怎么推了),然后最后因为矩阵满足的状态是所有被覆盖嘛,因此答案就是你目前所在的pos和(1<<m)-1
④覆盖问题 POJ2836(当然个人感觉这道题目的数据太水了。。。我的代码以奇怪的姿势都过了。。。)
给一个图,图上有n个点(都在图的线的交叉处),然后有任意大小的矩阵无穷多个,要让这些矩阵铺满所有的点(每个点可以被覆盖多次),问,覆盖掉所有的点所需要的矩阵的最小面积是多少?
我们可以得到以下的情况,我们枚举n个点,制造n*n个矩阵,然后分别要知道矩阵内部(含边界)有几个点,最后dp[s]得到就可以了
⑤罚时问题 HDU1074(逆向思考有时是dp的一把刀韧)
一个人作业没做完,每个作业有限定的期限,但是如果你不在这个限定的期限内做完的话,每过一天扣一分,然后给你n门科目,怎么做才能让自己的分数损失为最小?
首先这个是一维的状压DP,一维的状压DP有如下特点:之前的状态转移了以后就没有其他作用了
然后采用一维有以下几个特征:数组中保存的是之前的状态,更新的是目前的状态
状压dp里面很需要剪枝,然后一下有几种剪枝的可能性
①先枚举状态,再枚举所需要的另外一维。所以这个不剪枝的复杂度是O(状态的种类*另外一维的大小),然后这个时候把没用的状态给continue了就好了,那么多的状态里面肯定会消去很多种状态的,所以复杂度会下降的很快 。例如POJ2441
②如果你需要枚举之前的状态和目前所在这一行的状态的话,单纯的暴力枚举是TLE的。这个时候题目一般会告诉你每个状态之间都会有条件,而且这个条件都会把剩下来的状态变得很小,然后再暴力就好了。例如POJ3254
dp,状压dp等 一些总结的更多相关文章
- 【BZOJ】1076 [SCOI2008]奖励关 期望DP+状压DP
[题意]n种宝物,k关游戏,每关游戏给出一种宝物,可捡可不捡.每种宝物有一个价值(有负数).每个宝物有前提宝物列表,必须在前面的关卡取得列表宝物才能捡起这个宝物,求期望收益.k<=100,n&l ...
- CCF 201312-4 有趣的数 (数位DP, 状压DP, 组合数学+暴力枚举, 推公式, 矩阵快速幂)
问题描述 我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次. 2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前. 3. 最高 ...
- hdu 4352 "XHXJ's LIS"(数位DP+状压DP+LIS)
传送门 参考博文: [1]:http://www.voidcn.com/article/p-ehojgauy-ot.html 题解: 将数字num字符串化: 求[L,R]区间最长上升子序列长度为 K ...
- [转]状态压缩dp(状压dp)
状态压缩动态规划(简称状压dp)是另一类非常典型的动态规划,通常使用在NP问题的小规模求解中,虽然是指数级别的复杂度,但速度比搜索快,其思想非常值得借鉴. 为了更好的理解状压dp,首先介绍位运算相关的 ...
- 状态压缩dp 状压dp 详解
说到状压dp,一般和二进制少不了关系(还常和博弈论结合起来考,这个坑我挖了还没填qwq),二进制是个好东西啊,所以二进制的各种运算是前置知识,不了解的话走下面链接进百度百科 https://baike ...
- 洛谷 P3343 - [ZJOI2015]地震后的幻想乡(朴素状压 DP/状压 DP+微积分)
题面传送门 鸽子 tzc 竟然来补题解了,奇迹奇迹( 神仙题 %%%%%%%%%%%% 解法 1: 首先一件很明显的事情是这个最小值可以通过类似 Kruskal 求最小生成树的方法求得.我们将所有边按 ...
- 51nod 1673 树有几多愁(链表维护树形DP+状压DP)
题意 lyk有一棵树,它想给这棵树重标号. 重标号后,这棵树的所有叶子节点的值为它到根的路径上的编号最小的点的编号. 这棵树的烦恼值为所有叶子节点的值的乘积. lyk想让这棵树的烦恼值最大,你只需输出 ...
- BZOJ3836 [Poi2014]Tourism 【树形dp +状压dp】
题目链接 BZOJ3836 题解 显然这是个\(NP\)完全问题,此题的解决全仗任意两点间不存在节点数超过10的简单路径的性质 这意味着什么呢? \(dfs\)树深度不超过\(10\) \(10\)很 ...
- SCUT - 254 - 欧洲爆破 - 概率dp - 状压dp
https://scut.online/p/254 思路很清晰,写起来很恶心. #include<bits/stdc++.h> using namespace std; #define l ...
- bzoj1076: [SCOI2008]奖励关(期望dp+状压dp)
1076: [SCOI2008]奖励关 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2989 Solved: 1557[Submit][Statu ...
随机推荐
- Eclipse安装颜色主题,个性化你的IDE,让你的IDE焕然一新
我们都知道eclipse默认的颜色主题是白色的背景,但是如果想改变代码编辑区的背景颜色,需要怎么办呢? 今天给大家介绍一个非常赞的eclipse,可以很方便的根据自己的需求选择喜欢的颜色主题,其他的不 ...
- [C++] Copy Control (part 1)
Copy, Assign, and Destroy When we define a class, we specify what happens when objects of the class ...
- PCB各层介绍及AD软件画PCB时的规则
好久没画过板了,最近因为工作关系,硬件软件全部得自己来,不得不重新打开闲置很久的AltiumDesigner.以前做过点乱七八糟的笔记,本来想回头翻看一下,结果哪儿也找不到,估计已经被不小心删掉了. ...
- iOS- 如何从Boujour里解析出IP地址(sockaddr *的解析)?
1.前言 之前有网友跟我留言说到: 如何从Boujour 解析完的数组里解析出ip地址? 因为Boujour本身解析完毕之后的addresses是一个数组 那我们如何从这个数组里解析出我们需要的IP地 ...
- <Android>tab选项卡
1.继承TabActivity实现 a) 在布局文件中使用FrameLayout列出Tab组件及Tab中的内容组件 b) Activity要继承TabActivity c ...
- lol人物模型提取(四)
在淘宝上联系了一个3d打印服务的卖家,他要我转成stl.obj.xt.xst.igs任意一种格式给他发过去,我就把它转成了obj格式给他发过去了. 然后他那边打开是这样的,没有贴图,看上去模型 ...
- 单行文字溢出和多行文字溢出省略号显示的CSS样式
单行文字溢出,CSS样式 <h6 style="width:70px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis ...
- activeMQ 讲解及实战
#### 软件架构项目中需要用到activeMQ 下载地址:http://activemq.apache.org/download.html #### 安装教程需要安装jdk环境activeMQ免安装 ...
- dubbo+zk+maven的那点事
1.服务端建议使用xml方式进行服务暴露,可读性更高: 2.消费端不能直接引入service模块,而是通过引入service-api模块来使用服务端的服务,因为这不是单体应用: 题外话:dubbo是一 ...
- AC自动机裸题
HDU 2222 Keywords Search 模板题.对模式串建立AC自动机然后在trie树上找一遍目标串即可. # include <cstdio> # include <cs ...