
ACM/ICPC_状压dp
just_sort
Acdream.
展开
-
POJ 3311 Hie with the Pie
【题意】类似于旅行商问题,只是每个点可以走多次,比经典TSP问题不同的是要用弗洛伊德的时候。求最短距离。【解析】可以用全排列做,求出一个最短的距离即可。或者用状压dp,用一个二进制数表示城市是否走过。【状态表示】dp【state】【i】表示到达i点状态为state的最短距离。【状态转移】dp[state][i]=min(dp[state][i],dp[state'][j]+dis[j]原创 2016-04-06 17:30:35 · 376 阅读 · 0 评论 -
Educational Codeforces Round 13 E. Another Sith Tournament 状压dp
题目地址:这里 题意:有n(n≤18)个人打擂台赛,编号从1到n,主角是1号。一开始主角先选一个擂主,和一个打擂的人。两个人之中胜的人留下来当擂主等主角决定下一个人打擂,败的人退出比赛,直到比赛只剩一个人。已知任意两人之间决胜的胜率Pij,求主角最终能够获胜的概率。 解法:设d(S,i)表示存活的人的集合为S,当前擂主为i∈S,主角获胜的概率。 为了方便我们把编号设为0∼n−1,递推边界d(1原创 2017-03-18 20:04:02 · 550 阅读 · 0 评论 -
CDOJ 1402 三角形棋盘上的博弈游戏 状压DP
题目链接:这里柱爷有天上课无聊,于是和同桌卿学姐一起下一种奇特的棋:棋盘如图:title在开始游戏前,棋盘上已经放好了一些边,然后柱爷先手,开始在棋盘上没有边的位置添加一条边上去如果添加边后围成一个三角形则获得一分(对于棋盘上游戏开始前已经围好了的三角形,两个人都不得分)并且下一轮还该他!否则下一轮该另一个人。如果两个人都以最优策略下棋,那么柱爷能赢么?注:只算最小的三角形!(三个边围成的三角形)如原创 2017-03-18 21:21:40 · 528 阅读 · 0 评论 -
HDU 5693 D Game 区间dp
题目链接:这里 题意: Problem Description 众所周知,度度熊喜欢的字符只有两个:B 和D。今天,它发明了一个游戏:D游戏。度度熊的英文并不是很高明,所以这里的D,没什么高深的含义,只是代指等差数列(等差数列百科)中的公差D。这个游戏是这样的,首先度度熊拥有一个公差集合{D},然后它依次写下N个数字排成一行。游戏规则很简单:在当前剩下的有序数组中选择X(X≥2) 个连续数字原创 2017-03-22 13:32:12 · 451 阅读 · 0 评论 -
HDU 5691 Sitting in Line 状压dp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5691 题意: 给定n个数, 让你选择一个序列, 使得这个序列中相邻的两个数乘积之和最大。 解法: 状压DP。将所有数的状态压缩之后, 就可以在这基础上进行dp了, 可以看到这个dp是与顺序有关的, 我们要多加一维用来表示最后一个添加的元素. 即dp[i][j]表示在i状态的情况下最后一个添加的是原创 2017-03-22 16:58:08 · 550 阅读 · 0 评论 -
Codeforces Beta Round #8 C. Looking for Order 状压DP,路径记录
题目链接:http://codeforces.com/contest/8/problem/C 题意:平面上有n个物品,这个小朋友会去拿这些物品,然后拿到返回包的位置。但是这个小朋友一次最多拿两个物品,问你怎么去拿,才能使得把所有物品都拿到包的位置,且走的距离和最小 解法: 比较显然的状压,状压中有一个剪枝,显然拿的顺序是随意的,我先拿和后拿都是一样的。所以可以直接return就好了。这题质量感觉原创 2017-03-23 16:16:38 · 567 阅读 · 0 评论 -
BZOJ 1231: [Usaco2008 Nov]mixup2 混乱的奶牛 状压DP
Description混乱的奶牛 [Don Piele, 2007] Farmer John的N(4 <= N <= 16)头奶牛中的每一头都有一个唯一的编号S_i (1 <= S_i <= 25,000). 奶牛为她们的编号感到骄傲, 所以每一头奶牛都把她的编号刻在一个金牌上, 并且把金牌挂在她们宽大的脖子上. 奶牛们对在挤奶的时候被排成一支”混乱”的队伍非常反感. 如果一个队伍里任意两头相邻的奶原创 2017-04-14 15:27:09 · 478 阅读 · 0 评论 -
BZOJ 3209 二进制数位DP
Description背景 众所周知,花神多年来凭借无边的神力狂虐各大 OJ、OI、CF、TC …… 当然也包括 CH 啦。 描述 话说花神这天又来讲课了。课后照例有超级难的神题啦…… 我等蒟蒻又遭殃了。 花神的题目是这样的 设 sum(i) 表示 i 的二进制表示中 1 的个数。给出一个正整数 N ,花神要问你 派(Sum(i)),也就是 sum(1)—sum(N) 的乘积。Input原创 2017-05-10 16:34:57 · 526 阅读 · 0 评论 -
BZOJ 1294: [SCOI2009]围豆豆Bean 状压DP,SPFA,计算集合射线法
Input 第一行两个整数N和M,为矩阵的边长。 第二行一个整数D,为豆子的总个数。 第三行包含D个整数V1到VD,分别为每颗豆子的分值。 接着N行有一个N×M的字符矩阵来描述游戏矩阵状态,0表示空格,#表示障碍物。而数字1到9分别表示对应编号的豆子。 Output 仅包含一个整数,为最高可能获得的分值。 Sample Input 3 8330 -100 3000000000010203#原创 2017-04-21 16:41:57 · 976 阅读 · 0 评论 -
CodeM美团点评编程大赛初赛B轮 B.送外卖2 三进制状压DP
[编程题] 送外卖2时间限制:1秒空间限制:32768K 美团外卖日订单数已经超过1200万,实时调度系统是背后的重要技术支撑,其中涉及很多复杂的算法。下面的题目是某类场景的抽象。一张 n 个点 m 条有向边的图上,有 q 个配送需求,需求的描述形式为( s_i , t_i , l_i , r_i ),即需要从点 s_i 送到 t_i, 在时刻 l_i 之后(包括 l_i)可以在 s_i 领取货物原创 2017-07-16 17:16:37 · 1239 阅读 · 0 评论 -
BZOJ 1097: [POI2007]旅游景点atr 状压,预处理,最短路
Description FGD想从成都去上海旅游。在旅途中他希望经过一些城市并在那里欣赏风景,品尝风味小吃或者做其他的有趣 的事情。经过这些城市的顺序不是完全随意的,比如说FGD不希望在刚吃过一顿大餐之后立刻去下一个城市登山, 而是希望去另外什么地方喝下午茶。幸运的是,FGD的旅程不是既定的,他可以在某些旅行方案之间进行选择。由于 FGD非常讨厌乘车的颠簸,他希望在满足他的要求的情况下,旅行原创 2017-02-03 18:02:24 · 737 阅读 · 0 评论 -
BZOJ 1087: [SCOI2005]互不侵犯King 预处理,状压DP
Description 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上 左下右上右下八个方向上附近的各一个格子,共8个格子。 Input 只有一行,包含两个数N,K ( 1 <=N <=9, 0 <= K <= N * N) Output 方案数。 Sample Input 3 2 Sample Output 16 解题思路:原创 2017-01-31 14:59:17 · 537 阅读 · 0 评论 -
BZOJ 1079: [SCOI2008]着色方案 神奇的DP
Description 有n个木块排成一行,从左到右依次编号为1~n。你有k种颜色的油漆,其中第i种颜色的油漆足够涂ci个木块。 所有油漆刚好足够涂满所有木块,即c1+c2+…+ck=n。相邻两个木块涂相同色显得很难看,所以你希望统计任意两 个相邻木块颜色不同的着色方案。 Input 第一行为一个正整数k,第二行包含k个整数c1, c2, … , ck。 Output 输出一个整数,即原创 2017-01-30 14:17:36 · 924 阅读 · 0 评论 -
Light OJ 1281
【题意】大意就是一个人要从0点走到n-1点,路中有些点有商店可以买礼物,所以这个人想买多点礼物,但是又要尽快的走到n-1点,这两者之间呢,礼物的多少优先,其次是路程长度。【分析】16个点显然是可以状压的,dp[sta][i]表示当前遍历的点的状态sta停留在shop[i]的最短路的估计值。这样状态首先是可以表示完全的,转移就显然很简单了。先预处理出每个商店到其他点的最短路径,以便后面的状态转移原创 2016-04-07 17:10:51 · 445 阅读 · 0 评论 -
HDU 5025 Saving Tang Monk.
【题意】求悟空到师傅的最短距离,这中途会有一些门,悟空必须依次拿到钥匙,打开所有的门,中途遇到妖怪就会多停留1s,求悟空救出师傅的最短时间!【解题思路】我的第一道dfs+状压!其中dp[x][y][k][s]中,x,y代表位置,k代表拿到了k把钥匙,s代表状态。【AC代码】#include #include #include #include #include using n原创 2016-04-08 18:07:40 · 348 阅读 · 0 评论 -
Travelling (三进制加旅行商)
【题意】标准的旅行商加一句话,每个点最多走两次。【分析&解题思路】定义状态:dp【st】【i】 :在状态为 st 时 当前在 i 点的最小花费转移方程:dp【now】【j】 = min(dp【now】【j】,dp【st】【i】+mp【i】【j】);now是st可以一次转移得到的状态【AC代码】#include #include #include #include u原创 2016-05-15 22:26:35 · 427 阅读 · 0 评论 -
POJ.3254 Corn Fields
【题意】给出一个n行m列的草地,1表示肥沃,0表示贫瘠,现在要把一些牛放在肥沃的草地上,但是要求所有牛不能相邻,问你有多少种放法?【解题方法】定义状态dp【i】【j】,第 i 行状态为 j 的时候放牛的种数。j 的话我们转化成二进制,从低位到高位依次 1 表示放牛0表示没有放牛,就可以表示一行所有的情况。那么转移方程 dp【i】【j】=sum(dp【i-1】【k】)【AC原创 2016-07-16 19:57:10 · 317 阅读 · 0 评论 -
HDU 2167 Pebbles 状压
【题意】给定一个N*N的方格,让你在里面取出一些数使其和最大,要求每一个数不能与其相邻的8个数同时取出【解题方法】状压DP。dp[i][j]表示第i行状态为j可以得到的最大取值,转移易得为dp[i][j] = max(dp[i][j], dp[i-1][k] + sum[i][j])。【期望复杂度】O(1579*n*1579)【代码君】别忘了这坑爹的getchar。。#incl原创 2016-12-02 21:36:11 · 425 阅读 · 0 评论 -
POJ.1185 炮兵阵地
【题意】中文题目,题意很简单!【解题方法】首先我们求的是最多能放多少个炮兵,那么假如我把所有的情况都枚举了,然后在得到的结果里面找一个最大值,那么是不是就可以了。其实这个题目的思想就是这么简单。但是我们如果用一般的枚举的方法肯定会超时,那么就用到了状态压缩。因为这个题目中一个炮影响的是两行,所以我们要多定义一维的状态来表示当前行的上上一行的状态。状态:dp【i】【j】【k】原创 2016-07-16 20:39:35 · 593 阅读 · 0 评论 -
SWUST状态压缩入门 解题报告
【序】 由于昨天大佬讲课,很多人没来,在做完这个训练,我希望用我自己的粗浅理解能够帮到大家,还有训练已经过去几天了,也希望大家抓紧时间去完成这个专题训练,不然这个专题就开得毫无意义了。然后下面的题解我会细致的讲解题目的解法,以及我是如何理解这道题,争取大家都可以很快的看懂。【正文】 题目传送门:点击打开链接【A】 题意为给了1个H*W的方格矩阵,然后要我们用1原创 2016-12-28 14:15:02 · 755 阅读 · 0 评论 -
BZOJ 1072: [SCOI2007]排列perm 状压DP,暴力全排列
Description 给一个数字串s和正整数d, 统计s有多少种不同的排列能被d整除(可以有前导0)。例如123434有90种排列能 被2整除,其中末位为2的有30种,末位为4的有60种。 Input 输入第一行是一个整数T,表示测试数据的个数,以下每行一组s和d,中间用空格隔开。s保证只包含数字0, 1 , 2, 3, 4, 5, 6, 7, 8, 9. Output 每个数据仅一原创 2017-01-29 21:40:15 · 606 阅读 · 0 评论 -
BZOJ 1076: [SCOI2008]奖励关 状压,期望DP
Description 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关。在这个奖励关里,系统将依次随机抛出k次宝物, 每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃的宝物以后也不能再吃)。 宝物一共有n种,系统每次抛出这n种宝物的概率都相同且相互独立。也就是说,即使前k-1次系统都抛出宝物1( 这种情况是有可能出现的,尽管概率非常小),第k次抛出各个宝物的原创 2017-01-30 13:04:33 · 686 阅读 · 0 评论 -
HDU 4804 Campus Design 状压DP
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=4804题意:给定一个图,0是不能放的,然后现在有1X1和1X2方块,最后铺满该图,使得1X1使用次数在C到D之间,1X2次数随便,问有几种放法?解法:状压DP。dp[i][j][k]代表在第i行,当前状态为j,用了k次1*1的方格的方案数。#include using name原创 2017-10-07 21:00:04 · 382 阅读 · 0 评论