
动态规划 状压dp
文章平均质量分 82
Fsss_7
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #277.5 (Div. 2)F题
An n × n square matrix is special, if:it is binary, that is, each cell contains either a 0, or a 1;the number of ones in each row and column equals 2.You are given n and the first m rows o原创 2014-12-06 21:43:55 · 547 阅读 · 0 评论 -
hdu3311Dig The Wells
链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=3311题意:n个和尚住的地方,m个其他地方。每个地方挖一口井需要花费q[i]的钱,两个地方连通需要花费对应的边权值。求所有人都能喝到水的最小花费。分析:斯塔纳树。如hdu4085,只要在加一位二进制表示集合内是否已经有水了即可。详见代码。代码:#include#include原创 2016-08-29 13:34:51 · 661 阅读 · 0 评论 -
hdu4085Peach Blossom Spring
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4085题意:有n个点m条无向边有边权,给定k,2*k分析:斯塔纳树的题。因为看到k比较小很容易想到用状态压缩表示哪些点已经连通了,那么我们设状态dp[i][j]表示以i为根的树并且已经包含了j状态的点的最小花费,那么转移有:dp[i][j]=min(dp[i][j']+dp[i][j-j'])其中j原创 2016-08-27 14:25:17 · 896 阅读 · 0 评论 -
hdu5691Sitting in Line
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5691题意:中文题。分析:状压dp,设dp[i][j]表示选择了i集合的数放在前面那些位置并且最后一个是a[j]时的最大值。转移的话直接找可行状态转移到下一个可行状态即可。代码:#include#include#include#include#include#include#in原创 2016-07-22 15:00:02 · 357 阅读 · 0 评论 -
whu1608 Calculation
链接:http://acm.whu.edu.cn/land/problem/detail?problem_id=1608&contest_id=16题意:给定n个数,将这n个数随意划分为若干个集合,求一次划分后最大的满足条件的集合个数,条件为:将集合内所有的元素进行+-两种运算后结果为s。分析:看到题面和数据规模都很容易看出是状压DP。我们枚举集合是2^n,然后还有快速判断一个集合是否能满原创 2016-04-10 16:43:11 · 350 阅读 · 0 评论 -
bzoj2064: 分裂
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2064题意:中文题。分析:因为题目给定的n个数的总和和后面m个数的总和一定是一样的,很显然这题的上界是n+m-2(直接将n个数合在一起再拆成m个数即可),在这个基础上我们可以想到一个做法就是将n和m分成若干个子集两两相等,每分出一对子集我们就能ans-2。那么我们可以将其中一类取负数,那原创 2016-03-26 16:15:00 · 754 阅读 · 0 评论 -
bzoj1725: [Usaco2006 Nov]Corn Fields牧场的安排
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1725题意:中文题。分析:裸的状态压缩DP。代码:#include#include#include#include#include#include#include#include#include#include#include#include#pragma原创 2016-03-22 21:15:56 · 550 阅读 · 0 评论 -
bzoj1076: [SCOI2008]奖励关
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1076题意:中文题。分析:期望题,顺着做不好判断可行条件,我们倒着做,设dp[i][j]表示在选择第i次奖励要或不要之前的已有状态为j。因为是等概率,记得/n。最后答案就是dp[1][0]啦。代码:#include#include#include#include#incl原创 2016-03-22 20:56:52 · 677 阅读 · 0 评论 -
codevs2800送外卖
链接:http://codevs.cn/problem/2800/题意:中文题。分析:经典的货郎担问题(TSP),只是这题每个点可以多次路过。先跑一遍Floyd,再状压DP即可。O(n^3+n^2*2^n)代码:#include#include#include#include#include#include#include#include#include#include#include#原创 2016-03-21 21:51:39 · 966 阅读 · 0 评论 -
ICPCCamp2016day4F.Similar Subsequence
链接:等camp过后挂出来再加题意:给过两个数组a[n]和b[m],求b数组中是否存在长度为n的子序列与a数组相似,两个数组相似的定义是对于任意i,j都满足(ai-aj)*(bi-bj)>0。并且保证a数组是一个n的排列和保证给出的a数组中不存在与{2,1,3}和{2,3,1}相似的子序列。输出Yes/No。分析:首先我们分析给出的不存在与{2,1,3}和{2,3,1}相似的子序列的条件有原创 2016-01-29 01:04:47 · 639 阅读 · 0 评论 -
bzoj2669: [cqoi2012]局部极小值
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2669题意:中文题。分析:首先观察到这个题的数据小很容易就想到状压,但是怎么状压呢?我们一步一步来处理问题。首先我们要处理的是题目处理的是'X'的位置一定是极小值,'.'的位置只能是非极小值。但是如果有个3*3的矩阵中全是'.',那么我们怎么才能确定中间那个不会是处理成极小值呢?这里选择原创 2016-09-02 21:52:03 · 560 阅读 · 0 评论