E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
状态压缩dp
Vijos 1286 座位安排(
状态压缩DP
)
题目链接 先是一个转化,将n和m中较小的的为m这样状态数会小于1<<9。看题后,是嘛想法都啊没有。。看了DISUSS中有人提到这点。。。 写完,调了一下,尝试了几次,发现有两组过不了。想想极限数据,可能还是会爆__int64,然后乱搞改编一下,求组合数模版。。。水过了。。。 还是用STL中vector写的。。。以后还是用数组把。。。 1 #include <cstd
·
2015-11-12 09:22
OS
Vijos 1456 最小总代价(
状态压缩DP
)
题目链接 用二维数组表示,第一维表示状态,第二维表示此状态最后一个专递者。 状态转移为 if((~que1[j])&(1<<u))//开始这个判断想错了,一直RE。。。对位运算不熟啊。。 dp[que1[j]+(1<<u)][u] = min(dp[que1[j]+(1<<u)][u],dp[que1[j]][k]+p[k+1][u+1]);
·
2015-11-12 09:21
OS
Vijos 1193 扫雷(
状态压缩DP
)
题目链接 思路很简单。。。但是细节啊。。。。WA了好多次。。。 1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <string> 5 #include <ctime> 6 #include <cstdlib>
·
2015-11-12 09:21
OS
HDU 1565 方格取数(1)(
状态压缩DP
)
题目链接 水过的,就是普普通通的枚举上一层和这一层,应该可以加上队列优化,降复杂度。 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #define eps 1e-9 6 #define INF -100
·
2015-11-12 09:32
HDU
POJ 2411 Mondriaan's Dream(
状态压缩DP
)
题目链接 早就见过这个题,开始以为有公式的,推了几次没推出,后来知道这个题是
状态压缩DP
。最近开始看状态压缩,本想试着解出来,但是这个比那个牛吃草复杂多了。。。
·
2015-11-12 09:29
poj
POJ 3254 Corn Fields(
状态压缩DP
)
题目链接 看的这个博客,讲的很好,初学状态压缩,对位运算操作还不是很熟,有很多用法,然后就是这个题,开始想用队列优化一下,存上一层合法情况的下标的,老是RE不知为何。。改成暴力的找,居然0ms就过了,这让我情何以堪啊。。。 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring>
·
2015-11-12 09:28
Field
poj1185 炮兵阵地 经典
状态压缩dp
这个题目和上一个种玉米的是一个类型,都是状态dp,用二进制位来表示当前的一个状态值,只不过比上一个稍微复杂了一点,需要用三维的数组来保存当前state。 题目:在一个N*M的矩阵上布置炮兵部队,只有平原可以布置,然后每个炮兵部队都有一个攻击范围,它能够攻击到的区域:沿横向左右各两格,沿纵向上下各两格。 问:如何部署炮兵部队,在防止误伤的前提下(保证任何两支炮兵部队之间不能互相攻击,即任何一支炮
·
2015-11-11 18:24
poj
状压DP POJ 3254 Corn Fields
题目传送门 1 /* 2
状态压缩DP
:先处理硬性条件即不能种植的,然后处理左右不相邻的, 3 接着就是相邻两行查询所有可行的种数并累加 4 5 写错一个地方差错N久
·
2015-11-11 18:48
Field
状压DP SGU 223 Little Kings
题目传送门 1 /* 2 题意:n*n的矩阵,放置k个king,要求king互相不能攻击,即一个king的8个方向都没有另外的king,求方案个数 3
状态压缩DP
:dp[
·
2015-11-11 18:47
it
状压DP POJ 2411 Mondriaan'sDream
3
状态压缩DP
第一道:dp[i][j] 代表第i行的j状态下的种数(状态即为二进制10101110101...的样子) 4 横着的定义为11,竖着的定义为01,当两行的状态已填满并且没有出现奇数个
·
2015-11-11 18:46
poj
状态压缩dp
/sgu 131 Hardwood floor
题意 给出一个n*m的格子,要求用1*2的块和2*2缺一角的块填满,求方案数 分析 状压dp,以下来自nocow:
状态压缩DP
,转移的时候情况很多,要一个个写出来理清楚再写。
·
2015-11-11 18:58
OO
poj 2411 Mondriaan's Dream
状态压缩DP
打表
将题目转换题意, 有一个M列的墙, 我们需要 使用 1*2 的小矩形 砌成N层高, 有多少不同的方案数量. 因为只有1*2的砖头, 且只有竖立或者横着放. 那么我们规定 竖立放置的砖头属于 较高的一层, 且 当前点放置砖头则为1,否则为0 那么我们可以得出结论: 对于 I 层 状态 X , 若当前位置为0,则下层必定为1. 则意味着下层必定包含 t = (~X)&
·
2015-11-11 17:06
poj
位运算简介及实用技巧(四):实战篇
代码写得并不好,我只是想告诉大家位运算在实战中的应用,包括了搜索和
状态压缩DP
方面的题目。其实大家可以在网上找到更多用位运算优化的题目,这里整理出一些自己写的代码,只是为了原创系列文章的完整性。
·
2015-11-11 15:07
位运算
POJ 2817 WordStack(
状态压缩DP
)
题目链接 以前的坑,以前做的时候,用暴力各种跪,其实是
状态压缩DP
。暴力处理出来后,状态+标记最后一个单词。
·
2015-11-11 15:36
stack
POJ 1185 炮兵阵地(
状态压缩DP
)
题目链接 写了久。DEBUG很久。 1 #include <iostream> 2 #include <cstring> 3 #include <cstdio> 4 #include <cstdlib> 5 #include <map> 6 #include <queue> 7 #
·
2015-11-11 15:35
poj
记录做过的各种DP
做DP,已经有一段时间了,虽然还有很多不会的,树形DP,数位DP,
状态压缩DP
。。。
·
2015-11-11 15:58
dp
hdu4310贪心
明明贪心是正确的嘛,不知道为什么官方的解题报告说是
状态压缩DP
。
·
2015-11-11 15:05
HDU
hdu 1565
状态压缩DP
这题可以用最大流做,为了练DP就用状态压缩了。我一开始只想到一个O(n*2^n*2^n)的方法,效率太低,看了某大牛的解题报告后,才将算法优化到O(n^2*2^n)。 不过就这样还WA了好几次,原因是代码中一句 if ((k & t) == 0)我开始写成了if (k & t == 0) 没有注意到位运算符的优先级是低于逻辑运算符的,谨记谨记! /* * hdu1565/
·
2015-11-11 15:44
HDU
状态压缩DP
-棋盘模型总结
论文:《周伟ftfish --- 动态规划之状态压缩》 关键之处在于: ①针对棋盘不同限制用dfs把每行可行的状态压缩表示成一个数存到s[]。 ②枚举当前处理行和上一行的状态时根据题目限制判断状态是否互斥。 ③有时棋盘上会有些点不能放置,我们也把一行中不能放置的点压缩成一个数存到no[]中,比如用00011000表示第3列和第4列不能放置。然后处理当前行时如果s[j1] & no[i] =
·
2015-11-11 12:31
总结
状态压缩DP
-棋盘模型总结
论文:《周伟ftfish --- 动态规划之状态压缩》 关键之处在于: ①针对棋盘不同限制用dfs把每行可行的状态压缩表示成一个数存到s[]。 ②枚举当前处理行和上一行的状态时根据题目限制判断状态是否互斥。 ③有时棋盘上会有些点不能放置,我们也把一行中不能放置的点压缩成一个数存到no[]中,比如用00011000表示第3列和第4列不能放置。然后处理当前行时如果s[j1] & no[i] =
·
2015-11-11 12:30
总结
SGU132 - Another Chocolate Maniac(
状态压缩DP
)
题目大意 给定一个N*M大小的大小的蛋糕,蛋糕的有些地方已经放置了东西,要求你在蛋糕上放入尽量少的1*2大小的巧克力,使得蛋糕不能够再放入巧克力 题解 和POJ1038恰好相反,此题是放入尽量少的巧克力,根据前两行的状态来进行当前行的放置,用dfs来进行三行的状态枚举,并同时检查放置是否合法,放完m列之后就可以进行状态转移了 代码: #include <iostream> #
·
2015-11-11 12:44
man
(
状态压缩DP
)
题目大意 要求你在N*M大小的主板上嵌入2*3大小的芯片,不能够在损坏的格子放置,问最多能够嵌入多少块芯片? 题解 妈蛋,这道题折腾了好久,黑书上的讲解看了好几遍才稍微有点眉目(智商捉急),接着看了网上大牛的解题报告和实现代码才弄明白怎么用三进制来进行状态压缩,关键就是理解能够横着放置和竖着放置的条件。由于竖着放置会受到前面两行的影响,这样我们就可以用三进制来表示前面两行的状态了,然后根据前面
·
2015-11-11 12:43
integrate
POJ1185 - 炮兵阵地(
状态压缩DP
)
题目大意 中文的。。直接搬过来。。。 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示: 如果在地图中的
·
2015-11-11 12:42
poj
SGU131 - Hardwood floor(
状态压缩DP
)
POJ2411的影响,怎么都没想到3,4,5,6这几种情况该怎么放置,看了网上大牛的解题报告和代码(真是不好的习惯,可是太弱了就是想不出咋办%>_<%)之后豁然开朗~~~~ 规模比较小,所以用
状态压缩
·
2015-11-11 12:41
OO
SGU223 - Little Kings(
状态压缩DP
)
题目大意 给定一个N*N(n<=10,k<=n*n)大小的棋盘,要求你在棋盘上放置k个国王,使得不会相互攻击,如果棋盘上某个格子放置了一个国王,那么与他相邻的八个格子都是他的攻击范围,问有多少种放置方案 题解 和炮兵阵地差不多,只不过这个题是统计方案,依然是逐行转移,如果某个格子(i,j)放置了国王,那么上一行j,j-1,j+1,这三个格子都是他的攻击范围,因此这三个格子是不能够放
·
2015-11-11 12:41
it
POJ2411 - Mondriaan's Dream(
状态压缩DP
)
题目大意 给定一个N*M大小的地板,要求你用1*2大小的砖块把地板铺满,问你有多少种方案? 题解 刚开始时看的是挑战程序设计竞赛上的关于铺砖块问题的讲解,研究一两天楞是没明白它代码是怎么写的,智商捉急,上面是用逐格进行转移的,据说神马插头DP。。。坑爹啊。。。然后果断放弃研究了。。。我们还是逐行的进行转移,这样比较好理解,方程表示为:dp[i][j]+=dp[i-1][k](能够从上一行的状态
·
2015-11-11 12:40
poj
POJ3254 - Corn Fields(
状态压缩DP
)
(不种一算一种方案) 题解 很基础的
状态压缩DP
,我们可以逐行的进行状态转移,用二进制来表示一行的状态,方程表示为:dp[i]j]+=dp[i-1][k],表明我们可以
·
2015-11-11 12:39
Field
Codeforces Round #191 (Div. 2) E题
状态压缩DP
,算sum,本来是枚举的,结果TLE了。。
·
2015-11-11 10:25
codeforces
HDU 3001 Travelling(
状态压缩DP
)
题目链接 :http://acm.hdu.edu.cn/showproblem.php?pid=3001 题意:给出n个点的无向图,每个点最多被遍历两次最少被遍历一次。求最小代价。 思路:三进制。 #include <iostream> #include <cstdio> #include <string.h> #include <algor
·
2015-11-11 09:54
HDU
HDU 3247 Resource Archiver(自动机+
状态压缩DP
)
最后
状态压缩DP
。 struct node { int next[2],fail,x,y;
·
2015-11-11 09:50
resource
HDU 2825 Wireless Password(自动机+
状态压缩DP
)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2825 题意:给出m个串,求一个长度为n的串包含至少m个串中的K个。问这样的串有多少个? 思路:f[i][j][k]表示长度为i、到达自动机上的j节点、包含的状态为k的种类数。转移时,从当前节点向其next节点转移。 struct node { int next[26]
·
2015-11-11 09:47
password
SGU 327 Yet Another Palindrome(
状态压缩DP
)
题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=327 题意:给出n个字符串。构造一个串s使得s包含n个串以及n个串的反串且这n个串在s中是连续的。求s的最短长度。 思路:设f[i][j][k]表示已经在s中的串的集合为i最后一个串是j(其实是在两端的是j,一个是j的原串一个是j的反串)且前面的是j串的状态是k(k=0表示原串,
·
2015-11-11 09:31
ROM
poj 1691 Painting A Board (DFS/
状态压缩DP
)
http://poj.org/problem?id=1691/* 题解: 将每个矩形看成一个点,点A在点B的上方 则b的入度加1,进行拓扑构图 标记 ,每次搜索时搜入读为零的点 构图时少考虑的一种情况 wa 汗。。。。。。。 */ #include<stdio.h> #include<string.h> #define max 999999
·
2015-11-11 07:45
paint
[
状态压缩DP
] PKU 3311 Hie with the Pie
和COJ送货到家一样,不过这里不要求每个点只经过一次,因此可以先用floyd预处理出任意两点间的最短距离,然后
状态压缩DP
。
·
2015-11-11 07:44
with
[
状态压缩DP
] PKU 2411 Mondriaan's Dream
参考http://wenku.baidu.com/view/e262a86f1eb91a37f1115c26.html 状态设计:0表示横放,1表示竖放,可以预处理出所有合法状态,f[i, s] 表示到达第 i 层的状态(类似俄罗斯方块,前 i 层合并之后剩余的状态)。 状态转移:f[i, s] = sum{f[i-1, s']},s' 为和 s 符合的状态 j 与 s 的异或值。 # i
·
2015-11-11 07:41
pku
[
状态压缩DP
] COJ 1129 送货到家
第一道
状态压缩DP
; 这道题要求一个无向图的最小权回路,要求经过所有点,所以可以任选一个点(这里选0)作为起点,以后的状态f[s, i]表示从0出发到i结束的最小权路径,最终求得f[1<<
·
2015-11-11 07:41
压缩
POJ 3254 炮兵阵地(
状态压缩DP
)
题意:由方格组成的矩阵,每个方格可以放大炮用P表示,不可以放大炮用H表示,求放最多的大炮,大炮与大炮间不会互相攻击。大炮的攻击范围为两个方格。 分析:这次当前行的状态不仅和上一行有关,还和上上行有关,所以用三维dp【i】【j】【k】来表示第i行的状态为j,i-1行状态为k时最多的大炮。 一开始看数据量为100 * 1024 * 1024 铁定要爆,但是由于大炮的攻击方式,单独看每一行最多只有几
·
2015-11-11 04:49
poj
sgu233 little kings
分析:简单的
状态压缩DP
。f[i][state][j]表示第i行放置国王的状态为state,前i行一共放了j个国王的方案数,state为位压缩表示的状态,某位为1,表示该处放了国王,为0表示没有放。
·
2015-11-11 02:15
it
hdu 4385 Moving Bricks (
状态压缩dp
2012 Multi-University Training Contest 9 )
http://acm.hdu.edu.cn/showproblem.php?pid=4385 状态压缩需要好好理解啊; 又是一道 状态压缩的题 ,一开始觉的和 poj 的一道题有点像 ,特地先做了一下那个题 再回来做的这道题,结果还是没做出来 这到,最后看了 解题报告: 题意: 一个人在搬砖,初始位置在(x0,y0),目的地也是(x0,y0),给你n(n&
·
2015-11-11 01:22
test
poj3254
状态压缩dp
,数据弱,本程序时间效率O(12 * (2^24)) View Code #include <iostream> #include <cstdio>
·
2015-11-10 22:46
poj
acm算法模板(4)
杂乱小模板
状态压缩dp
小技巧 x&-x是取x的最后一个1的位置。 x-=x&-x是去掉x的最后一个1。
·
2015-11-09 14:24
ACM
ACM/ICPC竞赛
ACM知识点分类 第一类:基础算法 (1) 基础算法:枚举,贪心,递归,分治,递推,构造,模拟 (2) 动态规划:背包问题,树形dp,
状态压缩dp
,单调性优化,
·
2015-11-09 14:16
ICPC
poj 3254 Corn Fields (
状态压缩DP
)
题目:http://poj.org/problem?id=3254 思路见代码: #include<iostream> using namespace std; const int MOD=100000000; const int MAX_N_M=12; int row_state[MAX_N_M]; // 枚举出合法的状态数 int LegalS
·
2015-11-09 14:48
Field
hdu 4317 Unfair Nim (
状态压缩DP
) 【2012 Multi-University Training Contest 2】
一道
状态压缩DP
,比赛时没时间仔细想了,赛后想了想转移那部分也有点糊里糊涂的,后来请教了一下yk同学,才肯定了一下那个状态表示,后来自己一边探索,一边敲码,一边调试,确认无误后得到1A。
·
2015-11-09 12:36
test
状态压缩DP
题目小节(二)
最近做的
状态压缩DP
小节: http://acm.zju.edu.cn/onlinejudge/showProblem.do?
·
2015-11-08 15:23
压缩
poj 2411 Mondriaan's Dream
状态压缩DP
思路:1表示竖着的下半部分,0表示其他情况。 dp[i][j]表示第i行第j种状态满足的数目。 代码如下: 1 #include<iostream> 2 #include<stdio.h> 3 #include<algorithm> 4 #include<iomanip> 5 #include<c
·
2015-11-08 15:26
poj
hdu 3091 Necklace
状态压缩dp
*******
Necklace Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 327680/327680 K (Java/Others)Total Submission(s): 522 Accepted Submission(s): 168 Problem
·
2015-11-08 15:13
HDU
hdu 1565 方格取数(1)
状态压缩dp
方格取数(1) Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3848 Accepted Submission(s): 1473 Problem
·
2015-11-08 15:10
HDU
poj Corn Fields
状态压缩dp
。
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 5763 Accepted: 3052 Description Farmer John has purchased a lush new rectangu
·
2015-11-08 15:09
Field
hdu 4628 Pieces
状态压缩dp
Pieces Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 1418 Accepted Submission(s): 724 Problem Descripti
·
2015-11-08 15:08
HDU
上一页
7
8
9
10
11
12
13
14
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他