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
hdu4778:
状压dp
+博弈
题目大意: 有g种不同颜色的小球,b个袋子,每个袋子里面有若干个每种小球 两人轮流取袋子,当袋子里面的同色小球有s个时,会合并成一个魔法球,并被此次取袋子的人获得 成功获得魔法球的人可以再次取 求二者都进行最优策略之后两人所得魔法球个数差 分析: 博弈,数据很小,自然想到了可以搜索所有状态 然后从每一步的子状态中找到对当前人(这一步的先手)最有利的状态即可 直接搜索还是会超时的,于
·
2015-11-10 22:10
HDU
poj1185:炮兵阵地(
状压dp
)
也算是比较基础的
状压dp
了,跟做过的第二道比较又稍微复杂了一点 需要记录之前两行的状态。。
·
2015-11-10 22:08
poj
poj3254:基础
状压dp
第二个
状压dp
做过的第一个也是放牛问题,两头牛不能相邻 这个题多了一个限制,就是有些位置不能放牛 于是先与处理一下每一行所有不能放牛的状态,处理的过程直接对每一个不能放牛的状态或以下 ac代码
·
2015-11-10 22:07
poj
hdu1074
状压DP
、栈实现记录路径
题意:给了几门学科作业、它们的截止提交期限(天数)、它们的需要完成的时间(天数),每项作业在截止日期后每拖延一天扣一学分,算最少扣的学分和其完成顺序。 一开始做的时候,只是听说过状态压缩这个神奇的东西,但事实上我并不会用它,所以白白想了一个晚上没想出来,然后就看了一下题解```再见吧朋友又是新的算法要学了。 状态压缩,实际上就是用二进制的方式,对于每一个要考察的状态用0/1表示其完成与否,这样
·
2015-11-09 12:48
HDU
poj1185
状压dp
poj1185
状压dp
炮兵阵地 Time Limit: 2000MS Memory Limit: 65536K Total Submissions
·
2015-11-08 16:19
poj
西电oj 1038
状压dp
西电oj 1038
状压dp
1038: 裁玻璃 时间限制: 1 Sec 内存限制: 128 MB 提交: 33
·
2015-11-08 16:19
dp
状压dp
-poj-1170-Shopping Offers
题目链接: http://poj.org/problem?id=1170 题目意思: 购物车里有b种(0=<b<=5)物品,每种物品告诉物品代号c(1=<c<=999),数量为k(1=<k<=5),单价为p.超时有s种优惠方案,每种优惠方案包含n种物品,告诉这n种物品的代号和数量以及打包后的优惠价格。求把购物车的东西买完,最少的花费。 解题思路: 离
·
2015-11-08 14:51
ping
zoj3802:easy 2048 again(
状压dp
)
zoj月赛的题目,非常不错的一个
状压dp
。。
·
2015-11-08 14:59
ZOJ
hdu4623:crime 数学优化dp
鞍山热身赛的题,也是去年多校原题 题目大意: 求n个数的排列中满足相邻两个数互质的排列的数量并取模 当时的思路就是
状压dp
.. dp[i][state] state用二进制记录某个数是否被取走
·
2015-11-08 14:58
HDU
POJ 3254
状压DP
题目大意: 一个农民有一片n行m列 的农场 n和m 范围[1,12] 对于每一块土地 ,1代表可以种地,0代表不能种。 因为农夫要种草喂牛,牛吃草不能挨着,所以农夫种菜的每一块都不能有公共边。 告诉你 n ,m 和那些地方能种菜哪些地方不能种菜,求农夫一共有多少种方案种菜 解法: 基本思想是状压 也就是用一个int 型的数代表一行的种菜
·
2015-11-08 13:20
poj
uva 11825 Hackers' Crackdown (
状压dp
,子集枚举)
题目链接:uva 11825 题意: 你是一个黑客,侵入了n台计算机(每台计算机有同样的n种服务),对每台计算机,你能够选择终止一项服务,则他与其相邻的这项服务都终止。你的目标是让很多其它的服务瘫痪(没有计算机有该项服务)。 思路:(见大白70页,我的方程与大白不同) 把n个集合P1、P2、Pn分成尽量多的组,使得每组中全部集合的并集等于全集,这里的集合Pi是计算机i及其相邻计
·
2015-11-08 11:49
rack
[Swust OJ 581]--彩色的石子(
状压dp
)
题目链接:http://acm.swust.edu.cn/problem/0581/ Time limit(ms): 1000 Memory limit(kb): 65535 Description 把m个含有k种不同颜色的石子放成一条线上。现在要问你怎么才能取走 最少的石子,使得没有两个相同颜色
·
2015-11-07 10:03
dp
Codeforces Gym 100676G Training Camp
状压dp
非常简单的一道
状压dp
(一开始我还误导队友写成两维的去了 T^T); dp[s] : s 的二进制存放的是已经选择的课程,在该状态下的能获得的最大
·
2015-11-07 10:10
codeforces
cf298F:
状压dp
+剪枝
div2的F题,只想到了一个复杂度略高的dp,T了几次,后来加了剪枝减掉一些无用的状态终于过了。。 题意: 一个n*m的矩阵 (n<=5,m<=20),对格子进行黑白染色,已经给出了每行每列黑色联通块的个数,要求输出一组答案,满足有解。 思路: 首先发现n只有5,考虑按列处理,每列总共有2^5=32种状态;又发现对于给出的联通块个数,最坏情况是当联通块个数等于1或者
·
2015-11-06 07:18
dp
【大渣】【
状压Dp
】过河
过河(NOIP)TimeLimit:10000MS MemoryLimit:65536KTotalSubmit:97Accepted:26 CaseTimeLimit:1000MSDescription在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子,青蛙很讨厌踩在这些石子上。由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数轴上的一
Musame
·
2015-11-05 16:00
dp
学习交流
【HDU1572】【旅行商问题
状压DP
数据小全排列暴力】下沙小面的(2)
#include #include #include #include #include #include #include #include #include #include #include #include #include usingnamespacestd; voidfre(){freopen("c://test//input.in","r",stdin);freopen("c://t
snowy_smile
·
2015-11-05 10:00
ACM
STL
ICPC
HDU
151104总结
2进制,然后就是统计l~r的二进制每位出现了多少次/*wa的只有30分,把(1<
状压
beginendzrq
·
2015-11-04 15:00
总结
sdut-2725-The Urge to Merge-
状压DP
把数组竖起来,从上往下走。 如果当前位置是竖着乘的,那么第一个点标记为1.否则标记为0. 样例最终的状态为: 0 0 1 0 1 0 1 0 0 0 0 0 #include<iostream> #include<cmath> #include<algorithm> #include<stdio.h>
·
2015-11-02 18:11
merge
HDU 4739 Zhuge Liang's Mines (状态压缩+背包DP)
思路 比赛的时候暴力dfs+O(n^4)枚举写过了……无意间看到有题解用
状压DP
(这才是正解吧T_T),然后自己才恍然大悟- -…… 点不多嘛,用一个20位的整数表示各个点。
·
2015-11-02 17:16
HDU
HDU 4739 Zhuge Liang's Mines (状态压缩+背包DP)
思路 比赛的时候暴力dfs+O(n^4)枚举写过了……无意间看到有题解用
状压DP
(这才是正解吧T_T),然后自己才恍然大悟- -…… 点不多嘛,用一个20位的整数表示各个点。
·
2015-11-02 17:53
HDU
hdu 4284 Travel floyd +
状压DP
http://acm.hdu.edu.cn/showproblem.php?pid=4284 题解:http://www.cnblogs.com/E-star/archive/2012/09/11/2680992.html View Code #include <iostream> #include <cstdio> #include <cstrin
·
2015-11-02 15:34
floyd
UVa 1252 (
状压DP
+ 记忆化搜索) Twenty Questions
题意: 有n个长为m的各不相同的二进制数(允许存在前导0),别人已经事先想好n个数中的一个数W,你要猜出这个数。 每次只可以询问该数的第K为是否为1. 问采用最优询问策略,则最少需要询问多少次能保证猜到。 比如有1100 和 0110两个数,只需要询问第一或第三位数是否为1,即可猜中,因此答案为1. 分析: d(s, a)表示已经询问了的集合s,在已经询问了的集合中W中为1的集合为a,
·
2015-11-02 15:16
uva
UVa 10817 (
状压DP
+ 记忆化搜索) Headmaster's Headache
题意: 一共有s(s ≤ 8)门课程,有m个在职教师,n个求职教师。 每个教师有各自的工资要求,还有他能教授的课程,可以是一门或者多门。 要求在职教师不能辞退,问如何录用应聘者,才能使得每门课只少有两个老师教而且使得总工资最少。 分析: 因为s很小,所以可以用状态压缩。 dp(i, s1, s2)表示考虑了前i个人,有一个人教的课程的集合为s1,至少有两个人教的集合为s2。 在递归的
·
2015-11-02 15:15
master
BZOJ 1231: [Usaco2008 Nov]mixup2 混乱的奶牛( dp )
状压dp
dp( x , S ) 表示最后一个是 x , 当前选的奶牛集合为 S , 则状态转移方程 : dp( x , S ) = Σ dp
·
2015-11-02 12:02
USACO
pku 1185 炮兵阵地
状压DP
http://poj.org/problem?id=1185 题意: 给出一个n*m的矩阵,矩阵的每个方格标有P/H p表示可以安置大炮,H表示不能安置大炮,当大炮安置于(i,j)点时,其左右两个单位以及上下两个单位都在攻击范围,求在两支大炮不会相互攻击的前提下,最多能够安置大炮的数量。 思路: 当前行大炮的的安置要受其前两行的影响,所以状态转移方程有: dp[i][j][k] = ma
·
2015-11-02 11:21
pku
HDU 1074 Doing Homework
第一次做这道题大概是半个月前了吧,
状压DP
一个很新鲜的名词 当时看题解怎么也看不懂,现在看懂了以后还是很简单的 所谓状态压缩就是用一个整数的二进制来表示一个状态,比如有三个作业 000表示一科作业也没做
·
2015-11-02 11:31
home
UVa 11825 (
状压DP
) Hackers' Crackdown
这是我做
状压DP
的第一道题,状压里面都是用位运算来完成的,只要耐下心来弄明白每次位运算的含义,还是容易理解的。
·
2015-11-02 11:15
rack
hdu 1074
状压dp
用不同的状态表示当前作业完成的情况,运用
状压dp
定义集合S为已经完成的
liujc_
·
2015-11-01 23:00
BZOJ 4145: [AMPPZ2014]The Prices(
状压dp
+ 01背包 )
我自己只能想出O( n*3^m )的做法....肯定会T O( nm*2^m )做法: dp( x, s ) 表示考虑了前 x 个商店, 已买的东西的集合为s. 考虑转移 : 先假设我们到第x个商店去, so初始时 dp( x, s) = dp( x-1, s ) + d[x] 然后我们可以对第x个商店做01背包, dp(x, s + {h} ) = min( dp( x, s + {
·
2015-11-01 14:11
ICE
BZOJ 2073: [POI2004]PRZ(
状压dp
)
状压dp
, dp( s ) 表示 s 状态下所用的最短时间 , 转移就直接暴力枚举子集 . 可以先预处理出每个状态下的重量和时间的信息 .
·
2015-11-01 14:05
poi
1688: [Usaco2005 Open]Disease Manangement 疾病管理( 枚举 )
我一开始写了个
状压dp
..然后没有滚动就MLE了...
·
2015-11-01 14:04
USACO
BZOJ 1087: [SCOI2005]互不侵犯King(
状压dp
)
简单的
状压dp
... dp( x , h , s ) 表示当前第 x 行 , 用了 h 个 king , 当前行的状态为 s .
·
2015-11-01 14:01
ZOJ
1076: [SCOI2008]奖励关( dp )
期望
状压dp
.... ------------------------------------------------------------------ #include<cstdio&
·
2015-11-01 14:55
2008
BZOJ 4057: [Cerc2012]Kingdoms(
状压dp
)
状压dp
.... 我已开始用递归结果就 TLE 了...
·
2015-11-01 14:54
2012
Codeforces 543C Remembering Strings(DP)
20的范围恰好又是常见
状压DP
的范围,所有状态压缩后用DP[sta]代表对应位的字符串已经满
·
2015-11-01 12:19
codeforces
SGU 220.Little Bishops(DP)
Solution: 一眼看上去感觉是
状压
·
2015-11-01 12:00
it
hdu 1074 Doing Homework(
状压dp
)
传送门:hdu 1074 题意:有n个作业,每个作业都有最迟上交时间和完成该作业所需的时间,若某作业超过最迟上交时间,则扣相应的分数,求上交所有的作业使得扣分最少,并输出作业的顺序,若扣分相同,则先交字典序较小的作业。(n<=15) 分析:每种作业都有已上交和未上交两种,状态,总共有2^15种状态,用二进制表示。 由于要记录扣分,当前时间和作业的顺序,所以定义一个结构体。 状态表示:
·
2015-11-01 08:26
home
HDU 3006 The Number of set
转自: http://zc634579757.blog.163.com/blog/static/1244974622009716104841721/ 这题真是让我看到了位运算和
状压DP
的神奇之处
·
2015-10-31 13:02
number
BZOJ1097 : [POI2007]旅游景点atr
状压DP
新姿势get√ 需要注意的是,这题Main上原题的内存限制只有64MB。
·
2015-10-31 11:53
2007
BZOJ 3446: [Usaco2014 Feb]Cow Decathlon(
状压dp
)
水
状压dp
. dp(x, s) = max{ dp( x - 1, s - {h} ) } + 奖励(假如拿到的) (h∈s).
·
2015-10-31 11:49
USACO
POJ 3254 (
状压DP
) Corn Fields
基础的
状压DP
,因为是将状态压缩到一个整数中,所以会涉及到很多比较巧妙的位运算。 我们可以先把输入中每行的01压缩成一个整数。
·
2015-10-31 11:28
Field
POJ 1185 状态压缩DP 炮兵阵地
题目直达车: POJ 1185 炮兵阵地 分析: 列( <=10 )的数据比较小, 一般会想到
状压DP
. Ⅰ、如果一行10全个‘P’,满足题意的状态不超过
·
2015-10-31 11:23
poj
hdu 1074
状压dp
题意:有n门课,每门课有截止时间和完成所需的时间,如果超过规定时间完成,每超过一天就会扣1分,问怎样安排做作业的顺序才能使得所扣的分最小 链接:点我 1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<cstring> 5 #incl
·
2015-10-31 10:29
HDU
poj 2923
状压dp
+01背包
好牛b的思路 题意:一系列物品,用二辆车运送,求运送完所需的最小次数,两辆车必须一起走 解法为状态压缩DP+背包,本题的解题思路是先枚举选择若干个时的状态,总状态量为1<<n,判断这些状态集合里的那些物品能否一次就运走,如果能运走,那就把这个状态看成一个物品。预处理完能从枚举中找到tot个物品,再用这tol个物品中没有交集(也就是两个状态不能同时含有一个物品)的物品进行01背包,每
·
2015-10-31 10:27
poj
HDU 4539
状压DP
状压DP
,同炮兵阵地,写着练练手。
·
2015-10-31 10:20
HDU
[HDU 4336]Card Collection[状态压缩DP][概率DP][容斥原理]
思路: 1.用
状压dp
,dp[ s ]表示在s状态时,集齐所需要的袋数期望.
·
2015-10-31 10:15
Collection
POJ 2686(
状压DP
题目: 大意是有一个人从某个城市要到另一个城市(点数<=30) 然后有n个马车票,相邻的两个城市走的话要消耗掉一个马车票。 花费的时间呢,是马车票上有个速率值,用边/速率就是花的时间。 问最后这个人花费的最短时间是多少 第一次做状压感觉那一长串for显示了这是个多么暴力的算法呢。。。1A了倒是挺顺的 #include<iostream> #include<c
·
2015-10-31 10:27
poj
HDU 2280
状压DP
用dfs找到状态的最优解 且那个正方形块可以由两个水平块组成,所以无需考虑 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 5 using namespace std; 6 #define N 1005 7 int state[N]
·
2015-10-31 10:08
HDU
POJ 1185
状压DP
legal[] 保存所有在当前行可显示的状态,由dfs得到,len[]保存legal[]对应下标状态中的 1 的个数 , 也就是放置炮台的个数 state[i] 表示第 i 行这块区域的土地情况,H表示 1 ,P表示 0 那么每次加入一个legal状态 都要符合 !(legal[i] & state[k]) 1 #include <cstdio&
·
2015-10-31 10:07
poj
POJ 2411
状压dp
题目大意: 用 1*2 或者2 *1的木板填满 h*w的长方形,问总共有多少种填充方法 直接dfs会超时,因为后面答案甚至爆了int,直接搜,肯定也是long long 的时间复杂度 这里我们将当前位置没放置任何木板为 0 , 如有放置则看为 1 每次通过当前行 i 的状态 old 找到下一行 i + 1 所有满足当前行状态的状态 new , 将
·
2015-10-31 10:07
poj
上一页
25
26
27
28
29
30
31
32
下一页
按字母分类:
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
其他