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
UVALive 2031 Dance Dance Revolution (舞步转移,
状态压缩DP
,4级)
N-DanceDanceRevolutionCrawlinginprocess...CrawlingfailedTimeLimit:3000MS MemoryLimit:0KB 64bitIOFormat:%lld&%lluSubmitStatusAppointdescription:SystemCrawler(2013-06-01)DescriptionMr.White,afatma
nealgavin
·
2013-08-29 09:00
POJ 1185
状态压缩DP
1.为何状态压缩: 棋盘规模为n*m,且m≤10,如果用一个int表示一行上棋子的状态,足以表示m≤10所要求的范围。故想到用ints[num]。至于开多大的数组,可以自己用DFS搜索试试看;也可以遍历0~2^m-1,对每个数值的二进制表示进行检查;也可以用数学方法(?) 2.如何构造状态: 当然,在此之前首先要想到用DP(?)。之后,才考虑去构造状态函数f(...)。 这里有一个链式
·
2013-08-24 03:00
poj
poj 2411 Mondriaan's Dream
状态压缩DP
http://blog.csdn.net/hopeztm/article/details/8062562这篇博文比较容易懂。题目这个题目的题意很容易理解,在一个N*M的格子里,我们现在有两种类型的砖块,1*2和2*1,问一共有多少种方案,可以将整个N*M的空间都填满。最简单的例子就是下面的了:编程之美中题目:某年夏天,位于希格玛大厦四层的微软亚洲研究院对办公楼的天井进行了一次大规模的装修.原来的地
xiaozhuaixifu
·
2013-08-23 14:00
状态压缩dp
HDU 3001 Travelling (三进制
状态压缩DP
+BFS)
题意:有n个点(n #include #include #include #defineINF0x7FFFFFFF usingnamespacestd; intp[11]; intpos[60000][11]; intdist[11][11],sum[11][60000]; structnode{ intx,buff; }q[1111111]; inthead,tail,n,m,ans; void
paradiserparadiser
·
2013-08-23 11:00
poj 2686 Traveling by Stagecoach ---
状态压缩DP
题意:给出一个简单带权无向图和起止点,以及若干张马车车票,每张车票可以雇到相应数量的马。点u,v间有边时,从u到v或从v到u必须用且仅用一张车票,花费的时间为w(u,v)/ticket[i],其中w(u,v)表示边的权值,ticket[i]表示第i张车票可以雇到的马匹数。求从起点到终点花费的最小时间。如果不能到达终点,输出“Impossible”。(点数 #include #include #in
xiaozhuaixifu
·
2013-08-21 22:00
压缩
动态规划
状态压缩dp
入门题
ViewCode#include#include#definemax(a,b)(a>b?a:b)intdp[1max)max=count;}if(max>len[i][j])len[i][j]=len[j][i]=max;}}}memset(dp,0,sizeof(dp));for(i=0;imax)max=dp[i][j];printf("%d\n",max);}return0;}有个小小的注意
haha593572013
·
2013-08-19 18:00
HDOJ 1507 - Uncle Tom's Inherited Land* 构图做二分图最大匹配
题解: 这题我第一反应是
状态压缩DP
..但是看范围.好吧..二分图匹配..但是有个问题..如果直接的点对点的做边..会出现混乱..并且不符合2分图的基本模型(同侧的点无直接的任何关系才行
kk303
·
2013-08-19 16:00
POJ 1185 炮兵阵地(
状态压缩DP
)
题意:由方格组成的矩阵,每个方格可以放大炮用P表示,不可以放大炮用H表示,求放最多的大炮,大炮与大炮间不会互相攻击。大炮的攻击范围为两个方格。分析:这次当前行的状态不仅和上一行有关,还和上上行有关,所以用三维dp【i】【j】【k】来表示第i行的状态为j,i-1行状态为k时最多的大炮。一开始看数据量为100*1024*1024铁定要爆,但是由于大炮的攻击方式,单独看每一行最多只有几十种可行的状态,所
paradiserparadiser
·
2013-08-17 21:00
poj3254 poj1185
状态压缩DP
刚做
状态压缩DP
。。思路和一般的DP一样,只是每次都对应一种状态。目前只会最简单的。。用一个数的二进制表示一种状态。
小小小小葱
·
2013-08-17 16:48
DP
poj3254 poj1185
状态压缩DP
刚做
状态压缩DP
。。思路和一般的DP一样,只是每次都对应一种状态。 目前只会最简单的。。用一个数的二进制表示一种状态。
corncsd
·
2013-08-17 16:00
POJ 2411 Mondriaan's Dream (
状态压缩DP
)
题意:给定一个矩阵,只能放1*2的木块,问将这个矩阵完全覆盖的不同放法有多少种。分析:横着放为11,竖着放为竖着的01,所以判断相邻两行是否被完全覆盖:只需判断两行状态合集(j|k)是否是满的,两种状态是否有冲突(j&k)。第一行直接预处理就行。#include #include #include #include usingnamespacestd; __int64dp[12][1>1)&1)b
paradiserparadiser
·
2013-08-17 11:00
POJ 3254 Corn Fields (
状态压缩DP
)
分析:方格边长范围只有12,用
状态压缩dp
好解决。预处理:每一行的障碍用一个状态保存好 每一行不考虑障碍的所有符合要求的状态保存好 第一行的方案数记录好。然后一行一行递推,每一行只与上一行有关。
paradiserparadiser
·
2013-08-16 21:00
hdu 3001(
状态压缩dp
)
点击打开链接题意:有n个城市,m条路,每个城市最多走两次,求走完全部城市的最小路程。。。因为没个城市最多走两次,所以要用3进制,求出1k)map[i][j]=map[j][i]=k; } for(i=0;i=2)continue; if(map[j][k]==inf)continue; dp[i+t3[k]][k]=min(dp[i][j]+map[j][k],dp[i+t3[k]][k]); }
yyf573462811
·
2013-08-16 10:00
HDU
状态压缩dp
hdu1565(
状态压缩dp
)
点击打开链接题意:给你一个n*n的矩阵,每个位置有一个非负数,在矩阵中取数字,要求,取的数字,不能相邻。。用网络流做的话0ms.#include"stdio.h" #include"string.h" #defineN21 intstate[1y?x:y; } intmain() { inti,j,k; while(scanf("%d",&n)!=-1) { for(i=0;ians)ans=dp
yyf573462811
·
2013-08-16 09:00
HDU
状态压缩dp
最短路+
状态压缩dp
(旅行商问题)hdu-4568-Hunter
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4568 题目大意: 给一个矩阵 n*m (n m<=200),方格里如果是0~9表示通过它时要花费的代价,-1表示不能通过它。 矩阵中有k(k<=13)个珠宝,问从任意外边框出发取走所有珠宝并求走出矩阵的最小的代价。 解题思路: 先dij预处理每一个珠宝到其他其他珠宝的最小花
·
2013-08-15 18:00
HDU
最短路+
状态压缩dp
(旅行商问题)hdu-4568-Hunter
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4568题目大意:给一个矩阵n*m(nm#include#include#include#include#include#include#include#include#include#include#include#include#defineeps1e-6#defineINF0x1f1f1f1f#de
Accagain
·
2013-08-15 16:02
动态规划
最短路
动态规划
最短路+
状态压缩dp
(旅行商问题)hdu-4568-Hunter
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4568题目大意:给一个矩阵n*m(nm #include #include #include #include #include #include #include #include #include #include #include #include #defineeps1e-6 #defineIN
cc_again
·
2013-08-15 16:00
动态规划
最短路
[HDU 4336]Card Collection[
状态压缩DP
][概率DP][容斥原理]
题意:小吃中有N种卡片,每种卡片i出现的概率为pi,一袋小吃有可能没有卡片,但最多有一张.问集齐所有卡片需要购买小吃的袋数期望.思路:1.用状压dp,dp[s]表示在s状态时,集齐所需要的袋数期望.s=11111表示N=5时集齐的状态,此时dp[s]=0;注意求期望的题,对于dp的定义一般都是从终态转移到初态,也就是反着求.因为"期望"是确定事件的结果*该事件发生的概率=平均来看尝试一次可以得到的
zhangliang011258
·
2013-08-15 08:00
DP_
状态压缩DP
Poj2411Mondriaan'sDream(DP_
状态压缩DP
)分类: 全部博客 ACM_好题经典题 ACM_动态规划(DP)2012-09-0700:40 444人阅读 评论(1) 收藏 举报题目链接
pi9nc
·
2013-08-14 21:00
ACM_动态规划(DP)
全部博客
全部博客
ACM_好题经典题
ACM_好题经典题
状态压缩dp
hdu 4539 郑厂长系列故事——排兵布阵
解题思路:
状态压缩dp
.因为当前位置与前两行有关,所以把相邻两行作为二维状态,枚举第i-2行即可得到第i行的状态。记状态dp[][i][j]表示当前行状态为i,前一行状
cc_again
·
2013-08-13 21:00
动态规划
HDOJ 4310 - Hero 简单的
状态压缩DP
题意: hero每轮攻击消耗某个敌人1滴血...敌人血为1时就挂...每个敌人有血量(HP)和攻击值(DPS)...每一轮hero所去的血为所有存活敌人的攻击和.问hero杀死这些敌人最少需要掉多少的血.... 题解: 这两天被题虐吐...找水题来缓解下...N #include #include #include #includ
kk303
·
2013-08-12 20:00
[poj 2411]Mondriaan's Dream[
状态压缩DP
]
题意:h*w的区域铺上1*2的砖,问有几种铺法.思路:(例程来源:http://gisyhy.blog.163.com/blog/static/129390343200992441558735/http://blog.sina.com.cn/s/blog_62ebd4410100h081.html部分解读:http://blog.sina.com.cn/s/blog_68b1a51b0100j91
zhangliang011258
·
2013-08-10 19:00
HDU 4336 Card Collector
因为每种卡片出现在一包中的概率不是相等的,所以当计算集齐i种卡片时,要知道是那些已经收集到而哪些没有收集到,所以可以用
状态压缩DP
来解决。设dp[s]为收集卡片种类集合为s的期望,则有:d
HRHACMER
·
2013-08-08 13:00
hdu4336 Card Collector
状态压缩dp
CardCollectorTimeLimit:2000/1000MS(Java/Others)MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):1708AcceptedSubmission(s):780SpecialJudgeProblemDescriptionInyourchildhood,doyoucrazyforcollectin
u010422038
·
2013-08-08 10:00
UVa 1252 - Twenty Questions(记忆化搜索,
状态压缩dp
)
本文出自 http://blog.csdn.net/shuangde800 题目链接: 点击打开链接 题目大意 有n个长度为m的二进制串,每个都是不同的。 为了把所有字符串区分开,你可以询问,每次可以问某位上是0还是1。 问最少提问次数,可以把所有字符串区分开来。 思路 f[s1][s2]: 表示提问的问题是{s1}集合,答案是{s2}时,还需要问几次才可
king_tt
·
2013-08-08 00:00
uva
UVa 1252 - Twenty Questions(记忆化搜索,
状态压缩dp
)
本文出自 http://blog.csdn.net/shuangde800题目链接:点击打开链接题目大意有n个长度为m的二进制串,每个都是不同的。为了把所有字符串区分开,你可以询问,每次可以问某位上是0还是1。问最少提问次数,可以把所有字符串区分开来。思路f[s1][s2]:表示提问的问题是{s1}集合,答案是{s2}时,还需要问几次才可以全部区分开当问题集合为{s1}时,如果还不能区分所有答案
shuangde800
·
2013-08-08 00:00
dp
uva
状态压缩dp
HDU 4649 Professor Tian(反
状态压缩dp
,概率)
本文出自 http://blog.csdn.net/shuangde800 题目链接: 点击打开链接 题目大意 初始有一个数字A0, 然后给出A1,A2..An共n个数字,这n个数字每个数字分别有一个操作符,&,|,^ 且每个数字出现的概率是pi 如果某个数字出现了,那么就和前面的数字用它的操作
·
2013-08-07 19:00
SSO
HDU 4649 Professor Tian(反
状态压缩dp
,概率)
本文出自 http://blog.csdn.net/shuangde800 题目链接: 点击打开链接 题目大意 初始有一个数字A0, 然后给出A1,A2..An共n个数字,这n个数字每个数字分别有一个操作符,&,|,^ 且每个数字出现的概率是pi 如果某个数字出现了,那么就和前面的数字用它的操作符进行位运算。 问最终的期望值是多少? 思路 这
king_tt
·
2013-08-07 14:00
SSO
HDU 4649 Professor Tian(反
状态压缩dp
,概率)
本文出自 http://blog.csdn.net/shuangde800题目链接:点击打开链接题目大意初始有一个数字A0,然后给出A1,A2..An共n个数字,这n个数字每个数字分别有一个操作符,&,|,^且每个数字出现的概率是pi如果某个数字出现了,那么就和前面的数字用它的操作符进行位运算。问最终的期望值是多少?思路这题官方题解说是反状态压缩,还是第一次做这种题。知道了怎么表示状态这题就觉得
shuangde800
·
2013-08-07 14:00
动态规划
uva 10817 - Headmaster's Headache (
状态压缩dp
)
本文出自 http://blog.csdn.net/shuangde800 题目链接: 点击打开链接 题目大意 某校有n个教师和m个求职者,已知每人的工资和能教的课程集合,要求支付最少的工资使得每门课都至少有两名教师教学。在职教师必须招聘。 思路 这题不太好想,搞了很久。。 f[s1][s2]: s1表示课程集合{ s1 }都至少有一个教师教的情况。 s2表
king_tt
·
2013-08-06 00:00
master
uva 10817 - Headmaster's Headache (
状态压缩dp
)
本文出自 http://blog.csdn.net/shuangde800题目链接: 点击打开链接题目大意某校有n个教师和m个求职者,已知每人的工资和能教的课程集合,要求支付最少的工资使得每门课都至少有两名教师教学。在职教师必须招聘。思路这题不太好想,搞了很久。。f[s1][s2]:s1表示课程集合{s1}都至少有一个教师教的情况。 s2表示课程集合{s2}都至少有两个教师教的情况
shuangde800
·
2013-08-06 00:00
dp
uva
hdu 4628(
状态压缩dp
)
比赛的时候没有学习
状态压缩dp
,最近刚学习,感觉还不错,就是位运算不是太熟练应用。。
yyf573462811
·
2013-08-05 19:00
dp
HDU
状态压缩
poj 3311 (
状态压缩dp
)
点击打开链接题意:给你n个点(1~n),起点在0,给出任意两点的距离,求从0出发,走过所有的点然后回到0的最短距离。。状态压缩每个状态,枚举每个点,如果走过就求最小距离。。。#include"stdio.h" #include"string.h" #defineinf100000000 intmin(intx,inty) { returnx
yyf573462811
·
2013-08-05 16:00
poj
状态压缩dp
hdu 1185(
状态压缩dp
)
点击打开链接题意:很之前做的那一道很像,只不过是上下3个不能相邻。。。。之前Ok函数写错了,RE了好几次才发现。。#include"stdio.h" #include"string.h" #defineN110 intn,m; intcnt; intcur[N]; intstate[70]; intdp[N][70][70]; intok(intx) { if(x&(xy?x:y; } intma
yyf573462811
·
2013-08-05 13:00
poj
状态压缩dp
poj 3254(
状态压缩dp
专题)
人生第一道
状态压缩dp
。。。。state,求出所有可能出现的状态cur【i】,求出第i行0所表示的二进制数。。fit(x,k)函数表示第x行是否满足第k种状态。。。。
yyf573462811
·
2013-08-05 10:00
dp
状态压缩dp
UVa 11795 - Mega Man's Mission(
状态压缩dp
)
本文出自 http://blog.csdn.net/shuangde800 题目传送门 题意: 你最初只有一个武器,你需要按照一定的顺序消灭n个机器人(n<=16)。每消灭一个机器人将会得到他的武器。 每个武器只能杀死特定的机器人。 问可以消灭所有机器人的顺序方案总数。 思路: 看到了n的规模这么小,就知道可以用状态压缩解决了。 f[s]表示
king_tt
·
2013-08-03 23:00
SSI
UVa 11795 - Mega Man's Mission(
状态压缩dp
)
本文出自 http://blog.csdn.net/shuangde800题目传送门题意:你最初只有一个武器,你需要按照一定的顺序消灭n个机器人(n #include #include #include #include #include #include usingnamespacestd; typedeflonglongint64; constintINF=0x3f3f3f3f; cons
shuangde800
·
2013-08-03 23:00
UVA 10817 Headmaster's Headache
思路:基础的三进制的
状态压缩DP
吧,基本思想和二进制一样,只是这里需要多处理一下,用num[i][j]表示数i如果用三进制表示,那么第j位为多少,设d[s
u010794465
·
2013-08-03 19:00
UVA 11795 Mega Man's Mission
思路:简单
状态压缩DP
。
u010794465
·
2013-08-03 10:00
hdu 1074 Doing Homework (
状态压缩DP
)
连接:http://acm.hdu.edu.cn/showproblem.php?pid=1074 Doing Homework Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submissio
n89576537
·
2013-08-02 11:00
home
HDU 4284 Travel
状态压缩DP
。先用floyd求一下任意两点之间的最小费用。#i
HRHACMER
·
2013-08-01 10:00
hdu
状态压缩dp
小集(中低难度)
源自----------------------------------------------------Ice_Crazyhdu1074
状态压缩dp
入门题,关键是输出顺序。
ice_crazy
·
2013-08-01 09:09
递推
DP
hdu
状态压缩dp
小集(中低难度)
源自----------------------------------------------------Ice_Crazyhdu1074
状态压缩dp
入门题,关键是输出顺序。
Ice_Crazy
·
2013-08-01 09:00
poj 1185 炮兵阵地(经典
状态压缩dp
)
点击打开链接 思路: 经典的状态压缩题,我是来存代码的 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<vector> #include<queue&
king_tt
·
2013-07-31 12:00
poj
HDU 4628 Pieces(
状态压缩dp
)
点击打开链接题目大意:给一个字符串,每次可以删除一个可不连续回文子串,问最少删几次可以全部删完。思路:因为字符串长度最大16,所以可用二进制状态表示,1表示选取这个字符,0不选,组成一个子串。先预处理出所有状态,看这个状态是不是回文。f[i]表示状态i最少几次可以全删完,初始化f数组INFf[i]=min{f[i],f[s]+1}s是i的子集。#include #include #include
shuangde800
·
2013-07-31 11:00
HDU 4628 Pieces(
状态压缩dp
)
点击打开链接 题目大意: 给一个字符串,每次可以删除一个可不连续回文子串,问最少删几次可以全部删完。 思路: 因为字符串长度最大16,所以可用二进制状态表示, 1表示选取这个字符,0不选,组成一个子串。 先预处理出所有状态,看这个状态是不是回文。 f[i]表示状态i最少几次可以全删完, 初始化f数组INF f[i] = min{f[i], f[s]+1 } s是i的子集。
king_tt
·
2013-07-31 11:00
HDU
poj 2411 Mondriaan's Dream(
状态压缩dp
)
点击打开链接 题目大意: 有1*2和2*1两种骨牌, 问铺满m*n大小的矩形内可以有多少种铺法? 思路: 用二进制表示,连续两个00表示这两个格子是横放的, 用1表示这个格子是竖放的(是骨牌的上部分或者下部分)。 先处理得到所有符合条件的状态,即如果有0一定是要连续出现两个0. 对于第i行的状态j,j是1的地方,那么i-1行相同地方一定也要是1,0的地方是1或0都可以。 i行和
king_tt
·
2013-07-31 11:00
poj
poj 2411 Mondriaan's Dream(
状态压缩dp
)
点击打开链接题目大意:有1*2和2*1两种骨牌,问铺满m*n大小的矩形内可以有多少种铺法?思路:用二进制表示,连续两个00表示这两个格子是横放的,用1表示这个格子是竖放的(是骨牌的上部分或者下部分)。先处理得到所有符合条件的状态,即如果有0一定是要连续出现两个0.对于第i行的状态j,j是1的地方,那么i-1行相同地方一定也要是1,0的地方是1或0都可以。i行和i-1行都是1的地方,他们组成了一个竖
shuangde800
·
2013-07-31 11:00
hdu4628
状态压缩DP
这题学到了一个方法吧:如果要枚举集合S的子集:for(inti=S;i>0;i=(i-1)&S)如果要枚举包含S的集合:for(inti=S;i #include #include #include usingnamespacestd; #defineN(1q; for(inti=0;i0;i=(i-1)&s) if(is[i])dp[s]=min(dp[s],dfs(s-i)+1); retur
Hhaile
·
2013-07-31 10:00
2013 多校第三场 hdu 4628 Pieces
下午先开始我们想贪心,然后我直接敲,WA了,后来找到一个数据,推翻了贪心的想法,然后,马上开始了
状态压缩DP
,第一遍写了个记忆化,TLE,马上剪枝优化,一交,还是TLE,又把贪心的那个答案拿来剪枝,就这样减一点
u010794465
·
2013-07-30 19:00
上一页
14
15
16
17
18
19
20
21
下一页
按字母分类:
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
其他