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
POJ 2923 Relocation (
状压DP
+背包)
题目大意这里有两辆车,每个车各自能装一定重量的物品,这里有N个物品,物品有各自的重量,每次要用两个车一起运物品,问你最少运的次数。思路:先预处理出来那个状态一次是可以运送的,把这些状态储存到sta的这个数组。剩下的背包一下就差不多了,这里背包的是状态,状态转移方程式是:dp[j|sta[i]]=min(dp[j|sta[i]],dp[j]+1)AC代码:/*********************
sinat_30126425
·
2016-03-22 21:00
poj
poj2411Mondriaan's Dream【覆盖类
状压dp
】
DescriptionSquaresandrectanglesfascinatedthefamousDutchpainterPietMondriaan.Onenight,afterproducingthedrawingsinhis'toiletseries'(wherehehadtousehistoiletpapertodrawon,forallofhispaperwasfilledwithsqu
zhou_yujia
·
2016-03-22 21:00
poj
状态压缩dp
zjnu1745 DOMINE (
状压dp
+1*2铺砖)
DescriptionMirkohasachessboardwithNrowsandjustthreecolumns.Slavicahaswrittenanintegeroneachfield.MirkohasKdominoesathisdisposal,theirdimensionsbeing2x1,andhastoarrangeallofthemontheboardwithoutoverlap
Kirito_Acmer
·
2016-03-22 15:00
状压dp
POJ1185 炮兵阵地
状压dp
题目描述:司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用”H”表示),也可能是平原(用”P”表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示:如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格表示它能够攻击到的区域:沿横向左
wuxuanyi27
·
2016-03-22 13:00
dp
poj
codevs2800送外卖
先跑一遍Floyd,再
状压DP
即可。
Fsss_7
·
2016-03-21 21:00
ZOJ 1100 Mondriaan's Dream【状态压缩】【DP】【DFS】
后来搜了下题解终于做出来了,是
状压DP
+dfs。这是我第二次碰到搜索和状压组合的题目了,但状压+DP+搜索
wlx65003
·
2016-03-21 20:00
ACM
bzoj 4006 [JLOI2015]管道连接(斯坦纳树+
状压DP
)
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=4006 【题意】 给定n点m边的图,连接边(u,v)需要花费w,问将k个点中同颜色的点连接的最小费用。 【思路】 题目所求斯坦纳森林。 如果我们知道满足颜色集合S的最小值g[S],则有递推公式: g[S]=min{g[S’]+g[S-S’]} 则g
hahalidaxin
·
2016-03-21 11:00
hdu 3182 Hamburger Magi(
状压dp
)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=3182预处理+dp#include #include #include usingnamespacestd; constintN=15; intval[N],cost[1<
a709743744
·
2016-03-19 14:00
SSL2418 数字序列
状压DP
题目大意,求一个数列的方案数,这个数列满足,只由1到k之间的数字组成,而且当ai=aj时,i和j的差值至少为ai之前那个50分的是因为压得方式不同设f[i,i1,i2...ik]表示长度为i,数字1上一次出现位置在第i位的前i1位,2上次在i的前i2位……有多少种方案当i1>=1时,i1=0。当i2>=2时,i2=0……通过实践发现,k=7时,合法的i1,i2……ik状态最多900多种现在来考虑转
BPM136
·
2016-03-19 11:00
状压dp
模拟赛4 数字序列 50分做法
状压DP
题意:求由1到k之间的数字组成的,满足如果ai=aj,则i-j>=ai的序列个数一脸懵逼在比赛中想不出AC方法,50分做法:考虑状压,因为新的一位能放哪些数字只和最后m-1位有关,又因为k #include #include #include #include #include #defineLLlonglong #definefo(i,a,b)for(inti=a;i'9'){if(s=='-'
BPM136
·
2016-03-17 16:00
dp
【POJ3254】【BZOJ1725】Corn Fields【
状压DP
】
id=3254自己写出的第一道
状压DP
,竟然1A了。
BraketBN
·
2016-03-17 14:00
状压dp
BZOJ1072: [SCOI2007]排列perm
状压DP
先看看当前有多少种然后推下去#include #include #include usingnamespacestd; intf[1024][1000]; ints[11]; charc;
liutian429073576
·
2016-03-16 07:00
HDU 5434 Peace small elephant
状压dp
+矩阵快速幂
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5434Peacesmallelephant Accepts:38 Submissions:108 TimeLimit:10000/5000MS(Java/Others) MemoryLimit:65536/65536K(Java/Others)问题描述小明很喜欢国际象棋,尤其喜欢国际象棋里面的大象
fenicnn
·
2016-03-16 01:00
POJ 2411 + POJ 2663 + POJ 3420 小方格填充之多米诺骨牌系列(
状压DP
)
原文链接:http://blog.csdn.net/shiwei408/article/details/8821853解决此类问题,一般都是用1*2的小方块填充n*m的矩阵。其中n或m两者中至少有一个较小。解决此类的方法,当n和m都很小的时候,可以直接for循环枚举状态来更新求值。但是当二者间有一个稍大的时候,就需要构造矩阵来解决此类问题。通常将较小的那个数作为列用dfs来枚举两行之间的状态。状态
WANSNIM
·
2016-03-14 22:54
*Dynamic
Programming
匈牙利最大匹配 poj2446 Chessboard
思路:乍看有点像
状压dp
,又有点像搜索,但是正解是二分图的最大匹配,而且做起来特别简单。
qwb492859377
·
2016-03-14 21:00
poj 3420 Quad Tiling
状压dp
+矩阵快速幂
分析:这题首先想到的是
状压dp
,用f[i,j]表示前i-1列放满且第i列状态为j时的方案数。则f[i,j]=sum(f[i-1,k])。k为可转移到j的所有方案数。
qq_33229466
·
2016-03-14 21:00
pku1085 Triangle War 完全极大极小搜索+
状压DP
黑书入门题,我们记录下每一个状态,状态为每条边是否用上,然后记忆化搜索所有状态WA了一次,因为搜索的时候给状态的值的时候写成了一共的三角形数量而不是双方的最大差值时间复杂度为2^18*8*17,而且每组数据都不需要额外更新,话说这样写时间复杂度是常数级别的诶2333333333Problem:1085User:BPM136 Memory:2724KTime:188MS Language:G++Re
BPM136
·
2016-03-13 21:00
状压dp
完全极大极小搜索
【bzoj4197】[Noi2015]寿司晚宴
状压DP
Description为了庆祝NOI的成功开幕,主办方为大家准备了一场寿司晚宴。小G和小W作为参加NOI的选手,也被邀请参加了寿司晚宴。在晚宴上,主办方为大家提供了n−1种不同的寿司,编号1,2,3,…,n−1,其中第i种寿司的美味度为i+1(即寿司的美味度为从2到n)。现在小G和小W希望每人选一些寿司种类来品尝,他们规定一种品尝方案为不和谐的当且仅当:小G品尝的寿司种类中存在一种美味度为x的寿司
LOI_DQS
·
2016-03-13 20:00
POJ 2288 Islands and Bridges(
状压dp
)
http://poj.org/problem?id=2288DescriptionGivenamapofislandsandbridgesthatconnecttheseislands,aHamiltonpath,asweallknow,isapathalongthebridgessuchthatitvisitseachislandexactlyonce.Onourmap,thereisalsoa
WANSNIM
·
2016-03-12 15:59
*Dynamic
Programming
vijosP1194 Domino
状压DP
+矩阵优化
我们知道邻接矩阵的k次方就是一个从i到j之间允许重复路径的条数然后我们对于这题我们也可以向着这个方向转化先用dfs搜索出所有的状态转移,然后把每一个状态当成一个点,就变成上面的问题了当然最极端的方法自然是推递推公式或者通项公式啦#include #include #include #include #include #include #include #definefo(i,a,b)for(int
BPM136
·
2016-03-11 12:00
HDU 3001 Travelling (
状压dp
三进制)
http://acm.hdu.edu.cn/showproblem.php?pid=3001ProblemDescriptionAftercodingsomanydays,MrAcmerwantstohaveagoodrest.Sotravellingisthebestchoice!Hehasdecidedtovisitncities(heinsistsonseeingallthecities!A
WANSNIM
·
2016-03-10 13:44
*Dynamic
Programming
【POJ 1699】 Best Sequence(KMP+
状压DP
)
【POJ1699】BestSequence(KMP+
状压DP
)TimeLimit:1000MS MemoryLimit:10000KTotalSubmissions:5594 Accepted:2206DescriptionThetwenty-firstcenturyisabiology-technologydevelopingcentury.Oneofthemostattractiveandch
ChallengerRumble
·
2016-03-09 20:00
poj 1795 DNA Laboratory
状压dp
题意:给出n(n≤15)个字符串,求一个最短的串S,使得给出的那些串都是S的子串。如果有多个解输出字典序最小的一个。这题写的我快哭出来了55555555555先说一下我写这道题的经历吧。一开始很容易就想到用f[i,j]表示状态i以j结尾时的最短长度,然后我用了一个f1数组来记录字符串,然后发现MLE……接着便把f1数组去掉,但冥思苦想都想不到一种优美的方法来找答案。弱渣的BPM表示可以用dp来搞,
qq_33229466
·
2016-03-09 20:00
状压dp
题意:给出n*m(n≤150,m≤10)的棋盘,要在上面放置2*3的骨牌,有一些方格无法放置,求最多能放置多少个。分析:因为每一行的状态都会影响到前两行,所以就用三进制的数记录第i行和第i-1行的状态。f[i,j]表示第i行和第i-1行状态为j时的最大放置数,然后暴力转移就好了。黑书138已经写的很清楚了,这里就不多说了。代码:const maxn=59048; var t,l,i,j,k,n,
qq_33229466
·
2016-03-08 20:00
pku1795 DNA Laboratory
状压DP
很好我们就可以多加一维来表示当前状态下的字符串最后一串之前是谁的很好我们搞定了状态就几乎等同于搞定了这个
状压DP
的大部分惹(当时的我就是这
BPM136
·
2016-03-08 17:00
状压dp
bzoj2595 游览计划 斯坦纳树&
状压Dp
求斯坦纳树的正常姿势:
状压Dp
!(叫子集Dp也行吧。。) 令f[i][j][k]表示已经连接的景点的集合为k时,包含点a[i][j]的最小值。即以(i,j)为根时,
lych_cys
·
2016-03-08 09:00
最短路
SPFA
状压dp
斯坦纳树
poj2441 Arrange the Bulls
状压DP
看了下别人的实现感觉不科学写的那么复杂然而速度是我的1/2==我们看到这个很容易联想到棋盘模型n*m,放置n个车,问方案数.然后愉快地做就行,最简复杂度O(n*2^m),然而窝写成O(m*2^m)其实也无所谓Problem:2441User:BPM136 Memory:4812KTime:235MS Language:G++Result:Accepted #include #include #in
BPM136
·
2016-03-08 08:00
状压dp
状压DP
周伟的论文没能看懂感觉挺羞愧的然而现在我也没能理解。然后滚去看黑书,P138首先我们先没枚举上一行的状态,dfs这一行的状态,用三进制来表示从上向下有连续的多少个0,然后我们就可以愉快地转移了。虽然仅仅用时1266ms,但是我并没有明白为什么会这么快,原本以为会T的很惨的。显然我们先枚举行,然后枚举上一行状态。此时极限数据会达到150*50000+*50000+,然后又5组数据……根本看不到希望不
BPM136
·
2016-03-07 21:00
状压dp
bzoj 1087: [SCOI2005]互不侵犯King
状压dp
在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。用f[i,j,k]表示第i行状态为j放了k个国王有多少种方案。先dfs出符合条件的每种方案,然后进行转移。两个状态兼容的条件为i*2、i、i/2andj都=0(i,j是状态)。代码:var n,m,i,j,k,l,a1:longint; ans:in
qq_33229466
·
2016-03-07 19:00
省选前集训
状压dp
(容斥原理)
KykneionasmaTimelimit:1000msOnthelastdaybeforethefamousmathematicianSwan'sdeath,heleftaproblemtotheworld:Givenintegersnandaifor0≤i≤4,calculatethenumberofn-digitintegerswhichhaveatmostai-digitiinitsdec
zhangqingqi
·
2016-03-06 21:00
SCOI2005互不侵犯King
状压Dp
一脸懵逼,爆int,然而在数据范围内的我出的几组测试数据都是负数==好吧不多说,用邻接表优化转移,还有就是比较的时候si不但直接和sj比,还直接和sj/2和sj*2比就行复杂度倒是很正常丝毫不会爆#include #include #include #include #include #include #include #defineLLlonglong #definefo(i,a,b)for(i
BPM136
·
2016-03-06 21:00
NJOJ Hero 状态压缩觉悟题
仅以此题纪念我为数不多的
状压DP
。题意:有n*n的矩阵,选择其中的n个,使得和最大。且n个中任意两个不得在同行或同列。
Danliwoo
·
2016-03-06 18:00
dp
解题报告
状态压缩
状压DP
入门题集锦
POJ3254CornFields题意:一块n*m的田,1表示这个地方可以种植,0代表这个地方不能种植。植物种植还必须满足两株植物不能相邻(横竖都不行)。问共有几种种植方法,而且当什么都不种时认为是一种方法。解题思路:种植用1表示,不种植用0表示。每一行的情况就可以用一个二进制数state来存储。state的范围是[0~1>i)和state&(1#include#include#includeus
WANSNIM
·
2016-03-05 10:18
*Dynamic
Programming
SSL 1507 棋盘
状压dp
小明的爸爸给他买回一个N*M的棋盘,现在要他在上面放置骨牌,有两种骨牌可供选择:一种是1*1的,一种是1*2的,给你棋盘的大小,小明问你一共有多少种填法。用f[i,s]表示第i行状态为s有多少种方案。然后用dfs暴力枚举状态转移就好了。代码:var n,m,i:longint; f:array[1..11,0..2048]oflongint; procedurework(x,y:longint)
qq_33229466
·
2016-03-05 10:00
poj 2411 Mondriaan's Dream
状压dp
给出一个n*m的方阵,求用1*2的多米诺骨牌恰好完全填满有多少种方案。用f[i,s]表示第i行的状态为s的时候的方案数。s某一位为1表示已放。f[i,s]=sum(f[i-1,ss])且满足s和ss是兼容的。下面就给出了兼容的条件。若ss的第i位为0则s的第i位一定为1也就是要竖着放然后i+1,否则不兼容。若ss的第i位为1且s的第i位为1则s的第i位一定要横着放,也就是仍要满足ss的i+1位和s
qq_33229466
·
2016-03-05 10:00
poj 1185 炮兵阵地
状压dp
先dfs把所有可行的状态都找出来。用f[i,j,k]表示第i行状态为j,i-1行状态为k能放置的最多炮兵。r[i]表示第i行哪些格子不能放。若r[i]第j位为1则表示第i行第j位不能放,反之能放。然后dp到第i行的时候判断某种状态是否符合就可以用r[i]anda[j](表示状态)是否为0,为0则符合。f[i,j,k]=max(f[i-1,k,l]+b[j])且满足j、k、l三种状态不冲突 b[j]
qq_33229466
·
2016-03-05 09:00
SSL 1383 车Ⅱ
状压dp
有一个n*m的棋盘(n、m≤80,n*m≤80)要在棋盘上放k(k≤20)个棋子,使得任意两个棋子不相邻。求合法的方案总数。我们用数组s保存一行中所有的num个放置方案,则s数组可以在预处理过程中用DFS求出,同时用ci保存第i个状态中1的个数以避免重复计算。开始设计状态。本题状态的维数需要增加,原因在于并不是每一行只放一个棋子,也不是每一行都要求有棋子,原先的表示方法已经无法完整表达一个状态。我
qq_33229466
·
2016-03-04 21:00
SSL 1382 车
状压dp
在n*n(n≤20)的方格棋盘上放置n个车(可以攻击所在行、列),有些格子不能放,求使它们不能互相攻击的方案总数。 我们用ar表示第r行不允许放置的情况,如果第r行某一位不允许放置则ar此位为0,否则为1,这可以在读入数据阶段完成。然后对于需要处理的状态s,用ts=s&ar来代替s进行枚举,即不枚举s中的1转而枚举ts中的1。因为ts保证了不允许放置的位为0,这样就可以不用其它的判断来实现算法代码
qq_33229466
·
2016-03-04 21:00
【BZOJ1097】[POI2007]旅游景点atr【最短路】【
状压DP
】【记忆化搜索】
k很小,所以可以状压。先预处理出以1到k+1为出发点的最短路,然后记忆化搜索。/*FootprintsInTheBloodSoakedSnow*/ #include #include #include #include #include usingnamespacestd; typedefpairpii; constintmaxn=20005,maxm=200005,maxk=21,maxs
BraketBN
·
2016-03-04 20:00
最短路
记忆化搜索
状压dp
【POJ 1185】炮兵阵地(
状压DP
)
【POJ1185】炮兵阵地(
状压DP
)TimeLimit:2000MSMemoryLimit:65536KTotalSubmissions:23107Accepted:8957Description司令部的将军们打算在
A_LeiQ
·
2016-03-03 21:24
POJ
状压dp
ACM之DP
【POJ 1185】炮兵阵地(
状压DP
)
【POJ1185】炮兵阵地(
状压DP
)TimeLimit:2000MS MemoryLimit:65536KTotalSubmissions:23107 Accepted:8957Description
ChallengerRumble
·
2016-03-03 21:00
【POJ 1185】炮兵阵地(
状压DP
)
【POJ1185】炮兵阵地(
状压DP
)TimeLimit:2000MS MemoryLimit:65536KTotalSubmissions:23107 Accepted:8957Description
ChallengerRumble
·
2016-03-03 21:00
hdu 4628 Pieces
状压dp
题目链接 枚举所有状态,1表示这个字符还在原来的串中,0表示已经取出来了。代码中j=(j+1)|i的用处是枚举所有包含i状态的状态。#include #include #include #include #include #include #include #include #include #include #include #include usingnamespace
yohaha
·
2016-03-03 13:00
hdu 检测赛 Problem C(
状压dp
)
ProblemCProblemDescription新年伊始,集训队迎来了15级新生。教练打算将大家N(2 #include #include usingnamespacestd; intn; into[1<<20]; inta[24][24]; intd[24]; intsum; intf[1<<20]; intb[24]; voidsolve() { intlost=sum; inttop=1
a709743744
·
2016-03-03 11:00
【POJ 2411】Mondriaan's Dream(
状压dp
)
【POJ2411】Mondriaan'sDream(
状压dp
)TimeLimit:3000MS MemoryLimit:65536KTotalSubmissions:14107 Accepted:8152DescriptionSquaresandrectanglesfascinatedthefamousDutchpainterPietMondriaan.Onenight
ChallengerRumble
·
2016-03-02 17:00
【POJ 2411】Mondriaan's Dream(
状压dp
)
【POJ2411】Mondriaan'sDream(
状压dp
)TimeLimit:3000MS MemoryLimit:65536KTotalSubmissions:14107 Accepted:8152DescriptionSquaresandrectanglesfascinatedthefamousDutchpainterPietMondriaan.Onenight
ChallengerRumble
·
2016-03-02 17:00
POJ2686 Traveling by Stagecoach(
状压DP
+SPFA)
题目大概是给一张有向图,有n张票,每张票只能使用一次,使用一张票就能用pi匹马拉着走过图上的一条边,走过去花的时间是边权/pi,问从a点走到b点的最少时间是多少。用dp[u][S]表示当前在u点且用过的票集合是S的最少时间,丢进SPFA更新。1#include 2#include 3#include 4usingnamespacestd; 5#defineINF1e8 6#defineM
WABoss
·
2016-03-01 23:00
[GDKOI2016]染色大战
模拟列个
状压DP
然后就是模拟题意,注意使用位运算优化常数。#include #include #include #definefo(i,a,b)f
WerKeyTom_FTD
·
2016-03-01 22:00
SGOI 海上搜索
状压DP
SSL1317本来以为暴力枚举矩形左上角dfs推右下角的点和DP复杂度一样结果一想发现复杂度整整多了个n==#include #include #include #include #include #include #include #defineLLlonglong #definefo(i,a,b)for(inti=a;i=b;i--) usingnamespacestd; inlineLLre
BPM136
·
2016-03-01 21:00
SSL 1317 海上搜索
状压dp
在南海的某一海面内岛屿和海洋交错衡生,进行海上搜索作业,先对搜索区域的海洋图分割成若干个M×N大小相同的网格,其中M(M=0)2. 然后DP(枚举),对于每个状态f[i,j,k,l](表示从[i,j]到[k,l]的区域的岛屿数量),有f[i,j,i,j]:=f[i,j];f[i,j,i,t]:=f[i,j,i,t-1]ora[i,t];f[i,j,t,j]:=f[i,j,t-1,j]or
qq_33229466
·
2016-02-29 19:00
上一页
21
22
23
24
25
26
27
28
下一页
按字母分类:
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
其他