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
zoj3471Most Powerful
状压dp
#include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <climits> #include <string> #include <iostream> #include <map>
·
2015-10-31 10:43
ZOJ
poj1185炮兵阵地
状压dp
压前两行的状态很容易想到,但是 直接搞 (1<<10) * (1<<10) 空间时间都明显受不了, 但是经过高人指点,你会发现:枚举每一行可行的状态,其实并不多,预先打表处理,不用 1->(1<<10)枚举每一种状态。。 然后记忆化搜就ok了。 #include <cstdio> #include <c
·
2015-10-31 10:43
poj
poj3311Hie with the Pie
状压dp
tsp,但是它可以每个点经过不止一次,所以求一遍最短路,然后搞。 #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <climits> #include <string> #include &l
·
2015-10-31 10:43
with
poj3254Corn Fields
状压Dp
用一个数记录上一行取的状态,在枚举此时的状态,并且把符合条件的传递下去。判断写的有点丑,roll 直接位运算搞定。 #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <climits> #include &l
·
2015-10-31 10:43
Field
Hdu3681Prison Break
状压Dp
#include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <climits> #include <string> #include <iostream> #include &
·
2015-10-31 10:43
break
[POJ1038]
状压DP
(n<=150,m<=10) 思路:看到m=10就应该往
状压dp
方面想了。
·
2015-10-31 10:35
poj
poj 3254
状压dp
题意:给出一个n行m列的草地,1表示肥沃,0表示贫瘠,现在要把一些牛放在肥沃的草地上,但是要求所有牛不能相邻,问你有多少种放法。 链接:点我 定义状态dp【i】【j】,第 i 行状态为 j 的时候放牛的种数。 去年暑假做过的题,现在忘光了 1 #include <cstdio> 2 #include <cstring> 3 const int N =
·
2015-10-31 09:04
poj
Most Powerful(ZOJ 3471
状压dp
)
题意:n个原子,两两相撞其中一个消失,产生能量,给出任意两原子相撞能产生的能量,求能产生的最大能量。 分析:dp[i]表示情况为i时产生的最大能量 /*#include <map> #include <set> #include <list> #include <cmath> #include <queue> #inclu
·
2015-10-31 09:19
ZOJ
Tourism Planning(HDU 4049
状压dp
)
题意:n个朋友去游览m个城市,给出每个人对每个城市的兴趣值,和每人去每个城市的花费,如果两人在一个城市有一个价值,若多于2人这这个价值是任意两人产生价值的总和。在去每个城市的过程中人可以随便离开,也可以一个城市也不游览,求兴趣值总和+产生价值总和-总花费 最大。 分析:开始读错题意了,白白浪费了一个小时,吸取教训啊。。。 理解题意后分析状态,dp[i][j]在去第i个城市情况为j(0没去,1去
·
2015-10-31 09:19
HDU
Survival(ZOJ 2297
状压dp
)
题意:有n个怪,已知杀死第i个怪耗费的血和杀死怪恢复的血,和杀死boss耗的血,血量不能超过100,若过程中血小于0,则失败,问 是否能杀死boss(boss最后出现). 分析:就是求杀死n个怪后剩余的最大血量 dp[i]表示杀怪情况为i(0未杀,1已杀)时剩余最大血量,注意血量上限为100,过程中血小于0,则失败即可。 #include <map> #include <
·
2015-10-31 09:19
val
方格取数(1)(HDU 1565
状压dp
)
题意: 给你一个n*n的格子的棋盘,每个格子里面有一个非负数。 从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取的数所在的2个格子不能相邻,并且取出的数的和最大。 分析:直接枚举压缩后的所有情况超时,所以先把行所有可能的情况处理并得到该情况的对应的和,状态只与上一行状态有关,所有用两个数组保存当前行状态和上一行状态。 #include
·
2015-10-31 09:19
HDU
Doing Homework(HDU 1074
状压dp
)
题意:给你n个要做的作业,它们的名字、期限、可完成所需天数(必须连续)在规定期限不能完成要扣分(每天一分)求做作业顺序使扣分最少。 分析:作业数量较少,用状态压缩,做到第i种作业花费的天数dp[i].t,最小扣分dp[i].sc,当前完成作业标号dp[i].now,和之前完成的作业的情况dp[i].par(要求做作业顺序)枚举所有可能的情况,更新。 #include <ma
·
2015-10-31 09:19
home
Corn Fields(POJ 3254
状压dp
)
题意: n*m网格1能放0不能放 放的格子不能相邻 求一共多少种可放的方案。 分析: dp[i][j]第i行可行状态j的的最大方案数,枚举当前行和前一行的所有状态转移就行了(不放牛也算一种情况) #include <map> #include <set> #include <list> #include <cmath> #inclu
·
2015-10-31 09:18
Field
炮兵阵地(POJ 1185
状压dp
)
题意:n*m地图'H'能放'p'不能放,布兵的方格上下左右不能布兵,给你地图求最大布兵数 分析:关系到前两行,所以dp[i][j][k]第i行状态为j,i-1行状态为k时的最大布兵数, 先求出所有可行的状态,统计出其布兵数。 #include <map> #include <set> #include <list> #include <cmat
·
2015-10-31 09:18
poj
hdu 5045 N个人做M道题的正确率
n最大值是10,想到用状压
状压dp
#include <cstdio> #include <cstdlib> #include <
·
2015-10-31 09:34
HDU
Another Chocolate Maniac
状压dp
难度:1
132. Another Chocolate Maniac time limit per test: 0.25 sec. memory limit per test: 4096 KB Bob really LOVES chocolate. He thinks he never gets enough. Imagine his joy when hi
·
2015-10-31 09:37
man
Hardwood floor
状压dp
难度:2
131. Hardwood floor time limit per test: 0.25 sec. memory limit per test: 4096 KB The banquet hall of Computer Scientists' Palace has a rectangular form of the size M x N (1<=M<=9
·
2015-10-31 09:36
OO
hdu 2167(
状压dp
)
pid=2167 思路:经典的
状压dp
题,前后,上下,对角8个位置不能取,状态压缩枚举即可所有情况,递推关系是为dp[i][j]=max(dp[i][j],dp[i-1][k]+sum[i][j]),
·
2015-10-31 08:53
HDU
hdu 4284(
状压dp
)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4284 思路:类似于poj3311:http://poj.org/problem?id=3311,首先floyd预处理出两点之间的最短距离,然后就是枚举所有的状态了。 1 #include<iostream> 2 #include<cstdio> 3 #in
·
2015-10-31 08:53
HDU
hdu 3001(
状压dp
)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3001 思路:这道题类似于TSP问题,只不过题目中说明每个城市至少要走一次,至多走2次,因此要用到三进制压缩,然后就是状态转移方程了:dp[i+State[k]]=min(dp[i+State[k]],dp[i][j]+map[j][k]); 1 #include<iostream&
·
2015-10-31 08:53
HDU
hdu 4539(
状压dp
)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4539 思路:跟poj1185简直就是如出一辙! 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 usin
·
2015-10-31 08:53
HDU
poj 1185(
状压dp
)
题目链接:http://poj.org/problem?id=1185 思路:状态压缩经典题目,dp[i][j][k]表示第i行状态为j,(i-1)行状态为k时最多可以放置的士兵个数,于是我们可以得到递推方程:dp[i][j][k]=max(dp[i][j][k],dp[i-1][k][l]+num[j]);(其中num[j]为该状态下可以放置的士兵的个数。至于具体怎么分析,这位大牛讲的很清楚:
·
2015-10-31 08:53
poj
hdu 3681(bfs+二分+
状压dp
判断)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3681 思路:机器人从出发点出发要求走过所有的Y,因为点很少,所以就能想到经典的TSP问题。首先bfs预处理出‘Y',’F','G'之间的最短距离,由于G点可以充电,到达G点就把当前能量更新为电池容量然后继续走。因为每个G点只能充一次电,这就好像TSP中的每个点只能走一次一样,然后就是二分答案了,用状
·
2015-10-31 08:53
HDU
hdu 4114 Disney's FastPass
状压dp
Disney's FastPass Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4114 Description Disney's FastPass is a virtual queuing system created by the Wal
·
2015-10-31 08:03
HDU
bzoj1151
id=1151
状压DP
,枚举前面4个,使得环型变线型。
·
2015-10-31 08:25
ZOJ
hdu 4640(
状压dp
)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4640 思路:f[i][j]表示一个人状态i下走到j的最小花费,dp[i][j]表示i个人在状态j下的最下花费。首先我们可以一遍bfs求出f[i][j],然后通过f[i][j]得到dp[1][i],最后就是更新dp[i][j]了。 1 #include<iostream>
·
2015-10-30 16:57
HDU
hdu 2809(
状压dp
)
pid=2809 思路:简单的
状压dp
,看代码会更明白。
·
2015-10-30 16:49
HDU
hdu 2686(
状压dp
)
id=2686 思路:典型的
状压dp
题,dp[s][v]表示到达剩下的车票集合为S并且现在在城市v的状态所需要的最小的花费。
·
2015-10-30 16:46
HDU
Hackers' Crackdown( UVA UVA 11825
状压dp
)
题意:N台电脑,现在有N种服务,现在你可以在每台电脑终止一项服务,他和他相邻的电脑都会被关闭,如果一项服务在所有电脑都没运行,该项服务成功被破坏,问最多能破坏几种服务。 分析:把n个集合分成尽量多组,使每组中的集合(为电脑i及相邻电脑的集合)的并集为全集,通过这个题学到了状态s的每位表示一个集合是否被并,dp[s]状态s是能破坏的最多服务,dp[s]=max(dp[s],dp[s^ss]+1)(
·
2015-10-30 13:05
rack
Travel(HDU 4284
状压dp
)
分析:这个题想到杀怪(Survival(ZOJ 2297
状压dp
) 那个题,也是钱如果小于0就挂了,最后求剩余的最大钱数,先求出最短路和
·
2015-10-30 13:05
HDU
Clear All of Them I(HDU 3920
状压dp
)
题意:给有2*n个敌人的位置,枪在(0,0)位置,一次能消灭两个敌人,耗费能量为枪到一个敌人,由这个敌人再到另个敌人的的距离和,求消灭所有敌人最小耗费能量。 分析:一次枚举状态的两位即可 #include <map> #include <set> #include <list> #include <cmath> #include <
·
2015-10-30 13:04
clear
Light OJ 1061 - N Queen Again(搜索+
状压DP
)
大致题意:8*8的棋盘,已知八个皇后的位置,问最少移动多少次,可以让八个皇后不互相攻击。(同行,同列,同斜线视为互相攻击)思路:易知八皇后不攻击一共有92种,dfs出这92种,然后对于每种状压求出最少需要移动多少次复杂度:O(92*n*2^n)(n=8)//packageok; importjava.math.*; importjava.io.BufferedReader; importjava.
kalilili
·
2015-10-30 10:00
loj 1021(
状压dp
+记忆化搜索)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25887 题目大意:给定的一个某进制下的排列,问它的全排列有多少个能够整除给定的十进制下的数字k。 思路:记忆化搜索,dp[state][r]表示在某状态下被k除余数为r有多少个。 1 #include<iostream> 2 #inc
·
2015-10-30 10:19
dp
loj 1018(
状压dp
+记忆化搜索)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25844 思路:首先预处理出点在同一直线上的所有的点集状态(dp[i][j]),然后记忆化搜索。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring&
·
2015-10-30 10:18
dp
hdu 4640 Island and study-sister(最短路+
状压dp
)
题目链接:hdu4640Islandandstudy-sister解题思路用二进制数表示2~n的点是否移动过的状态,dp[s][i]表示状态s上的点必须经过并且当前在i节点的最小代价,这步用类似最短路的方式求出。然后是dp2[i][s]表示i个人移动过s状态的点的最小代价。代码#include #include #include #include #include usingnamespaces
u011328934
·
2015-10-28 22:00
POJ 2411 Mondriaan's Dream (
状压DP
)
Mondriaan's Dream Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 9135 Accepted: 5280 Description Squares and rectangles fascinated the fa
·
2015-10-28 09:48
poj
POJ 1185 炮兵阵地 (
状压DP
)
炮兵阵地 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 14869 Accepted: 5575 Description 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可
·
2015-10-28 09:47
poj
bzoj1087
又一道
状压dp
查了半天错 又被位运算的优先级坑了 1 #include<cstdio> 2 #include<cstring> 3 #include<
·
2015-10-28 08:24
ZOJ
bzoj4057
状压dp
不解释
数组不能开太大啊啊啊啊啊啊啊啊啊啊啊啊啊啊! 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<cmath> 5 #include<algorithm> 6 #include<cstdlib> 7
·
2015-10-28 08:22
ZOJ
[
状压dp
]HDOJ3182 Hamburger Magi
题意 大致是: 有n个汉堡 m块钱 (n<=15) 然后分别给n个汉堡的能量 再分别给n个汉堡所需的花费 然后下面n行 第i行有x个汉堡要在i汉堡之前吃 然后给出这x个汉堡的编号 输出 能获得的最大能量 分析: n那么小, 很明显状压 状压吃的顺序 每个汉堡的花费是固定的, 因此只要一维的dp &
·
2015-10-28 08:24
dp
[
状压dp
]HDOJ1565 方格取数(1)
中文题~~ 题意略 $n\le 20$ ! 很明显是状压! 1 #include <cstdio> 2 #include <cstdlib> 3 #include <cstring> 4 #include <climits> 5 #include <cctype> 6 #include &
·
2015-10-28 08:24
dp
[
状压dp
]HDU5045 Contest
题意: n和人做m道题, 每俩人做的题数不能相差一题以上.(也就是每n道题分别由n个人完成) 给n个人分别做m道题的概率, 求完成m题的最大期望 $1\le N \le 10$ 注意!!! fill dp 的地方! [0, m] 所以要 m+1 !! 1 #include <cstdio> 2 #include <cstd
·
2015-10-28 08:23
test
[
状压dp
]HDU3001 Travelling
题意: 走n个城市, m条路, 起点任意, 每个城市走不超过两次, 求最小花费, 不能走输出-1. $1\le n\le 10$ 分析: 每个城市的拜访次数为0 1 2, 所以三进制状压, 先预处理10位(n最大为10)的三进制数 1 int num[12], vis[60005][12]; 2 3 void init() 4 { 5 num[0
·
2015-10-28 08:23
HDU
[
状压dp
]POJ2686 Traveling by Stagecoach
题意: m个城市, n张车票, 每张车票$t_i$匹马, 每张车票可以沿某条道路到相邻城市, 花费是路的长度除以马的数量. 求a到b的最小花费, 不能到达输出Impossible $1\le n\le8$ $2\le m\le30$ 1 #include <cstdio> 2 #include <cstdlib> 3 #include <cst
·
2015-10-28 08:22
poj
URAL 1152 Faise Mirrors
状压DP
简单题
1152. False Mirrors Time limit: 2.0 second Memory limit: 64 MB Background We wandered in the labyrinth for twenty minutes before finally entering the large hall. The walls were covered by mirr
·
2015-10-28 08:07
ror
POJ 2441 Arrange the BUlls
状压DP
Arrange the Bulls Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 3752 Accepted: 1438 Description Farmer Johnson's Bulls love playing bask
·
2015-10-28 08:07
poj
hdu 3001(
状压dp
, 3进制)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3001 由于本题中一个点最多能够访问2次,由此可以联想到3进制; visited[i][j]表示在状态i下在点j已经做过的次数,dp[i][j]表示在状态i下到达点j走过的最小的路程,于是我们可以通过预处理得到visited[i][j]数组,然后就是一般的状态转移。 1 /*******
·
2015-10-28 07:38
HDU
hdu 4114(
状压dp
)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4114 思路:首先是floyd预处理出任意两点之间的最短距离。dp[state1][state2][u]表示在该状态state1(已经访问过的景点)、state2(手中有的景点的票)、目前所在的位置时所花费的时间的最小值,于是答案就是dp[(1<<k)-1][state][1]了(0<
·
2015-10-28 07:33
HDU
loj 1316(spfa预处理+
状压dp
)
思路:首先我们可以spfa预处理出起点到标记的最短距离,标记的点到终点的最短距离,然后就是
状压dp
了,dp[state][u]表示在该状态下到达点u的最短路径。 1 #include&l
·
2015-10-28 07:32
SPFA
loj 1037(
状压dp
)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25914 思路:dp[state]表示当前状态下要消耗的最小的shots。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #in
·
2015-10-28 07:30
dp
上一页
26
27
28
29
30
31
32
33
下一页
按字母分类:
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
其他