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
【状态压缩】
HDU 3681 Prison Break(BFS+二分+
状态压缩
DP)
Problem Description Rompire is a robot kingdom and a lot of robots live there peacefully. But one day, the king of Rompire was captured by human beings. His thinking circuit was changed by human and
·
2015-11-12 21:01
break
POJ 2923 Relocation(
状态压缩
+ 两次DP)
题意: 有n个家具要搬运,两辆搬运车的容量分别是c1, c2,搬运的过程要求两辆搬运车一起来回。问最少需要多少趟能把家具搬完。 思路: 1. 因为n的范围是 n <= 10, 所以可以把家具压缩成状态 s 2. 判断状态 s 所表达的家具是否能有两辆车一次搬运完成,如果能则把状态 s 在 state[] 数组记录下来为 state[] = s 3. 对 state[] 状态数组再进
·
2015-11-12 20:23
location
ZOJ3718 Diablo II(
状态压缩
dp)
题意:一个人物有K(K<=7)种技能,每种技能都有bi,ci,di值,表示该技能不能点超过bi次,每点一次加ci,点满bi次有一个附加得分di。然后还有N件武器,武器本身会有能力加成,然后每个武器可能会对应着多种的技能,当你装备了这些武器的时候对应的技能的技能点+1(但是武器的技能点不能重复,也就是如果a武器和b武器都能提高技能1的话,如果你两件都装备了只算一次)。现在这些都给定给你了,问的
·
2015-11-12 19:38
ZOJ
UVa10651(记忆化搜索)
状态压缩
,记忆化搜索 code: #include <stdio.h> #include <string.h> #define len 12 #define min
·
2015-11-12 19:15
uva
COJ 1175 A Tour Around Hangzhou (最短路+
状态压缩
DP)
最后用
状态压缩
DP求结果(
状态压缩
DP参考上一篇)。 View Code #include &
·
2015-11-12 19:48
round
COJ 1129 送货到家 (
状态压缩
DP)
分析:看到n<=15这样的条件容易想到
状态压缩
DP。hamilton回路其实就是n个城市的一个圆排列,任选一个起点最后的结果都一样,我们不妨设结点0为起点,状态设计也就不难了。
·
2015-11-12 19:47
压缩
暑假集训每日一题0720(
状态压缩
DP)
Description 有N个点,有一个商人想经过所有的点恰好一次(商人最终不一定要回到起点),求商人需要走最短路程。 Input 两个整数N,M表示图的点数和边数,接下去有M行,每行三个整数a ,b ,c 表示从a到b有一条无向边,长度是c N<=15 c<=10000 Output 输出商人需要走过的最
·
2015-11-12 19:15
压缩
插头与轮廓线与基于连通性
状态压缩
的动态规划
什么是基于
状态压缩
的动态规划 基于
状态压缩
的动态规划问题是一类以集
·
2015-11-12 19:44
动态规划
[poj 2978]Colored Stones[
状态压缩
DP]
题意: 给出n个石子,一共m种颜色.问最少去掉几个石子使得同种颜色全连续. 思路见注释. #include <algorithm> #include <cstdio> #include <cstring> using namespace std; const int kMAX=105; /// dp[x][y][z],x指
·
2015-11-12 18:59
color
POJ 3311 Hie with the Pie (BFS+最短路+
状态压缩
)
分析:
状态压缩
,先预处理各点之间的最短路,然后sum【i】【buff】表示在i点,状态为buff时所耗时。。。。。。。
·
2015-11-12 17:14
with
HDU 5067 (
状态压缩
DP+TSP)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5067 题目大意:蓝翔挖掘机挖石子。把地图上所有石子都运回起点,问最少耗时。 解题思路: 首先得YY出来。 最少耗时肯定是从起点出发,把所有石子点走一遍且只走一遍,把石子装在车上,然后最后回到起点。 由于石子堆最多也就10个。不难看出这就是个裸的TSP。 首先BFS计算出每个石子
·
2015-11-12 17:01
HDU
HDU 4856 (
状态压缩
DP+TSP)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4856 题目大意:有一个迷宫。迷宫里有些隧道,每个隧道有起点和终点,在隧道里不耗时。出隧道就耗时,你的任务是访问完所有隧道且仅一次,求最短耗时。 解题思路: 暑假练习的时候。把英文读了N遍也没理解题意。 其实就是个最后不回到开头的TSP。 首先求BFS求两两隧道之间的最短路,注意B
·
2015-11-12 17:55
HDU
HDU 1429 (BFS+记忆化状压搜索)
有了门之后,就要
状态压缩
+记忆化搜索。不然这个图会搜死你。 本题的
状态压缩
基于一个事实:尽管可以走回头路,但是回头是有理由
·
2015-11-12 17:53
HDU
HDU 4511 (AC自动机+
状态压缩
DP)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4511 题目大意:从1走到N,中间可以选择性经过某些点,比如1->N,或1->2->N,但是某些段路径(注意不是某些条)是被禁止的。问从1->N的最短距离。 解题思路: AC自动机部分: 如果只是禁掉某些边,最短路算法加提前标记被禁的边即可。 但
·
2015-11-12 17:48
AC自动机
POJ 3691 (AC自动机+
状态压缩
DP)
题目链接: http://poj.org/problem?id=3691 题目大意:给定N个致病DNA片段以及一个最终DNA片段。问最终DNA片段最少修改多少个字符,使得不包含任一致病DNA。 解题思路: 首先说一下AC自动机在本题中的作用。 ①字典树部分:负责判断当前0~i个字符组成的串是否包含致病DNA,这部分靠字典树上的cnt标记完成。 ②匹配部分:主要依赖于
·
2015-11-12 17:47
AC自动机
poj 3254 Corn Fields_
状态压缩
dp
感谢:http://www.cnblogs.com/ka200812/archive/2011/08/11/2135607.html 让我搞懂了。 #include <iostream> #include <cstring> #include<cstdio> #include <vector> using namespace std; int n
·
2015-11-12 17:57
Field
UVa 10817 Headmaster's Headache(
状态压缩
DP)
题意: 有一个学校想要聘请老师,要求每个学科都有两个以上的老师授课,并且要使总费用最小。有S(最多8个)个学科,现任的M(最多20个)个老师(你必须继续聘请他们),N(最多100个)份申请。后来的M行每行有至少两个整数,表示现任的老师的工资,和他所教授的课程(可能不止一个)。再后来的N行每行有也有至少两个整数表示聘请这个老师所需的费用,以及他所教授的课程(可能不止一个)。 思路: http:
·
2015-11-12 17:28
master
UVa 10911 Forming Quiz Teams(
状态压缩
DP)
(看了别人的题解才想起来怎么去做,关于
状态压缩
的动归,还是没能很好的形成思维。
·
2015-11-12 17:23
form
UVa 10029 Edit Step Ladders(hash
状态压缩
DP)
题意: 给定多个字符串,是按照字典顺序排列的。一个字符串如果能够可以通过改变一个字母,删除一个字母,增加一个字母变成后面的某一个字符串, 那么称这两个字符串之间存在一个阶梯,问最多有多少个阶梯。 思路: http://www.cnblogs.com/staginner/archive/2011/11/30/2269222.html 这一题的难点在于题目数据量很大,O(n^2)的算法铁定会
·
2015-11-12 17:20
hash
UVa 10651 Pebble Solitaire(
状态压缩
DP)
题意: 类似于跳棋,当两颗石子左或者右有空位置时,移动。每次转移之后移去经过的石子。 思路: 有12个格子,所以状态最多有2^12=4096个。把每次搜索过的状态存在dp[]数组中,以后再次查询类似的直接返回即可。 #include <cstdio> #include <cstdlib> #include <cstring> #define
·
2015-11-12 17:12
AIR
hdu4336 Card Collector
状态压缩
dp
Card Collector Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1708 Accepted Submission(s): 780 Special Judge Problem Description In your ch
·
2015-11-12 17:15
Collector
uva 1601 poj 3523 Morning after holloween 万圣节后的早晨 (经典搜索,双广+预处理优化+
状态压缩
位运算)
这题数据大容易TLE 优化:预处理, 可以先枚举出5^3的状态然后判断合不合法,但是由于题目说了有很多墙壁,实际上没有那么多要转移的状态那么可以把底图抽出来,然后3个ghost在上面跑到时候就不必判断了,减少了两次无用的枚举。 减少代码的方法:1.结点没有3个时增加冗余点,2.把位置坐标二元组编号成一个数,这点在预处理时可以顺便完成(坐标范围0~15),3.把三个ghost的位
·
2015-11-12 17:09
AFTER
Flip Game--POJ 1753
有一段时间没有做acm题目了,感觉智商下降了不少,这倒
状态压缩
枚举题,以前没有做过,还是最简单的一题,所以结果可想而知,忧伤,可还是不想放弃。
·
2015-11-12 16:08
game
黑客的攻击 Hacker‘s crackdown UVA11825
状态压缩
动态规划
题目的意思是有n台服务器运行着n类程序,一个黑客有n中类的病毒,最多每台服务器可以放一种病毒,但是相邻的服务器会感染同种病毒,只暂停一种服务,问能够暂停的程序的最大种数。 解决的方法是,用位表示集合,问题的答案相当于是求出最多集合的组合,组合内的集合并集是全集。求这些组合最大的数目。转移方程式f[s]={f[s^s0],s0这种组合内的集合并集是全集}+1. 这里涉及到一些集合的操作: 或运
·
2015-11-12 16:37
rack
HDU 3635 Dragon Balls
题解:做到一种并查集的新题型,在
状态压缩
的时候传递祖先的信息,每个根结点都是最多移动一次的,所以记录移动次数把自己的加上父亲结点的就是移动总数了。
·
2015-11-12 16:32
drag
hdu 5067 Harry And Dig Machine
这就是经典的旅行商问题,考虑到我们必须要遍历的点只有不到10个,可以用
状态压缩
解决。 dp[i][j]表示i状态的点被访问过了,当前停留在点j 需要的最少时间,状态转移方程:dp[i|(1<
·
2015-11-12 16:30
mac
HRBUST 1473 教主的遗产【
状态压缩
】
Description 恭送教主! 教主在2012年7月19日上午10:48,坐上前往北京的火车,从此开始了高富帅的生活。 在教主的的大学四年ACM生涯中,他用事实告诉我们,要想在比赛拿奖,除了平时的刻苦努力外,很大一部分还要依赖比赛时是 做题策略,简单来讲就是做题顺序,唯有想把能过的都过掉,然后再过难题,这样才能在比赛中拿奖。 我们将用这个做题顺序量化表示
·
2015-11-12 15:24
压缩
ZOJ 3471 Most Powerful 【
状态压缩
】
Recently, researchers on Mars have discovered N powerful atoms. All of them are different. These atoms have some properties. When two of these atoms collide, one of them disappears and a lot of power
·
2015-11-12 15:23
ZOJ
POJ 3254 Corn Fields【
状态压缩
】
Description Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ≤ 12) square parcels. He wants to grow some yummy c
·
2015-11-12 15:22
Field
算法训练想法
http://www.doc88.com/p-468115455065.html 排序训练:冒泡、选择、快速排序 大数问题:大数加法、减法、乘法、除法 hdu:大菲波数 动态规划:背包问题、
状态压缩
·
2015-11-12 15:06
算法
HDU 1429
pid=1429 经典的找钥匙开门走迷宫问题,把钥匙
状态压缩
一下,然后对迷宫bfs #include <iostream> #include <cstdio> #
·
2015-11-12 14:51
HDU
HDU 1074
pid=1074 每个任务有一个截止日期和完成时间,超过截止日期一天扣一分,问完成全部任务最少扣几分,并输出路径 最多15个任务,
状态压缩
一下进行dp,输出路径的话要记录每种状态的前驱,存起来逆序输出
·
2015-11-12 14:39
HDU
HDU 4856
pid=4856 西安邀请赛的一道题,这道题我们当时在现场最后1h才发现时
状态压缩
dp,惊险写出 现在回头想发现当时有点呆,这种明显tsp模型的题目当时鬼迷心窍去写搜索,超时而不知悔改,实际是水题一道
·
2015-11-12 14:29
HDU
HDU 5067
pid=5067 规定起点和终点的tsp问题,解法依然是
状态压缩
dp,在初始化和计算答案的时候略做改动即可 #include <iostream> #include <cstdio
·
2015-11-12 14:29
HDU
HDU 5045
m的矩阵代表第n个学生解第m题AC的概率,任意两学生做题数差距不能大于1,问AC所有题目概率的最大值 由于限制条件,所以一定是以n个学生为单位,一轮一轮的做题,直到做m题为止,这样题目就转化为了一个
状态压缩
·
2015-11-12 14:26
HDU
HDU 3605
3605 用最大流做的,G++超时,C++可以过,看别人写的叫二分图多重匹配,还不会这玩意一会学学 显然的最大流模型,n是100w,直接做最大流一定超时,但是注意到m只有10,所以可以对所有点进行
状态压缩
·
2015-11-12 14:24
360
HDU 5025
pid=5025 蛇最多只有五条,
状态压缩
一下,vis增加两维,表示取得钥匙的状态和蛇的状态,然后一个优先队列的bfs即可解决问题,简单题 #include <iostream>
·
2015-11-12 14:21
HDU
2014 Super Training #6 G Trim the Nails --
状态压缩
+BFS
原题: ZOJ 3675 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3675 由m<=20可知,可用一个二进制数表示指甲的状态,最多2^20,初始状态为0,表示指甲都没剪,然后BFS找解,每次枚举剪刀的两个方向,枚举移动的位数进行扩展状态即可。 代码: #include <iostr
·
2015-11-12 14:33
super
2014 Super Training #4 B Problem Arrangement --状压DP
这题不会做,看网上是用
状态压缩
DP做的。 定义: dp[i]
·
2015-11-12 14:27
super
【上海交大oj】邮递员小F(
状态压缩
dp)(旅行商问题)
1088. 邮递员小F Description 因为制造类专业很难在大城市立足,曾经立志振兴中华之工业的小F,果断在本科毕业后转行做了一名光荣的邮递员。 他的任务是每天从总局出发,行走于所管辖区域的若干的邮局,收集所有的信,然后再汇总返回总局。 因为工作繁忙,同一个邮局他每天只希望去一次。 来往于任意两个邮局是有一定代价的。而且为了方便统计,假定来回两条道路上的代价假设是一样的。 现
·
2015-11-12 14:34
压缩
【上海交大oj】畅畅的牙签袋(
状态压缩
dp)
1383. 畅畅的牙签袋 题目描述 畅畅说:“你们都说窝脑子瓦特了,我看你们才是脑子瓦特嘞- -” 为了阻挠我们再次揭露他的无chǐ,畅畅妄图破坏我们的显示器,他拿出了自己收集的牙签包装袋,其大小是1×2的矩形,他想用密铺的方式把显示器全部遮挡住。显示器大小是W×H的矩形,畅畅把包装袋背面涂上了胶水,开始一块一块粘到显示器上,要求不能有包装袋重叠,也不能有显示器的某
·
2015-11-12 14:33
压缩
Mondriaan的梦(
状态压缩
dp)
题目原题可以看POJ2411,大意是给出m*n的矩形,要用2*1的矩形将它铺满(不能讲一个矩形铺在另外一个上面),求方案数,并且只要不是完全相同的就算不同的方案,也就是对称算不同的方案。 F[i][s]表示前i-1行已经填满,并且第i行的状态是s的方案数。 F[i][s]=sum(F[i-1][s’]); s‘能转移到s。如何根据s来确定s'呢。这里用一个dfs实现,一位一位去填充s'。扫描
·
2015-11-12 14:13
RIA
HDU 1074 (
状态压缩
DP)
也就是
状态压缩
DP。 用二进制位表示做作业的顺序。总bit=1<<15。 对于状态i,枚
·
2015-11-12 13:41
HDU
POJ 1691 Painting A Board(
状态压缩
DP + 记忆化搜索)
矩形的数量不超过 15,所以自然的联想到利用
状态压缩
去解决问题,并且为了解决无后效性
·
2015-11-12 13:43
paint
POJ 1185 炮兵阵地(
状态压缩
DP)
题意: 求最大的炮兵摆放数量,并且使他们之间不相互误伤。 NOI 01 的题目。 思路: 1. 和 POJ 1038 类似,把行看成是一个整体,每一种摆放代表着一种状态,r-2, r-1 行的状态决定着 r 行的状态; 2. 本题状态比较稀疏,所以提前处理下炮兵的摆放无意是比较好的选择,由于没两个炮兵之间至少相距为 2,利用这个把每一行的炮兵可能摆放情况存放起来; 3. dp[r][i
·
2015-11-12 13:41
poj
POJ 1038 Bugs Integrated(
状态压缩
DP)
题意: 将 2*3 的芯片嵌入 n*m 的单位尺寸模板中,模板上面有一些坏点将被标记出,求最大的芯片数量。 黑书 138 页的例题, CEOI 2002; 思路: 1. 由于 m <= 10,所以可以针对每一行看成一个整体,根据情况来产生一个状态,首先肯定是枚举当前行的状态,来产生下一行的状态了,时间复杂度为O(nm3m); 2. 递推的过程中,因为是由一个已知状态,转移到多个未知
·
2015-11-12 13:41
integrate
POJ 2688 Cleaning Robot(BFS + A* +
状态压缩
DP)
题意: 给你一个N * M(1 ≤ N, M ≤ 20)的地图,'.'表示空位,'*'表示垃圾,'o'表示机器人的初始位置,'x'表示墙。请你计算机器人清理完所有的垃圾至少要走多少步。 机器人一旦走到垃圾上,垃圾就被清掉了。输入数据保证垃圾不多于10个。 思路: 1. 先 BFS 求出任意两个污点间所需要的最小步数。题目保证了污点数不超过 10 个,这时候可以应用经典的 TSP 模型,用状
·
2015-11-12 13:28
robot
POJ 1321 棋盘问题(
状态压缩
DP | DFS)
如果用
状态压缩
的动态规划来看待的话有: 第 i 行不放棋子,dp[i
·
2015-11-12 13:20
poj
hdu 2167 Pebbles(
状态压缩
DP)
入门级
状态压缩
dp题。 题意:从方格中取一些数,要求所取位置不相邻(包括对角线相邻),求最大的和。
·
2015-11-12 12:27
HDU
poj 1185 & hdu 4539(
状态压缩
DP)
这两道题如出一辙,只是判断有效状态有一点小差异。 每一行的状态只与前面两行的状态有关,每行可以压缩为二进制的集合,设状态dp[i][j][k]为第i行为集合j,第i-1行为集合k, 得出状态方程dp[i][j][k] = max{dp[i-1][k][r]+cnt[j] | 状态i,j,k要能够共存}(cnt[j]为j在二进制下的1的个数,即士兵数)。第一维可以压缩为2,即两种状态
·
2015-11-12 12:26
poj
上一页
22
23
24
25
26
27
28
29
下一页
按字母分类:
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
其他