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 3254 Corn Fields (DP_
状态压缩DP
)
题目链接:http://poj.org/problem?id=3254题目大意:给定一个n*m的矩阵,矩阵上有数值有0和1,1表示这个坐标可以放置东西,要求放置的东西不能相邻,问有多少种放法?n,m #include #defineMIN15 #defineMAX(1>1)); } intCheckPre(intcur,intpre){ return!(cur&pre); } voidState
woshi250hua
·
2012-07-14 13:00
测试
Hdu 1438 钥匙计数之一 (DP_
状态压缩DP
)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1438题目大意:一把锁匙有N个槽,槽深为1,2,3,4。每锁匙至少有3个不同的深度且至少有1对相连的槽其深度之差为3。求这样的锁匙的总数。解题思路:手贱用状态DP来写这递推题,用状态DP很好想但是编程略微复杂。用dp[i][j][k][s]来表示排到钥匙的第i个糟,i以前的槽深总状态为j,以槽深k结尾,
woshi250hua
·
2012-07-14 09:00
NOIP2005 青蛙过河(
状态压缩DP
)
过河(NOIp2005)【问题描述】 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子,青蛙很讨厌踩在这些石子上。由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点:0,1,……,L(其中L是桥的长度)。坐标为0的点表示桥的起点,坐标为L的点表示桥的终点。青蛙从桥的起点开始,不停的向终点方向跳跃。一次跳跃的距
zzp441524586
·
2012-06-11 22:00
Poj 2923 Relocation (DP_
状态压缩DP
(背包))
题目链接:http://poj.org/problem?id=2923题目大意:给定n个物品和两辆车的最大运载量,每次两辆车都要同时开动,问最少开几次能把所有物品运走,1 #include #defineMAX2100 #defineINF0xfffffff #definemin(a,b)(a)=cost[i];--j) if(vis[j-cost[i]])vis[j]=1; } for(i=
woshi250hua
·
2012-06-05 21:00
算法
测试
[
状态压缩DP
]zoj 3471:Most Powerful
大致题意: 有n颗原子,给出一个n*n的矩阵map。map[i][j]=a,则代表第i个原子和第j个相撞,且第j个原子会消失,并且释放出a的能量,现在求释放能量的最大值是多少。 大致思路: dp[b]表示状态b下的最大能量值,比如b=10,则可以二进制转化为1010,在这里我们把0看作保留这一位的原子,1看作这一位的原子消失
暴风雪
·
2012-06-05 17:00
动态规划
ACM
bbezxcy
状态压缩
zoj 3471
【基于连通性的
状态压缩DP
】【NOI2007】生成树计数
问题描述最近,小栋在无向连通图的生成树个数计算方面有了惊人的进展,他发现:·n个结点的环的生成树个数为n。·n个结点的完全图的生成树个数为n^(n-2)。这两个发现让小栋欣喜若狂,由此更加坚定了他继续计算生成树个数的想法,他要计算出各种各样图的生成树数目。一天,小栋和同学聚会,大家围坐在一张大圆桌周围。小栋看了看,马上想到了生成树问题。如果把每个同学看成一个结点,邻座(结点间距离为1)的同学间连一
Whjpji
·
2012-05-30 21:00
Date
优化
存储
Matrix
permutation
Hdu 2825 Wireless Password(字符串_AC自动机(DP))
解题思路:这题并不难,只是常规的ac自动机+
状态压缩DP
,状态转移方程比较容易想。dp[i][j][k]表示长度为i且在ac自动机上的位置是j,包含的字符串的字符串集合二进制表
woshi250hua
·
2012-05-19 13:00
struct
测试
null
insert
Build
poj 2411 Mondriaan's Dream
id=2411题目思路:
状态压缩dp
,貌似如果有多次询问相同,可以记录答案。。
Wings_of_Liberty
·
2012-04-22 22:00
USACO Charper6 AC
第一题,vans递推题(据说可以用
状态压缩DP
),我的解决方式是不能说的秘密,本地的同学有兴趣可以当面问我,反正是不易外传(就当我是看了题解然后解决的吧!)。
c++&oi
·
2012-04-21 11:00
培训作业-第六周(DP++)
第三题TicketOffice觉得是O(n)DP但不会写,于是贪心55/100第四题广场铺砖
状态压缩DP
,竟
c++&oi
·
2012-03-30 23:00
POJ1185-炮兵阵地-
状态压缩DP
1.为何状态压缩:棋盘规模为n*m,且m≤10,如果用一个int表示一行上棋子的状态,足以表示m≤10所要求的范围。故想到用ints[num]。至于开多大的数组,可以自己用DFS搜索试试看;也可以遍历0~2^m-1,对每个数值的二进制表示进行检查;也可以用数学方法(?)2.如何构造状态:当然,在此之前首先要想到用DP(?)。之后,才考虑去构造状态函数f(...)。这里有一个链式的限制:某行上的某个
chuanwang66
·
2012-03-28 17:52
POJ部分题目
POJ1185-炮兵阵地-
状态压缩DP
1.为何状态压缩: 棋盘规模为n*m,且m≤10,如果用一个int表示一行上棋子的状态,足以表示m≤10所要求的范围。故想到用ints[num]。至于开多大的数组,可以自己用DFS搜索试试看;也可以遍历0~2^m-1,对每个数值的二进制表示进行检查;也可以用数学方法(?) 2.如何构造状态: 当然,在此之前首先要想到用DP(?)。之后,才考虑去构造状态函数f(...)。 这里有一个链式
chuanwang66
·
2012-03-28 17:00
poj
POJ1185-炮兵阵地-
状态压缩DP
1.为何状态压缩: 棋盘规模为n*m,且m≤10,如果用一个int表示一行上棋子的状态,足以表示m≤10所要求的范围。故想到用ints[num]。至于开多大的数组,可以自己用DFS搜索试试看;也可以遍历0~2^m-1,对每个数值的二进制表示进行检查;也可以用数学方法(?) 2.如何构造状态: 当然,在此之前首先要想到用DP(?)。之后,才考虑去构造状态函数f(...)。 这里有一个链式
chuanwang66
·
2012-03-28 17:00
poj
poj 1185 炮兵阵地
id=1185题目大意,在保证不互相攻击的条件下放炮兵,开始题意理解有误,写了很久都没有写出来,这是一个比较好的
状态压缩dp
,先将一行的所有可能状态搜出来,再枚举所有可能状态逐行dp,这个题要枚举前两行状态
Wings_of_Liberty
·
2012-03-24 10:00
ini
poj 2411 Mondriaan's Dream(
状态压缩DP
)
又是周伟大牛论文里的例题。曾经做过一个只有两行的题,很水的DP。矩阵加大后状态也增加了很多,很自然的就用到了状态压缩。但是,看了discuss之后觉得自己又一次弱爆了,那25行的代码写的都是神马啊,看来只有膜拜的份了。还是先写好状态压缩吧。起初自己不会DFS,看了某位大牛的解题报告,理解了DFS并且表示这位大牛的DFS写的太强大了,哦还有,周伟大牛的论文太强大了,哦还没完,状态压缩后的二进制表示法
C小加
·
2012-03-21 19:00
poj 1185 炮兵阵地 (
状态压缩DP
)
我的第二道
状态压缩DP
,也是周伟论文《状态压缩》里的一道例题,核心思想这篇论文分析的很清楚,建议学习状态压缩的同学一定要看一下。 这道题做的很过瘾,收获很多,各种二进制的解法。
C小加
·
2012-03-20 21:00
sgu 223 Little Kings(
状态压缩DP
)
第一个状态压缩啊,调试了一个上午,终于过了,国王的个数原来是从0开始循环的。周伟大神的论文《状态压缩》很给力,如果不是这篇论文,我都不知道该如何入门了。哎,没人教的杯具。本题题解《状态压缩》讲的很清楚,我就不多废话了。需要注意的是范围会超int,还有对状态的范围要把握好,搞不好你也要杯具去各种调试了。自己写的DFS很挫,借用了不知道哪位大牛的DFS。#include#include#include
C小加
·
2012-03-20 11:00
炮兵阵地以及与其相关的一类状压DP问题
原题地址说实话我第一次尝试写炮兵阵地是在2009年……已经过去两年多了,终于找到了一个好的解法……庆祝一下……【
状态压缩DP
】所谓
状态压缩DP
,就是对于某些DP问题,每一阶段的状态都有很多维,要利用某些手段将它们压缩到一维
Mato is No.1
·
2012-03-10 23:00
POJ 1185 炮兵阵地
状态压缩DP
http://hi.baidu.com/brabt_king/blog/item/38396a8ad00b9414c8fc7a2f.html比较好的解题报告大概如此了。不过没有提供代码。代码参考了http://www.chenyajun.com/2010/02/20/4511哎,羞愧,还是参考了才做出来的。这种先预处理可能状态,然后再枚举的思想是重要的。根据题目中的条件,每行的状态实际上跟前两行有
sdj222555
·
2012-02-08 21:00
POJ 2411 Mondriaan's Dream
状态压缩DP
第一次看
状态压缩DP
啊。
sdj222555
·
2012-02-05 19:00
zoj 3502 Contest
/* zoj_3502dp
状态压缩dp
,二进制压缩状态,与zoj3471类似。 注意点: 1.不要被hint误导,其实仅仅是要求解出各题概率的和的最大值。 2.精度控制。
xsbailong
·
2012-01-18 16:00
zoj2563
分析:
状态压缩dp
,每个格子有三种状态,dp[i][j]表示到第i层状态为j的方法数。
Ayue
·
2011-12-04 22:00
hdu4114 有重边,有自环 一定用邻接矩阵
状态压缩DP
+SPFA//============================================================================ //Name:hdu4114
ls_0222
·
2011-11-15 12:00
POJ 2404 Jogging Trails (中国邮递员问题,
状态压缩DP
)
题意:Gord在为一场马拉松做准备,他家后面有一个公园,公园里有许多路径,这些路径连接了水上景点(n usingnamespacestd; #defineMAXN30 #defineINF999999999 #definemin(a,b)((a)0)returndp[st]; dp[st]=INF; for(inti=1;itmp)dp[st]=tmp; } } } r
Tsaid
·
2011-11-11 16:00
算法
zoj3190
/* * AC自动机,先对资源串和病毒串构成的字符串集合建立AC自动机,然后在trie树上做BFS求出在安全图上每个资源串 * 到其他资源的最短路径,最后做一遍
状态压缩dp
即可 */
goAheadtw
·
2011-11-04 17:00
状态压缩dp
bfs
AC自动机
HDU 4026 unlock the cell phone(TSP问题)
状态压缩DP
——TSP问题时间还是很慢,有时间优化下。
jxy859
·
2011-10-27 23:00
uva 10651 Pebble Solitaire
很像跳棋)
状态压缩DP
,用一个int的当前位有1表示当前位有珠子。#include #include #include usingnamespacestd; constintN=1
shiqi_614
·
2011-10-23 20:00
ZOJ3471 Most Powerful,
状态压缩DP
这题一开始没有什么想法,后来只能上网看别人的解题报告,看到了
状态压缩DP
这种做法,好神奇。。。对于有n个原子,在任何一个状态下,每个原子只有两种状态,要么就是已经被消灭,要么就是还余下来。
neofung
·
2011-10-17 08:00
email
boj 220(
状态压缩DP
)
TourismPlanningAccept:39 Submit:170TimeLimit:1000MS MemoryLimit:65536KBDescriptionSeveralfriendsareplanningtotaketourismduringthenextholiday.Theyhaveselectedsomeplacestovisit.Theyhavedecidedwhic
fp_hzq
·
2011-09-18 21:00
input
each
output
pair
Numbers
北京赛区网选 J Tourism Planning(
状态压缩DP
或最大权闭合图)
后来被师哥提示是
状态压缩DP
。 (居然有神牛真用网络流过了。。。
jxy859
·
2011-09-18 19:00
优化
网络
struct
SAP
Graph
Build
POJ 3254 Corn Fields
状态压缩DP
题意:John买了一块矩形的地。他想在上面种草喂奶牛,但是有的格子比较贫瘠不能种草,我们用0表示。否则用1表示。由于奶牛不喜欢挤在一起,所以任何两个相邻格子不能都种上草。现在问你有多少种种草的方式。当然,不种草也算一种方式。题解:第i行的第j中状态由前一行决定。故枚举第i-1行中所有与j相容的状态。 #include usingnamespacestd; #defineNum100000000
Tsaid
·
2011-09-17 22:00
c
poj 2411 Mondriaan's Dream
id=2411这个题目用
状态压缩DP
很容易理解,主要是先预处理,预处理就是把第一行合法状态置1。然后枚举第i行和第i-1行的状态,在不矛盾的情况下可以相加。
IAccepted
·
2011-09-15 23:00
位运算简介及实用技巧(四):实战篇
代码写得并不好,我只是想告诉大家位运算在实战中的应用,包括了搜索和
状态压缩DP
方面的题目。其实大家可以在网上找到更多用位运算优化的题目,这里整理出一些自己写的代码,只是为了原创系列文章的完整性。
a342374071
·
2011-08-27 11:00
游戏
Integer
input
Matrix
output
conflict
JOJ 2190: Mondriaan's Dream (
状态压缩DP
+DFS)
在网上找了很多解题报告,看了很久才理解,不过理解之后代码还是很好实现的> #include typedeflonglongll; constintmaxn=1=m) { if(c==m)dp[0][opt]++; return; } dfs(c+1,opt=m) { if(c==m)dp[r][opt]+=dp[r-1][pre]; return; } DFS(r,c+1,pren)n^=m^=
jxy859
·
2011-08-23 10:00
POJ 3254 Corn Fields(
状态压缩DP
)
我的第一道
状态压缩DP
,题目还是很水的,题意是再N*M的方格上,每个方格给出01两种状态,1是可放物品,0是不可放,问有多少种物品不相邻放置的情况,属于经典的状态压缩模型,注意下位运算的技巧,还有就是边界处理
jxy859
·
2011-08-22 15:00
Poj1699 扩展kmp与tsp
小规模的TSP问题可用
状态压缩DP
解决。 dp[state][i]为state状态下,以i为最后一个点的最长
dooder_daodao
·
2011-08-20 19:00
ext
ini
扩展
HDU--3920[Clear All of Them I]
状态压缩DP
或模拟退火
PS、正解貌似是
状态压缩DP
,DP依旧不会、感觉和售货员问题差不多,于是试了下模拟退火居然还真水过去了==!
allenjy123
·
2011-08-20 18:00
struct
poj 2663 Tri Tiling
id=2663#include #include #include usingnamespacestd; /* 最烦的就是这种数学推规律的题,递推公式推导对我来说相当困难,所以一开始我就考虑了用
状态压缩
IAccepted
·
2011-08-20 14:00
优化
zoj 3471 Most Powerful //
状态压缩DP
#include #include #include usingnamespacestd; constintN=(1<<10); intmap[11][11]; intdp[N]; intmain() { intn; while(scanf("%d",&n)!=EOF) { if(n==0)break; for(inti=0;i
hqd_acm
·
2011-08-18 20:00
hdu 3001 Travelling//
状态压缩DP
#include #include #include usingnamespacestd; constintinf=100000000; inttri[12]={0,1,3,9,27,81,243,729,2187,6561,19683,59049}; intmap[12][12]; intdig[59049][11]; intdp[59049][11]; intmain() { for(inti
hqd_acm
·
2011-08-18 19:00
HDU 3920 Clear All of Them I
状态压缩DP
2011 Multi-University Training Contest 9 - Host by BJTU
/* 参考:http://blog.csdn.net/racebug2010/article/details/6683963 第一道
状态压缩DP
state的二进制表示(如110011)表示状态第1,2
wsniyufang
·
2011-08-17 22:00
POJ 3311 Hie with the Pie //
状态压缩DP
TSP,可以用状态压缩做,记得先用FLOYED处理#include #include #include usingnamespacestd; intn; intmap[12][12]; intdp[(1map[i][k]+map[k][j]) map[i][j]=map[i][k]+map[k][j]; if(n==1) { printf("0\n"); continue; } /*for(i
hqd_acm
·
2011-08-16 19:00
poj 1185 炮兵阵地 //
状态压缩DP
注意只有一行等这些特殊情况这种
状态压缩DP
还是比较简单的,这个题是前2行推出下一行的状态#include #include #include usingnamespacestd; constintMAXN
hqd_acm
·
2011-08-15 21:00
poj 3254 Corn Fields //
状态压缩DP
#include #include constintMAXN=(1>1)))continue;//相邻的情况 state[id][++state[id][0]]=i; //printf("i=%d\n",i); } } voidsolve() { //printf("num=%d\n",state[0][0]); for(inti=1;i<=state[0][0];i++)dp[0][i]=1;
hqd_acm
·
2011-08-15 18:00
dp专辑F - Mondriaan's Dream [状态压缩]
题意:求一个 n*m 的矩形用 1*2 的矩形进行覆盖的方法总数分析:
状态压缩dp
[r][k]表示第r行的凸出状态为k(竖着)时,前r行最多的方案数,结果就是dp[row-1][0](row从0开始)/
lmyclever
·
2011-08-14 21:00
hdu 2809 God of War //
状态压缩DP
用记忆话搜索的可能时间上稍微慢点。 /* 几个陷阱吧 一个是可能出现攻击比防御小的情况,那么取伤害为1 另一种就是经验不清零,题目没提及吧 */ #include #include structLVBU { intATI,DEF,HP,EXP,level; }peo[21],lv; intIn_ATI,In_DEF,In_HP; intn; intN; LVBUdp[1>=1; i++; con
hqd_acm
·
2011-08-14 14:00
hdu 3920 Clear All of Them I
状态压缩DP
主要是由于每次从最右边的1开始找,所以一般的正推可能会导致产生很多冗余状态记忆话搜索的话会好不少#include #include #include #include usingnamespacestd
hqd_acm
·
2011-08-12 15:00
hit Fish Can Fly
状态压缩DP
愣是没看出来。。。。。
hqd_acm
·
2011-08-11 11:00
状态压缩DP
入门题
做了这一题,大概明白状态压缩是怎么回事了。。。 参考了牛人的代码~代码涉及的位运算不多,还好理解,有些大牛用来了很多位运算技巧,直接看不懂poj3254CornFields http://poj.org/problem?id=3254题意:输入m行n列的数字,其中为1或者是0,1表示土壤肥沃可以种植草地,0则不可以。在种草地的区域可以放牛,但相邻的四个区域不允许同时放牛,问有多少种放牛的方法?分析
lmyclever
·
2011-08-10 10:00
HDU3920 状压DP+优化+记忆化搜索
先按每个点到射击点的距离排个序,然后记忆化搜索,用
状态压缩dp
即可#include #include #include #include usingnamespacestd; constintMAXN
AcCry
·
2011-08-09 21:00
优化
input
上一页
15
16
17
18
19
20
21
22
下一页
按字母分类:
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
其他