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
BZOJ 1072 [SCOI 2007] 排列perm (
状压DP
)
题目链接:BZOJ1072dp[i][j]:i表示每个数选与不选的状态,j表示当前状态的余数#include#include#includeusingnamespacestd;inta[20],num[20],p[20],dp[1025][1005];intmain(){freopen("test.in","r",stdin);freopen("test.out","w",stdout);intT
夕凪zzz
·
2015-03-11 13:13
DP
LA2029
状压dp
Mr.Richards,anenthusiasticmathematician,isspendinghisholidayinShanghai.Heissocrazyabouthisstudythathemayassociateanythingwithmathematicalproblems.Accordingtohisschedule,heshouldvisittheMuseumtoday.But
u012866104
·
2015-03-10 00:00
Game with Strings
状压DP
很好的
状压dp
题目d[mask]=x 在询问了mask位的情况下,有x状态的串还是不能区分///预处理不好会TLEdp[x] 从一次也没有问,到问到状态x时的概率可以看 http://blog.csdn.net
u012797220
·
2015-03-09 12:00
hdu2825---Wireless Password(AC自动机+
状压dp
)
WirelessPasswordTimeLimit:2000/1000MS(Java/Others)MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):4688AcceptedSubmission(s):1433ProblemDescriptionLiyuanlivesinaoldapartment.Oneday,hesuddenlyfo
Guard_Mine
·
2015-03-08 11:00
dp
AC自动机
zoj3471 一维
状压dp
MostPowerfulTimeLimit: 2Seconds MemoryLimit: 65536KBRecently,researchersonMarshavediscoveredNpowerfulatoms.Allofthemaredifferent.Theseatomshavesomeproperties.Whentwooftheseatomscollide,oneofthemdi
u012866104
·
2015-03-06 16:00
poj1185 三维
状压dp
炮兵阵地TimeLimit: 2000MS MemoryLimit: 65536KTotalSubmissions: 20467 Accepted: 7930Description司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H"表示),也可能是平原(用"P"表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不
u012866104
·
2015-03-05 16:00
poj3254
状压dp
入门题
CornFieldsTimeLimit: 2000MS MemoryLimit: 65536KTotalSubmissions: 8691 Accepted: 4634DescriptionFarmerJohnhaspurchasedalushnewrectangularpasturecomposedof M by N (1≤ M ≤12;1≤ N ≤12)squareparcels.Hewant
u012866104
·
2015-03-05 00:00
【BZOJ1087】【SCOI2005】互不侵犯King 状态压缩 动态规划 水题 都不用加特技
裸
状压DP
。直接f[i][j][k]表示第i行状态时j,有k个落子时的方案数。代码:#in
Vmurder
·
2015-03-02 19:00
特技
状压dp
SCOI2005
BZOJ1087
互不侵犯King
hdu 3247 Resource Archiver (ac自动机+BFS+
状压dp
)
题意:给出n个资源串,m个病毒串,现在要如何连接资源串使得不含病毒串(可以重叠)。题解:真心不会做。这题注意点好多,稍不留意就wa。看了题解我是这样理解的,我么可以把资源串和病毒串都放到ac机上,这样的做是为了把病毒串挑掉。在建ac机时,通过判断fail指针对应节点是否是病毒串,然后将fail指针的内容根性到这个节点。同理对于资源串也用相同方法。我们这样设置标记,病毒串ID=-1,资源串ID=对应
My_ACM_Dream
·
2015-02-25 21:00
hdu 3341 Lost's revenge (ac自动机+
状压dp
)
题意:给出目标串,给出n个模式串,现在问如何排列目标串使得目标串能含最多的模式串(可以重叠)。题解:好题!这题用状压,很明显只能用状压,一开想的也是状压但是没想到这样去状压。我们枚举串出现AGCT的个数,然后得到状态转移。代码犯了几个脑残的错误,word[now]++,word[now]+=word[fail[now]];上次犯用手写队列被卡内存了,甚是无语,看来以后还是用容器。#include
My_ACM_Dream
·
2015-02-25 19:00
hdu 2825 Wireless Password (ac自动机+
状压dp
)
我们在ac自动机上dp肯定要设置这样的状态dp[i][j]走了i步,结尾是j节点,但是这样明显无法获得由几m集合中的串,分析发现这类似排列组合,要实现这样的计数问题,只能是
状压dp
,那么我们多设置一维dp
My_ACM_Dream
·
2015-02-24 11:00
UVA 10817 Headmaster's Headache
状压DP
记录两个状态S1,S2分别记录哪些课程被1个人教过或2个人教过,然后记忆化搜索UVA-10817Headmaster'sHeadacheTimeLimit: 3000MS MemoryLimit: Unknown 64bitIOFormat: %lld&%lluSubmit StatusDescriptionProblemD:Headmaster'sHeadacheTimelimit:2secon
u012797220
·
2015-02-23 21:00
UVA 1252 Twenty Questions
状压DP
简单
状压DP
:当前状态s如果这个物品有状态a个属性,枚举下一个要猜测的特征kdp[s][a]=min(dp[s][a],max(dp[s+k][a],dp[s+k][a+k])+1);4643-TwentyQuestionsAsia-Tokyo
u012797220
·
2015-02-22 16:00
【DP】 HDOJ 4284 Travel
先用floyd预处理出全源最短路,然后
状压DP
就可以了。。。
blankcqk
·
2015-02-22 10:00
dp
hdoj
codeforces 107C Arrangement (
状压dp
)
题意:给出n个人和n个座位,给出m对限制,每对限制要求ai这个人的座位要排在bi这个人的前面。现在要求满足条件的第y-2001大的字典序的座位排列。题解:题目挺好的,处理方法很特别。对于这样的题目,我们首先想想暴力,那就是枚举从1开始的各种满足条件的序列,其实在枚举的时候我们可以这样优化,首先枚举第一个作为排的人,然后以排好的人为基准,往下继续排计算出对应的排列数,如果排列数大于想在的y,那么这位
My_ACM_Dream
·
2015-02-20 15:00
hdu 2510 符号三角形 (
状压dp
打表存入文件,O(1))
题意:给出一个只有正负号组成的金字塔,金字塔满足同号的正,异号得负。例如:++-+-++ +----+ -+++- -++- -+- -- +题解:dp[i][cnt]opt[i][st]dp表示第i行个数加号个数为cnt的方案数,opt表示第i行状态为st时加号的个数,1表示加号0表示减号,进行状态压缩。最后打表大文件,然后复制粘贴到程序直接输出答案。打表程序:#incl
My_ACM_Dream
·
2015-02-18 13:00
UVa 1099 分巧克力 ACM解题报告(
状压dp
)
这题切巧克力,首先看见这题数据很小,n小于等于15,可以直接压缩状态,全集就是(1 #include #include #include #include #include #include #include #include #include #include #include #include #include usingnamespacestd; #defineMAX50005 typede
Miracle_ma
·
2015-02-12 22:00
动态规划
ACM
uva
Uva 11825 Hackers' Crackdown ACM解题报告(
状压dp
)
这题的题意是有n个电脑,每个电脑都有n个服务,然后每台电脑都和某几台电脑相邻,有个黑客可以在每台电脑上停止一个服务,然后这台电脑和与它相邻的电脑上的这个服务都会停止,问最多可以停止多少个服务。这题就是要把电脑之间的关系化成集合,因为n的范围比较小,所以可以状态压缩,用(1 #include #include #include #include #include #include #include
Miracle_ma
·
2015-02-11 13:00
动态规划
ACM
uva
***POJ1185 炮兵阵地 ACM解题报告(
状压dp
入门题)
这题是个入门的
状压dp
(虽然对我来说好难啊,坑了一下午终于过了。。。)
Miracle_ma
·
2015-02-10 17:00
动态规划
ACM
poj
POJ3311 Hie with the Pie ACM解题报告(Floyd+
状压dp
)
题意是有N个城市(1~N)和一个PIZZA店(0),要求一条回路,从0出发,又回到0,而且距离最短 也就是TSP(旅行商)问题,首先不难想到用FLOYD先求出任意2点的距离dis[i][j] 接着枚举所有状态,用11位二进制表示10个城市和pizza店,1表示经过,0表示没有经过 定义状态DP(S,i)表示在S状态下,到达城市I的最优值 接着状态转移方程:DP(S,i) = min{DP(
Miracle_ma
·
2015-02-10 14:00
动态规划
ACM
poj
**POJ3254 Corn Fields ACM解题报告(
状压dp
)
人生第一个
状压dp
,虽然是看了题解艰难完成的,也算是把这题搞懂了,以前虽然稍微了解过
状压dp
,但是没想到实现起来也这么难。
Miracle_ma
·
2015-02-09 16:00
动态规划
ACM
poj
hdu 3681 Prison Break (BFS+状压)
题解:像这种题目暂时找不到很好的解决方法,可以试着想想暴力的方法,就是枚举每个电量是否满足,一般这样的枚举都是用二分,对于判断是否满足条件可以用
状压dp
来解决。
My_ACM_Dream
·
2015-02-08 20:00
poj2411--Mondriaan's Dream(
状压dp
+dfs)
Mondriaan'sDreamTimeLimit:3000MS MemoryLimit:65536KTotalSubmissions:12315 Accepted:7189DescriptionSquaresandrectanglesfascinatedthefamousDutchpainterPietMondriaan.Onenight,afterproducingthedrawingsinh
u013015642
·
2015-02-04 20:00
zoj 3375 Imperishable Night (
状压dp
)
题解:
状压dp
,分别对整体
状压dp
,和对每个洞内部dp,对洞内部其实用贪心也可以,复杂度O(1)。分析:首先,对于每个part,设如果
My_ACM_Dream
·
2015-02-04 14:00
BZOJ 1076 SCOI2008 奖励关 期望
状压DP
题目大意:给定k次弹出宝物的机会,每次随机弹出n种宝物的机会,如果吃过这种宝物的所有前提宝物就可以吃这种宝物,求最优策略的期望得分看到数据范围果断
状压DP
--不看数据范围害死人--至于吃还是不吃这是个问题对于这种最优策略的期望
PoPoQQQ
·
2015-02-03 19:00
bzoj
期望DP
状压dp
BZOJ1076
UVa 10817 Headmaster's Headache (
状压DP
)
一个需要状态压缩的0-1背包。dp[i][j]中第一维表示每个学科有没有第一个老师教,第二维表示每个学科有没有第二个老师教,这两个信息是要状压的。对于0-1背包,如果写成dp[i]=max(dp[i],dp[i-w[k]]+c[k])的形式,就要判断i-w[k]是不是大于等于0。在这道题里判断相似的问题有些麻烦,所以写成dp[i+w[k]]=max(dp[i+w[k]],dp[i]+c[k])的形
Baoli1008
·
2015-01-30 12:00
01背包
状压dp
zoj zju 2994 Tiling a Grid With Dominoes
状压dp
TilingaGridWithDominoesTimeLimit: 2Seconds MemoryLimit: 65536KBWewishtotileagrid4unitshighandNunitslongwithrectangles(dominoes)2unitsbyoneunit(ineitherorientation).Forexample,thefigureshowsthefive
u013532224
·
2015-01-28 22:00
dp
【BZOJ】【P2073】【POI2004】【PRZ】【题解】【
状压DP
+枚举子集】
id=2073
状压DP
+枚举子集Code:#include usingnamespacestd; intn,W; intw[18],t[18]; intdp[1>W>>n; for(inti=1;i>t
u012732945
·
2015-01-20 20:00
bzoj
BZOJ 3195 JXOI2012 奇怪的道路
状压DP
题目大意:给定n个点,需要在这n个点之间连m条边,要求每个点的度数为偶数,且任意一条边两端点编号之差不超过k
状压DP
令f[i][j][status]表示前i-1个点已经向后连了j条边,此时以i开头的k个点的奇偶性为
PoPoQQQ
·
2015-01-20 18:00
bzoj
状压dp
BZOJ3195
BZOJ 1097 POI2007 旅游景点atr SPFA+
状压DP
题目大意:给定一张图,要求从第一个点出发,按照某个拓扑序遍历2~k+1的所有节点,然后到达n,求最短路径首先将所有关键点之间的最短路用SPFA求出来然后
状压DP
令f[state][p]表示已经走过的点集为
PoPoQQQ
·
2015-01-20 15:00
SPFA
bzoj
状压dp
BZOJ1097
hdu2167--Pebbles(
状压dp
)
PebblesTimeLimit:1000MS MemoryLimit:32768KB 64bitIOFormat:%I64d&%I64uSubmit StatusDescriptionYou'regivenanunlimitednumberofpebblestodistributeacrossanNxNgameboard(Ndrawnfrom[3,15]),whereeachsq
u013015642
·
2015-01-10 21:00
hdu1074--Doing Homework(
状压dp
)
DoingHomeworkTimeLimit:1000MS MemoryLimit:32768KB 64bitIOFormat:%I64d&%I64uSubmit StatusDescriptionIgnatiushasjustcomebackschoolfromthe30thACM/ICPC.Nowhehasalotofhomeworktodo.Everyteachergives
u013015642
·
2015-01-10 21:00
poj3254--Corn Fields(
状压dp
)
CornFieldsTimeLimit: 2000MS MemoryLimit: 65536KTotalSubmissions: 8512 Accepted: 4540DescriptionFarmerJohnhaspurchasedalushnewrectangularpasturecomposedof M by N (1≤ M ≤12;1≤ N ≤12)squareparcels.Hewant
u013015642
·
2015-01-10 20:00
poj1185--炮兵阵地(
状压dp
)
炮兵阵地TimeLimit: 2000MS MemoryLimit: 65536KTotalSubmissions: 20169 Accepted: 7805Description司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H"表示),也可能是平原(用"P"表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不
u013015642
·
2015-01-10 20:00
poj3311--Hie with the Pie(
状压dp
)
HiewiththePieTimeLimit: 2000MS MemoryLimit: 65536KTotalSubmissions: 4860 Accepted: 2581DescriptionThePizazzPizzeriapridesitselfindeliveringpizzastoitscustomersasfastaspossible.Unfortunately,duetocutba
u013015642
·
2015-01-08 21:00
【USACO 2008 Nov Gold】 1.Mixed Up Cows
状压DP
、
题解:首先考虑dfs,但是看到答案的“64bit”就放弃了吧、所以肯定是组合数、
状压DP
什么的,尤其是那个16,标准的状压数。好吧,就是
状压DP
。
Vmurder
·
2015-01-02 11:00
动态规划
UP
USACO
2008
mixed
状态压缩
Gold
cows
Nov
ZOJ 2563 Long Dominoes(
状压DP
)
给定一个m*n的方格子,要求用3*1的骨牌去覆盖,骨牌可以用横放或者竖放,问最终有多少种放置方式,将其铺满。分析:由于最多30行,每行最多9列,所以可以按行来dp,设计每行的状态从而进行转移,考虑每个骨牌放置对下一行的影响,共有0,1,2,3种方式,0对应横放或者竖放时最下面那个格子,此行对下一行没有影响,1,竖放时第1个,2竖放时第2个,这样进行转移。注意,第i行横放时要求上一行相应位置状态为0
·
2014-12-13 21:00
long
Codeforces11D(
状压dp
)
好题!题意:给你一个图,没有重边,求这个图简单环的个数;PS:简单环:在这个环中各个边只出现一次,各个点也只出现一次。好难想的状态。dp[st][e] 状态st中序数最小的点记为s并且以e为终点的环的个数。每次枚举状态时找到最小的点,然后枚举终点,在枚举中间节点,如果中间节点和起点相同那么就可以累加到总和里面。注意计算时已经重复计算了,比如说1-2-3-1和1-3-2-1这连个环是一样的,但是重复
My_ACM_Dream
·
2014-12-09 01:00
dp
codeforces
Codeforces8C(
状压dp
)
题意:一个人在起点,有许多物品散落在各个地方,现在给出人起点的坐标和物品的坐标,然后给出一个要求,每次最多只能拿两个物品拿完物品必须回到原点装到包里面,求最短路程的方案,答案和路径都要输出。这题如果是超级暴力即状态和两个点都全部枚举会超时,稍微优化下,因为先去哪个都是一样的,因为都要回到原点,这样相当于每次是从原地出发找出然后回去,所以首先枚举状态,然后枚举第一个点,这时候先转移这个点的状态,然后
My_ACM_Dream
·
2014-12-08 12:00
hdu3920(
状压dp
)
这题题意说很多个点,某个人在一点要射击这些点,但是子弹是可以以任意方向反射的,但是只能反射一次,也就是说一个人一次可以打两个点。那么问怎么打能使子弹走过的距离总和最短。枚举状态、和要打的两个点。不过这里会出现重复计算的问题,不解决的话会超时。就是循环的问题,一开始我两重循环枚举,但是会发现很累赘,然后看了下大牛的题解,一个小优化,就是枚举一个点满足条件的然后跳出循环,之后在枚举另外一个点。仔细思考
My_ACM_Dream
·
2014-12-06 12:00
dp
HDU
poj2288(
状压dp
)
这题如果没想限制有三个成环的时候是可以一维转压过的,但是这个条件。。。。所以要设计这样的状态dp[s][i][j]在状态s时现在点是i上个点是j的最大值。枚举上两个点,然后枚举这个点。 #include #include #include #include #include #include #include #include #include #include usingnamespacestd
My_ACM_Dream
·
2014-12-06 12:00
dp
poj
poj 3254 Corn Fields(
状压dp
)
dp类计数问题,简答题,水过#include #include #include #include #include usingnamespacestd; #defineoo0x3f3f3f3f #defineMod100000000 intdp[13][400]; intst[400],all; intMap[13]; voidGetStatus() { all=0; for(inti=0;i
My_ACM_Dream
·
2014-12-06 12:00
dp
poj
poj2411(
状压dp
)
这题不看题解,根本没思路。思路如下:对于一个矩形有3种方法:横放,竖放,不放。由于第i行只跟第i-1行的放置有关系,因为我们必须保证第i-1行使放满的,现在用dp[i][state]表示第i行状态为state的方法,那么dp[i][now]=sum{dp[i-1][pre]}.1横放如果第i行第d列我们选择横放,那么第i行的第d列及d+1列都是1了,第i-1行第d列及d+1列也都必须为1(保证是满
My_ACM_Dream
·
2014-12-06 12:00
dp
poj
poj1185 炮兵阵地(
状压dp
)
这题和郑长——派兵布阵相似,同理按行dp,炮兵的范围和那个一样都涉及了两行,于是设计状态也是一样的#include #include #include #include #include usingnamespacestd; #defineoo0x3f3f3f3f intdp[102][70][70]; intst[70],sum[70],all; intMap[102]; intSum(int
My_ACM_Dream
·
2014-12-06 12:00
dp
poj
hdu4539(
状压dp
)
题意:给出炮兵的打击范围,和一个矩阵,炮兵之间不能再对方的打击方位内,那么问矩阵最多可以放置多少个炮兵状压,按照行dp,把行压缩,这题不能两行之间dp因为第一行会影响到第三行(炮兵的打击范围可以看出),那么就只能两行两行的dp于是设计这样的状态:dp[i][now][pre]在第i行时这行的状态为now上行的状态为pre时的最大值。枚举这行的状态,上行的状态,上上行的状态,据处理将所有状态离散化,
My_ACM_Dream
·
2014-12-06 12:00
dp
HDU
hdu4049(
状压dp
)
这题说实话,完全没思路,看了题解才明白,题意:有n个m个低点,每个地点都要花钱,每个人去每个地点都有一个兴趣值,如果两个人一起组队就会有福利,多个人就两两结合的福利加在一起。问怎么让这些值综合最大。那么设计这样的状态:dp[i][s]表示在第i个城市时状态为s的最大值,其实s状态里面包含的就是人的排列组合。next[i][j]:状态i变成第j个的状态是什么 cnt[i]状态i能变成几个状态 val
My_ACM_Dream
·
2014-12-06 12:00
dp
HDU
hdu1565(
状压dp
)
题意好懂不多说。这题有两种解法,一是网络流,二是状压这题用状压做要将行压缩,那么就可以按行dp状态方程:dp[i][j]第i行状态为j时候的最大值dp[nowst][j]=max(dp[nowst][j],dp[prest][k]+ans[j]);分析会发现可以打表把所有状态离散化,因为很多状态是没用的,不过也可以每次都按照数据范围离散化,一个预处理时,一个是要用时。 #include #incl
My_ACM_Dream
·
2014-12-06 11:00
dp
HDU
[BZOJ 1072][SCOI 2007]排列perm
id=1072这题范围小,s的长度不超过10,如果用二进制表示每一位数字是否被选择到的话,二进制最大不超过2^10,可以用
状压DP
做。
qpswwww
·
2014-12-05 21:00
HDOJ 5135 Little Zu Chongzhi's Triangles
状压DP
状压DP
LittleZuChongzhi'sTrianglesTimeLimit:2000/1000MS(Java/Others) MemoryLimit:512000/512000K(Java/
u012797220
·
2014-12-04 10:00
hdu1074(
状压DP
)
这题本来很简单,代码被我写搓了,字母翘错了一个一直不出结果。#include #include #include #include #include #include #include #include usingnamespacestd;typedeflonglonglld; #defineoo0x3f3f3f3f #definemaxn1<<16 intmark[maxn];structDP{
My_ACM_Dream
·
2014-11-27 16:00
dp
HDU
上一页
29
30
31
32
33
34
35
36
下一页
按字母分类:
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
其他