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
【状态压缩】
NEFU704(AC自动机+
状态压缩
)
题目:PasswordLeakage#include #include #include #include usingnamespacestd; charS[1000010]; charkeyword[51]; charstr[51]; charT[51]; classTrie { public: intcount; Trie*fail; Trie*next[26]; Trie() { co
ACdreamers
·
2013-08-04 19:00
UVa 11795 - Mega Man's Mission(
状态压缩
dp)
思路: 看到了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
BFS+
状态压缩
hdu-1885-Key Task
解题思路:BFS+
状态压缩
。将每种颜色对应一个二进制数位,1表示已经得到该颜色的钥匙,0表示没有得到。一把钥匙可以同种颜色的多扇门。代码: #include #i
·
2013-08-03 22:00
task
hdu 4640 多校第四场
状态压缩
+最短路+dp
应该注意到n很小,说明我们可以位压缩处理每种状态预处理出一个人从1出发,已经走到哪些点(用状态记录),最后到达哪个点的最小花费,用广搜spfa之后i个人走,是一个人的效果的i次叠加,用类似背包的过程,注意要从大到小枚举状态,避免转移重复,dp标程错了,它处理成不能回到1,我wa了很久,主要手写队列搞挫了。。。开始时不会做是因为看不到问题的本质,本质就是搞出一个人时候的最短路,然后dp叠加出来,中间
未水
·
2013-08-03 20:52
ACM
动态规划
图论
hdu 4640 多校第四场
状态压缩
+最短路+dp
应该注意到n很小,说明我们可以位压缩处理每种状态预处理出一个人从1出发,已经走到哪些点(用状态记录),最后到达哪个点的最小花费,用广搜spfa之后i个人走,是一个人的效果的i次叠加,用类似背包的过程,注意要从大到小枚举状态,避免转移重复,dp标程错了,它处理成不能回到1,我wa了很久,主要手写队列搞挫了。。。开始时不会做是因为看不到问题的本质,本质就是搞出一个人时候的最短路,然后dp叠加出来,中间
Jackyguo1992
·
2013-08-03 20:00
UVA 10817 Headmaster's Headache
思路:基础的三进制的
状态压缩
DP吧,基本思想和二进制一样,只是这里需要多处理一下,用num[i][j]表示数i如果用三进制表示,那么第j位为多少,设d[s
u010794465
·
2013-08-03 19:00
HDU 1429 胜利大逃亡(续) (BFS +
状态压缩
)
把钥匙的有无情况
状态压缩
:01代表有1号钥匙,10代表有2号钥匙,11代表有1号和2号钥匙........................................................
paradiserparadiser
·
2013-08-03 13:00
UVA 11795 Mega Man's Mission
思路:简单
状态压缩
DP。
u010794465
·
2013-08-03 10:00
hdu 4634 Swipe Bo 搜索
还有一种容易造成死循环的,比如#E##DLLLD..UD.SURRRU这样的话就必须要标记下当前位置某个方向获得钥匙的状态是否被访问过了,获得钥匙的状态可以
状态压缩
来表示。
u010710717
·
2013-08-02 16: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 4628 Pieces(DP +
状态压缩
)
Pieces题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4628题目大意:给定一个字符串s,如果子序列中有回文,可以一步删除掉它,求把整个序列删除所需要的最少步数。比如: axbyczbea可以一次删除掉 abcba得到 xyzeSampleInput2aaabb SampleOutput12分析:这道题目刚出来时居然有超过一半的人AC,是我太弱了
·
2013-08-02 09:00
HDU
状态压缩
周伟论文+代码+例题
所有题解报告可以在周伟论文中看到但是没有代码 下面是我自己的或者从网上搜集到的代码在n*n(n≤20)的方格棋盘上放置n个车(可以攻击所在行、列),求使它们不能互相攻击的方案总数。仅供和我一样的菜鸟们参考#include #include usingnamespacestd; __int64a[1100000]; intmain() { __int64n; while(cin>>n)
zhang360896270
·
2013-08-01 13:00
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
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
UVA 11825 Hackers' Crackdown
思路:先开始这道题没想法,又是要全部停止才算瘫痪,又是网络的,后来一看数据范围,n是16,马上就想到
状态压缩
了,可是就感
u010794465
·
2013-07-30 21:00
hdu 4628 - Pieces(压缩dp)
思路:用
状态压缩
把所有的状态枚举出来,用数组记录所表示状态所有字符被删除干净的最少次数。状态:dp[x]表示在状态x下把所有字符删除的最少次数。
shankeliupo
·
2013-07-30 19:00
2013 多校第三场 hdu 4628 Pieces
下午先开始我们想贪心,然后我直接敲,WA了,后来找到一个数据,推翻了贪心的想法,然后,马上开始了
状态压缩
DP,第一遍写了个记忆化,TLE,马上剪枝优化,一交,还是TLE,又把贪心的那个答案拿来剪枝,就这样减一点
u010794465
·
2013-07-30 19:00
SGU 131 Hardwood floor
分析:覆盖模型,
状态压缩
DP。具体见周伟《
状态压缩
》。Code:#include #include #include #include #include #
HRHACMER
·
2013-07-30 10:00
POJ 2411 Mondriaan's Dream
分析:具体见周伟《
状态压缩
》。。
HRHACMER
·
2013-07-29 21:00
SGU 223 Little Kings
分析:
状态压缩
DP。与POJ1185 炮兵阵地相似。但与之不同的是这里没有地形的限制,且当前行的状态只与前一行的状态和当前行之前所放置的国王总数有关。因此可以将这两种
HRHACMER
·
2013-07-29 15:00
ZOJ 3471 Most Powerful
分析:
状态压缩
DP。假设一个数,第i位表示第i个原子是否被灭掉,如果被灭掉则为1,没被灭掉为0,那么所有状态都可以用2^n范围内的数来表示。假设对于其中一个数(n=4)1010,(也就是十进制的10
HRHACMER
·
2013-07-28 22:00
HDU 3001 Travelling
分析:
状态压缩
DP,类似于旅行商问题。但每个地方有3个状态:没去过,去过一次,去过两次。因此可以用3进制记录每个点的3种状态。而且此题只要求到达每个地方即可,并不需要回到出发点。
HRHACMER
·
2013-07-28 11:00
UVa10651(记忆化搜索)
题意:给一串-和o组成的字符串,你可以把“-oo"变成”o--",可以把“oo-”变成“--o",问最后最少有多少个o.
状态压缩
,记忆化搜索code:#include #include #definelen12
yew1eb
·
2013-07-26 11:00
HDU 4272LianLianKan 2012长春网络赛F题(思维) 暴力,dfs可以水过,正解是
状态压缩
dp
LianLianKanTimeLimit:2000/1000MS(Java/Others) MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):1848 AcceptedSubmission(s):584ProblemDescriptionIlikeplayinggamewithmyfriend,althoughsomet
opm777
·
2013-07-25 13:00
HDU
思维
网络赛
积分赛
POJ搜索专题(转转)
091020AnniversaryCake1022PackingUnit4DCubes1024TesterProgram1054TheTroublesomeFrog1062昂贵的聘礼暂告一段落,先把DP题做一下,因为两者有很多交叉的地方,有很多题DP和搜索都可以,有些DFS的题需要
状态压缩
paradiserparadiser
·
2013-07-24 15:00
uva10911 - Forming Quiz Teams(简单动归)
记忆化搜索+
状态压缩
用二进制的01表示是否已分配的状态。状态:dp[x]表示在状态x下所能达到最小的距离。
shankeliupo
·
2013-07-22 00:00
uva11825 - Hackers' Crackdown(
状态压缩
dp)
题意:有n台计算机的网络,每台计算机上都运行着n种服务,对于每台计算机你都可以选择一项服务,终止这台计算机上的和所有和它相邻的计算机的该项服务你的目标是让尽量多的服务完全瘫痪,(即:没有任何一台计算机运行该项服务)思路:把每台计算机和其相邻的计算机放入集合p[i]中,把n个集合p[i]分成尽量多的且两两没有交集的分组,使得每个分组的所有集合的并集等于全集。那么最后我们可以利用每一个分组来停止一项服
shankeliupo
·
2013-07-21 11:00
POJ 2411: Mondriaan's Dream
算法:这道题用普通的
状态压缩
DP的话,打表也可以过。也就是用一个m位二进制数,0表示上一行的这个位置未被覆盖,1表示被覆盖。然后逐行转移。
frog1902
·
2013-07-20 19:00
Wiki OI 1174 靶形数独
题目链接:http://wikioi.com/problem/1174/算法与思路:
状态压缩
+启发式搜索想要看懂这篇题解需要有一定位运算的基础,初学者可以参考以下链接http://www.matrix67
Re_cover
·
2013-07-20 16:00
codeforces 327
E:
状态压缩
DP,差不多也是枚举状态,不过要各种位运算记录,好麻烦。
cugbbaoge
·
2013-07-20 13:00
codeforces
Baoge
Hackers’ Crackdown-----UVA11825-----DP+
状态压缩
题目地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2925题目意思:有N台机器,每台机器上有N个服务你可以对每台机器选择关闭他以及和他相邻的机器的一种服务当所有机器不能运行一个服务时,就是摧毁了一种服务问你最多能摧毁多少个服务解题思路:这道题是大白上
·
2013-07-18 19:00
rack
HDOJ 1755 - A Number Puzzle 排列数字凑同余,
状态压缩
DP
dp[x][y][z]表示二进制y所表示的组合对应的之和modx余数为z的最小数... 如可用的数字为1234...那么dp[7][15][2]=1234.... 输入一个数列后..将dp的表做出来..然后O(1)的输出...题目要求是(T+X)%K=0可以转化为T%K=(K-(X%K))%K Program: #include #include #include #inclu
·
2013-07-17 21:00
number
HDOJ 1755 - A Number Puzzle 排列数字凑同余,
状态压缩
DP
dp[x][y][z]表示二进制y所表示的组合对应的之和modx余数为z的最小数... 如可用的数字为1234...那么dp[7][15][2]=1234.... 输入一个数列后..将dp的表做出来..然后O(1)的输出...题目要求是(T+X)%K=0可以转化为T%K=(K-(X%K))%K Program:#include #include #include #include #
kk303
·
2013-07-17 08:00
CF11D A Simple Task
http://codeforces.com/problemset/problem/11/D一看以为是图论吓尿了,其实是
状态压缩
DP。感谢frog神提供思路。
huangshenno1
·
2013-07-16 21:00
poj 1768 Hang or not to hang 离散化+搜索+
状态压缩
题目链接:http://poj.org/problem?id=1768题目意思:给你n种命令,最多32个寄存器,问可能的最少的执行命令次数,使程序终止。解题思路:对于不能直接和间接影响JZ中的寄存器的寄存器的状态可以是任意,因为他们每一步都是确定的,最终命令执行的次数与初始状态无关。所以先找出直接和间接影响JZ中的寄存器的寄存器,由于命令最多只有16个,所以除去STOP和JZ,最多只有14个命令,
cc_again
·
2013-07-16 20:00
HDOJ 1400 & POJ 2411 - Mondriaan's Dream
状态压缩
DP
dp[r][k]代表第r行的占有情况是二进制k(0为空,1为已占)....每次更新枚举每行的情况..看怎么来摆..首先要保证摆的自我不冲突.然后它的更新来源可以推出来(因为每个方块最多影响其上一层的..而题目要求必须所有位置都填满..那么确定了本行的放置情况,其中竖着放回占有上面一行的一格,所以上行对应的就是0....不放或横着放必须保证上面已经占有.即上一行对应位置为1..)...Progr
kk303
·
2013-07-16 17:00
HDOJ 2442 -bricks 六进制
状态压缩
DP 一直TLE.打表过的..
有5个砖块..加上一个空着不放..那么有6种状态..所以很明显的可以用6进制的状态DP... 不过这么做..我觉得我已经能优化的都优化了...还是超时..一看数据范围是100*6..打表先AC了.. 看有大神用3进制状态DP水过..Orz...看了好久没看懂...觉得自己状态DP还是很表面~~Program:#include #include #include #include #incl
kk303
·
2013-07-16 16:00
HDOJ 2640 - Toy bricks
状态压缩
DP
这道题和炮兵阵地很像,不同的是炮兵阵地是每个炮兵不能相互干扰..这题是每个块不能有交集...处理起来稍微麻烦点...Program:#include #include #include #include #include #include #defineoo1000000007 #definelllonglong #definepiacos(-1.0) #defineMAXN505 usin
kk303
·
2013-07-16 12:00
sgu 223 - Little Kings
状态压缩
DP
裸状态DP....dp[n][k]...n表示当前的状态...k表示已经放好的King数量 Program:#include #include #include #include #include #include #defineoo1000000007 #definelllonglong #definepiacos(-1.0) #defineMAXN505 usingnamespacestd
kk303
·
2013-07-16 10:00
sgu 222 - Little Rooks 简单的
状态压缩
DP
每行的状态用二进制数表示~~自己好些地方没细心~导致WA了很久..Program:#include #include #include #include #include #include #defineoo1000000007 #definelllonglong #definepiacos(-1.0) #defineMAXN505 usingnamespacestd; lldp[12][1
kk303
·
2013-07-14 20:00
SOJ 1091: 指环王
然后
状态压缩
是用的二进制,单独保存空格的位置。代码如下:#include
frog1902
·
2013-07-14 16:00
HDU 4540 威威猫系列故事——打地鼠 (
状态压缩
DP)
威威猫系列故事——打地鼠 Time Limit: 300/100 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 755 Accepted Submission(s): 416 Problem
·
2013-07-13 22:00
HDU
上一页
41
42
43
44
45
46
47
48
下一页
按字母分类:
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
其他