动态规划专题(一)——状压DP
前言
最近,决定好好恶补一下我最不擅长的\(DP\)。
动态规划的种类还是很多的,我就从 状压\(DP\) 开始讲起吧。
简介
状压\(DP\)应该是一个比较玄学的东西。
由于它的时间复杂度是指数级的(但也足以吊锤\(DFS\)),所以状压\(DP\)题的数据范围一般都巨小。
前置技能:位运算
要想学习状压\(DP\),最好先去学一学位运算及其简单变换操作,因为位运算在状压\(DP\)中起到了很重要的作用。
核心思想
状压\(DP\)的核心思想在于用一个变量\(state(0≤state<2^N)\)来存储当前状态,而\(state\)二进制下的每一位都存储了一个信息:当前元素是否使用过。
当然,还有一些比较恶心的三进制、四进制状压\(DP\),主要思想和二进制是差不多的。
几道例题
其实,状压\(DP\)的主要内容大致也就是上面这些,下面放几道例题吧:
第一道例题:【BZOJ1076】[SCOI2008] 奖励关
一道比较恶心的期望\(DP\)。注意,期望一定要倒着推啊!不然就会像我一样调死。
第二道例题:【BZOJ1087】[SCOI2005] 互不侵犯King
一眼看去觉得是搜索,优化了很久之后才发现是状压\(DP\)。
第三道例题:【洛谷4772】灰化肥,会挥发
先\(BFS\)预处理,然后状压\(DP\)即可。
动态规划专题(一)——状压DP的更多相关文章
- 状态压缩动态规划(状压DP)详解
0 引子 不要999,也不要888,只要288,只要288,状压DP带回家.你买不了上当,买不了欺骗.它可以当搜索,也可以卡常数,还可以装B,方式多样,随心搭配,自由多变,一定符合你的口味! 在计算机 ...
- [转]状态压缩dp(状压dp)
状态压缩动态规划(简称状压dp)是另一类非常典型的动态规划,通常使用在NP问题的小规模求解中,虽然是指数级别的复杂度,但速度比搜索快,其思想非常值得借鉴. 为了更好的理解状压dp,首先介绍位运算相关的 ...
- 状态压缩动态规划 状压DP
总述 状态压缩动态规划,就是我们俗称的状压DP,是利用计算机二进制的性质来描述状态的一种DP方式 很多棋盘问题都运用到了状压,同时,状压也很经常和BFS及DP连用,例题里会给出介绍 有了状态,DP就比 ...
- 动态规划---状压dp
状压dp,就是把动态规划之中的一个个状态用二进制表示,主要运用位运算. 这里有一道例题:蓝书P639猛兽军团1 [SCOI2005]互不侵犯 题目: 题目描述 在N×N的棋盘里面放K个国王,使他们互不 ...
- 状压dp专题复习
状压dp专题复习 (有些题过于水,我直接跳了) 技巧总结 : 1.矩阵状压上一行的选择情况 \(n * 2^n\) D [BZOJ2734][HNOI2012]集合选数 蒻得不行的我觉得这是一道比较难 ...
- 动态规划晋级——POJ 3254 Corn Fields【状压DP】
转载请注明出处:http://blog.csdn.net/a1dark 分析:刚开始学状压DP比较困难.多看看就发现其实也没有想象中那么难.这道题由于列数较小.所以将行压缩成二进制来看.首先处理第一行 ...
- HDU5117 Fluorescent 期望 计数 状压dp 动态规划
原文链接https://www.cnblogs.com/zhouzhendong/p/HDU5117.html 题目传送门 - HDU5117 题意 $T$ 组数据. 给你 $n$ 盏灯 ,$m$ 个 ...
- 动态规划:状压DP
状压DP可以用在NP问题的小规模求解中(不理解,感觉和可以搜索的题很类似) 如果状态是个网格,数据范围很小,基本锁定状压DP 例题是BZOJ1725 题意是这样的,给定一个黑白图,然后种田,要求田与田 ...
- kuangbin专题十二 HDU1074 Doing Homework (状压dp)
Doing Homework Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
随机推荐
- hdu 2147 kiki's game(巴什博弈)
kiki's game HDU - 2147 题意:一个n*m的表格,起始位置为右上角,目标位置为左下角,甲先开始走,走的规则是可以向左,向下或者向左下(对顶的)走一格.谁先走到目标位置谁就胜利.在甲 ...
- 2017-9-26 NOIP模拟赛
NOIP 2017 全真模拟冲刺 ---LRH&&XXY 题目名称 那些年 铁路计划 毁灭 题目类型 传统 传统 传统 可执行文件名 years trainfare destroy 输 ...
- [Xcode 实际操作]三、视图控制器-(10)在Storyboard中使用图像视图控件
目录:[Swift]Xcode实际操作 本文将演示常用的图像视图控件在故事板中的使用. 打开故事板文件[Main.storyboard]点击选择视图控制器的根视图. 点击库图标,打开控件库面板. 在控 ...
- css3旋转立方体-_-
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- EOS 智能合约编写(一)
本文编写了一个简单的EOS智能合约,实现用户管理和资产管理,包括存钱,取钱,转帐的功能,旨在学习如何编写自己的EOS合约功能. 系统:Ubuntu EOS版本:v1.1.1 一.智能合约代码 ...
- Command模式(命令设计模式)
Command?? 把方法的调用用一个类的实例来承载,要管理工作的历史记录,创建这些方法执行的命令的集合,只需管理这些实例的集合即可,而且还可以随时再次执行过去的命令,或是将多个过去的命令整合为一个新 ...
- 判断当前用户是否在某个SharePoint组内
/// <summary> /// 判断当前登录人是否在sharepoint组中 /// </summary> /// <param name="current ...
- Luogu P4144 大河的序列 贪心+脑子
首先向颜神犇致敬...还是自己太菜,又不仔细思考,上来就翻题解$qwq$ 首先有一种贪心方法:即,$ans=2*max(dirty_i)$ 证明:若现在的答案为$ans$,考虑一个新的数$x$对答案的 ...
- 73th LeetCode Weekly Contest Domino and Tromino Tiling
We have two types of tiles: a 2x1 domino shape, and an "L" tromino shape. These shapes may ...
- Jmeter的BeanShell中报错:调用bsh方法时出错Error invoking bsh method: eval
报错内容:ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval In file: inline evalu ...