★-----------动态规划 dp-----------
文章平均质量分 71
yuhong_liu
这个作者很懒,什么都没留下…
展开
-
CF#321-D - Kefa and Dishes-状压DP+bitmasks
http://codeforces.com/contest/580/problem/D题意给出n个菜,要选出m个每个菜有一个权值aa[i]另有k个额外的条例条例格式 X Y C: 如果先吃第X个菜,马上接着吃Y个菜,会得到额外的权值C 求n个菜选m个的条件下,可以得到的最大权值思路:由于n=18,所以我们可以用一个数的二进制位,来表示有没选第i道菜,也就是用一个数原创 2015-10-03 16:18:05 · 567 阅读 · 0 评论 -
hdu-4526-威威猫系列故事——拼车记-DP
Problem Description 话说威威猫有一次去参加比赛,虽然学校离比赛地点不太远,但威威猫还是想坐出租车去。大学城的出租车总是比较另类,有“拼车”一说,也就是说,你一个人坐车去,还是一堆人一起,总共需要支付的钱是一样的(每辆出租上除司机外最多坐下4个人)。刚好那天同校的一群Acmer在校门口扎堆了,大家果断决定拼车去赛场。 问题来了,一辆又一辆的出租车经过,但里面要么坐原创 2016-04-28 11:13:19 · 621 阅读 · 0 评论 -
ZOJ 2424-Game of Connections-DP+高精度
http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=40263题意很简单。给n。1 2 3 ... 2n 按顺序排成一个圈,然后任意两人连线,要求线段不相交,问有多少种连线方案;划分出子问题,例如n=16, 1和6连,则当前情况下的方案就是 6到16这边形成一个圈,2到5形成一个圈也就是 f(原创 2016-05-15 19:59:29 · 343 阅读 · 0 评论 -
hihoCoder挑战赛20-题目2 : 展胜地的鲤鱼旗 -DP/分治
http://hihocoder.com/contest/challenge20/problem/2给一串括号,求有多少个子串合法dp[i]表示以i为结尾的方案数,i位置显然只能是右括号啦那么 dp[i]=dp[i-1]+1;递推累计所有dp[i]就好int main( ){ scanf("%s",ss+1); int n=strlen(ss+1)原创 2016-05-07 10:50:19 · 608 阅读 · 0 评论 -
HDU 4341-分组背包/01背包
http://acm.hdu.edu.cn/showproblem.php?pid=4341黄金矿工的游戏,给n个点,每个点有花费,价值,让最少的时间内选出最大价值的物品集合。有个问题就是共线的点,我们必须先选取 前面的,才能选后面的,换句话说,要选 共线的第3个点,必须把前两个都选了也就是说,所有的点里,只有共线的点之间才有约束,非共线的点 互不相干,因此可以按极角序原创 2016-04-24 18:14:29 · 341 阅读 · 0 评论 -
cf#362-D - Puzzles-树DP /概率
http://codeforces.com/contest/697/problem/D给你一个n-1条边的联通图从1开始 随机的dfs,问 访问到每个节点时,经过的节点数 的期望很显然是个树dp,我们可以从ans[fa]推得ans[son]对一个节点u, 影响其期望值的节点有三种,1是其祖先节点,这些节点必然会在访问u之前被访问,对期望贡献为 1原创 2016-07-17 11:55:27 · 394 阅读 · 0 评论 -
hdu-4734-数位Dp
按照题意推dp就好从最高位开始,根据是否受限往下递推记忆化保存结果#include #include #include #include #include #include #include #include #include #include using namespace std;typedef int ll;const int maxn=5005+5原创 2016-08-05 16:31:28 · 295 阅读 · 0 评论 -
HDU 5794-B - A Simple Chess - DP
与此题类似http://blog.csdn.net/viphong/article/details/50603204dp[i]表示(1,1)到第i个石头的方案数(之间无障碍)然后如果 (1,1)与i有障碍,那么dp[i]-=dp[j]* (i到j的方案数),这就减去了所有包含j的路径数,得到(1,1)到点i,不经过之间所有障碍的方案数。最后把n,m也看作一个障碍原创 2016-08-08 21:20:36 · 392 阅读 · 0 评论 -
ZOJ 3605-F - Find the Marble-DP
http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=3605n个罐子,有一个石头放在第s号罐子里,然后交换这些罐子m次,只能记住k次,每次交换被看到的概率相同,那个猜的人(按概率最大的猜)最可能猜哪号罐子里有石头f[i][j][k]表示 前i次交换里,看到了j次,石头落在k位置的概率则原创 2016-04-28 09:24:36 · 388 阅读 · 0 评论 -
ZOJ 3777 Problem Arrangement-状压dp
http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=3777输入n,m;给一个n*n的矩阵,mp[i][j]表示第i题选题目j会有 相应的得分让你选择一个序列,求序列得分超过m的个数n《12,m可以把12种状态压位到一个intdp[i][j] 中的i有cnt个1,表示选了前cnt题,那么接下来原创 2016-04-11 14:13:32 · 535 阅读 · 0 评论 -
codeforces 533-B Work Group-树DP-
http://codeforces.com/problemset/problem/533/B题意:每个人有一个直接的领导,1是总裁,现在要找一个最大的集合,每个领导领导的人的数量都是偶数,问最大的值是多少。 给n,n个人接下来n行 P,x,pi表示该人领导是pi,X表示该人权值为X求一个子树(集合),里面所有人的下属的个数和都为偶数,求权原创 2016-03-09 17:12:58 · 964 阅读 · 0 评论 -
cf#156-C. Almost Arithmetical Progression-DP
http://codeforces.com/problemset/problem/255/C题意:给n个数,找最长的交替串,形如 ABABABAB或者AAAAAAAA(可理解为B=A的特殊情况)。。状态方程不太好想。。对一个ABABABA串dp[i][j], i是串的最后一个数的位置,j是 倒数第二个数的位置那么,假设x=A[i];dp[i][j]=dp[j原创 2016-03-07 00:34:56 · 457 阅读 · 0 评论 -
cf#301-D - Bad Luck Island-概率dp(水 )
http://codeforces.com/contest/540/problem/D题意:给三种人,分别是r,s,p个;在孤岛上,每两个不同种人相遇则互吃,r吃s,s吃p,p吃r求最后留下单一种族的概率设dp[i][j][k]为 剩下i个r,j个s,k个p 的概率,那么可以得到当r和p相遇,dp[i-1][j][k]+=dp[i][j][k]*(i*k)/(i*j原创 2016-04-07 01:26:28 · 617 阅读 · 0 评论 -
codeforces 505B B. Mr. Kitayuta's Colorful Graph-爆搜/DP
题意:给十种秤砣,重量为1~10,个数无限,给n,问能否进行n次左右交替摆放秤砣,满足以下规则:每次放下一个秤砣后,该边重量必须大于另一边并且这次放下的秤砣不能和上一次放下的秤砣种类相同。。。这题居然爆搜也能过。估计是可行的答案分支比较多。。。DP【k】【i】【j】表示 第k次摆放时,所选择摆放的那一边比另一边 重 i ,并且第k次选择的是重量为j的秤砣原创 2016-03-14 19:39:00 · 605 阅读 · 0 评论 -
CodeForces 219D-H - Choosing Capital for Treeland-树DP
http://codeforces.com/problemset/problem/219/D题意:给出一树的节点n和有向边n-1条,对每个点有个信息:该点到所有其他点,如果遇到一条反向边,计数器+1,求出,最后这个计数器最小的点,如果有多个,增序输出题目本身是无根树,为了方便我们直接看成一个以1为根的有根树即可:显然是一个树DP,我们把正向边权值val为0,反向原创 2016-03-14 21:28:03 · 675 阅读 · 0 评论 -
Codeforces#245- B. Working out-DP
http://codeforces.com/problemset/problem/429/B给个n*m矩阵,每个格子有值一个人从【1,1】走到 【n,m】每次只能向右或向下走。另一个人从【n,1】走到【1,m】每次只能向右或向上走。要求两条路线只能有一个交点【这点巨坑。。开始一直读不出这个意思】求一个sum,就是两条路径的经过所有格子的 值加起来(排除掉他们原创 2016-03-26 22:08:38 · 333 阅读 · 0 评论 -
Codeforces#302-C. Writing Code-DP/滚动数组
http://codeforces.com/contest/544/problem/C题意:给你n,m,k,mod,表示有n个程序员,要求写m行代码,代码的bugs不超过k个,求方案数模mod接下来是一个n个数的数组,表示第i个程序员写一行代码会有tm[i]个 bugs 【被黑得好凄凉的感觉....】n,m,k都是 【1,500】;如果你选了X个程序员,你只需要保证一共写了原创 2015-10-21 17:53:22 · 547 阅读 · 0 评论 -
hdu-4345-Permutation - DP+数学或记忆化搜索
http://acm.hdu.edu.cn/showproblem.php?pid=4345题意化简后:给你一个n,要求选若干个数,使得他们的和小于等于N,然后他们的最小公倍数为一种合法方案,求有多少种合法方案。首先一个情况,如果这些数不是互质的,那么一定可以找到一个方案,所有的数互质,并且最小公倍数等于当前方案,所以我们优先选互质的方案。那么显然就是 选一个 小于原创 2016-04-26 14:30:20 · 353 阅读 · 0 评论 -
HDU 5800 - To My Girlfriend-四维DP
求前n个数里,子集和为0到S,必选2个必不选两个的方案数dp[i][j][s1][s2] 表示前i个数选的子集和为j,并且 s1个必选,s2个必不选转移比较简单,要滚动数组因i,j,k,l可以互换,所以答案*4#include #include #include #include #include #include #include #incl原创 2016-08-08 21:24:46 · 406 阅读 · 0 评论 -
cf#369-C. Coloring Trees-三维dp
http://codeforces.com/contest/711/problem/C题意很简单:有m种颜色给n棵树,每棵树最后有一个颜色x,或者无颜色,用0表示。要求染成k个子区间,这些子区间是这样划分的, 连续一段颜色一样的树算做一个子区间,不同颜色的数算做不同子区间,样例说的很清楚了给n,m,k;要求最后染成k个子区间接下来给一个n*m的矩阵,表示第原创 2016-08-30 18:25:26 · 595 阅读 · 0 评论 -
hdu 5898 数位DP with 前导零限制
题意:题意有点绕,odd-even数就是一个数 比方11222 就是,因为连续奇数的长度为2 而连续偶数的长度为3,但是11222333不行,因为3个3不满足连续奇数为偶数长度的条件。dp[len][pre][need] 表示第len位 时,前一位的奇偶性,和前一位需不需要加多一个同奇偶性数使之合法。转移的时候,根据题目条件转移即可。由于不考虑前导零,那么原创 2016-09-22 21:20:38 · 536 阅读 · 0 评论 -
HDU 5900-QSC and Master - 区间 の dp
http://acm.hdu.edu.cn/showproblem.php?pid=5900题意:给n个数有key和val,相邻的并且key不互质的两个数可以消去并得到val,问最大价值之和区间dp 状态表示:d[i][j] = 区间[i, j]能获得的最大值 转移的话对于i到j区间 我一直在想怎么由i到k和k+1到j合并,然后合并时,怎么考虑左区间右端点和原创 2016-09-20 15:59:11 · 485 阅读 · 0 评论 -
POJ 2778 DNA Sequence AC自动机+DP+快速幂
http://poj.org/problem?id=2778题意:给n个病毒基因 长度不超过10要你构造一个长度为n的字符串,不能包含任何病毒基因求方案数用病毒基因构建ac自动机。考虑节点作为一个状态,初始状态是在根节点。建立二维矩阵,(dp[i][j]表示从状态节点i走一部能到达状态节点j的方案数(根据ac自动机建立一个sz*sz大小的矩阵原创 2016-11-05 00:49:41 · 335 阅读 · 0 评论 -
HDU 2243 考研路茫茫——单词情结 AC自动机+DP+快速幂
与此题类似http://blog.csdn.net/viphong/article/details/53039419dp递推一样在它的基础上多了一步求前缀和solution是加多一维累计即可最后求一个26+26^2 + 26^3 + 26^4 ...的一个快速幂相减就算是答案对2^64取模就是 ull即可printf+ull原创 2016-11-05 02:11:24 · 326 阅读 · 0 评论 -
HDU 2457 DNA repair AC自动机+DP
http://acm.hdu.edu.cn/showproblem.php?pid=2457题意: 给出了一些病毒串的基因, 又给出了一个基因串,问至少修改多少个基因串中的字符可以不含病毒串。首先把病毒建立一个自动机。dp[i][j]表示 长度为i的字符串以状态j结尾时,最少修改数dp[0][0]=0,其他无穷那么dp[i][j]可以用 dp[i-1][k]原创 2016-11-06 01:25:22 · 310 阅读 · 0 评论 -
hdu3658 How many words 矩阵快速幂 + dp
http://acm.hdu.edu.cn/showproblem.php?pid=3658问题:在52个英文字母里面选择m个字母组成一个字符串。 满足以下两个条件: 一、相邻的两个字符的ASCLL码的绝对值小于等于32(比如说X与x的码值差为32); 二、至少要有一对的字符的绝对值为32。设置F(32,len)表示 长度为len,相邻字符间隔不超过32的方案原创 2016-10-31 18:47:52 · 416 阅读 · 0 评论 -
hiho一下第137周《建造基地》DP
QAQ好像最近hihocoder的题都可以暴力??DP无脑枚举即可。。。#include using namespace std;long long dp[10502];long long a[105],b[105];int main(){ long long Q,N,M,K,T; cin>>Q; while(Q--) {原创 2017-02-11 21:39:49 · 479 阅读 · 0 评论 -
hihocoder #1500 : EL SUENO 树DP
#1500 : EL SUENO时间限制:10000ms单点时限:1000ms内存限制:256MB描述In a video game, Little Hi is going to assassinate the leader of an evil group, EL SUENO.There are N high-value targe原创 2017-04-13 23:12:35 · 793 阅读 · 0 评论 -
hdu 5890 Eighty seven DP
http://acm.hdu.edu.cn/showproblem.php?pid=5890题意:给n个数,选10个,看能否使得sum==87然后q次询问,每次询问会从n个数里删掉 1-3个数,然后问 能否可以【选10个,看能否使得sum==87】..L【i】【j】【k】【sum】 ,前j个数,不选第i个,选了k个数,和为sumR【】【】【】【】【】 同样定义,原创 2016-09-17 18:16:16 · 684 阅读 · 0 评论 -
ZOJ-3211-Dream City-DP背包问题+贪心
http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=3211给你n棵树,每个树有个初始果实值ai,每天增长值bi你要在m天内每天砍一棵树(砍下即得到全部果实值)求m天内得到最大果实值。首先我们考虑如果确定了i棵树作为我们的答案集合,那么这i棵树显然 这时ai已经没有影响了,应该【bi最大的最晚砍】原创 2016-04-14 10:46:56 · 721 阅读 · 0 评论 -
Educational Codeforces Round 16 E. Generate a String-DP
http://codeforces.com/contest/710/problem/E给n,x,y,要求生成n个‘a’初始文本编辑器空白。每次插入一个a,花费x,删除一个a,花费x,每次复制当前全部文本一次,花费y,求最小花费生成yThe only line contains three integers n, x and y (1 ≤ n ≤ 10原创 2016-08-23 22:38:26 · 296 阅读 · 0 评论 -
cf/codeforces #365 E - Mishka and Divisors 数学+背包dp+gcd
Problem E - Mishka and Divisors题目大意 给n,k,给n个数,让你挑出m个数,使得m个数的乘积是k的倍数,输出最小的m。如果有多个方案,输出sum最小的方案,(方案输出所选数的下标) 数据范围:n 解题分析 dp[i][j]表示前i个数里选一些数,使得乘积是j的倍数的最小的m。sum[i][j]原创 2016-08-31 13:58:41 · 511 阅读 · 0 评论 -
POJ-1836-Alignment-双向LIS-注意double精度
。。。本题找 一个双向的list。。。满足 1 2 3 4 4 3 2 1 这样的一个 两端小 中间高的数列,最中间可以等高。其余部分必须严格递减直接暴力枚举终点,nlog的list总复杂度 n*n*logn。。。注意的坑是 double比较要 减去eps。。。不然一直wa即是此处: int it=upper_bound(dp+1,dp+1原创 2016-01-19 12:35:08 · 391 阅读 · 0 评论 -
CF#323-DIV2-D. Once Again-暴力贪心LIS
给出n长度的字符串重复t个周期求LIS(最长非递减子序列)由于n最大才100。。考虑最极端情况n=100,t=1e7显然,我们只需要把前100段拼接起来,求一遍LIS此后的t-100周期, 我们只需要 取 重复个数最多的那个元素。 一直重复t-100次得到的答案必然是最优的 (不可能有其他情况了)例如 n=4; 6 2 2 3前100次 我们取得的lis是10原创 2015-10-04 13:46:24 · 561 阅读 · 0 评论 -
codeforces 340D Bubble Sort Graph(最长非递减子序列)
二分+dp也即经典的LIS问题 的nlogn版#include #include #include #include #include #include #include using namespace std;struct node{ int len; int st,ed; };node dp[100000+5]; //nlgn复杂度的LIS原创 2015-07-29 19:18:00 · 910 阅读 · 0 评论 -
Codeforces Round #367 (Div. 2)-C - Hard problem-DP
题意:给字符串n个,能否通过逆序某些字符串,使得最后整体字典序递增。每个字符串翻转需要花费,输出最小花费使得 整体字典序递增dp[i][0]表示第i个字符串选择不翻转的花费dp[i]【1】表示要翻转的花费简单dp一下就好了。。最后答案判断是否超过IN if (ss[i]>=ss[i-1]) dp[i][0]=min(dp[i][原创 2016-08-12 03:00:32 · 305 阅读 · 0 评论 -
cf/Codeforces Round #371 714E - Sonya and Problem Wihtout a Legend - dp +lis
http://codeforces.com/problemset/problem/714/E 题意:给一个序列,可以给每一个数假减一个数,代价为他们改变的数的绝对值,那么要求用最小代价把序列变成严格递增的有一个非严格递增的版本 为poj 3666: http://blog.csdn.net/viphong/article/details/52535780原创 2016-09-14 14:18:22 · 835 阅读 · 0 评论 -
POJ 3666 Making the Grade DP + 离散化 + 贪心
http://poj.org/problem?id=3666题意:给一个序列,可以给每一个数假减一个数,代价为他们改变的数的绝对值,那么要求用最小代价把序列变成单调非增或者单调非减的(ps本题数据似乎只要变成非减就能过)n思路是dpdp[i][j]表示前i个数以j为结尾的非减序列的最小代价,当然这个j得离散化的啦 dp[i]][j]=abs(a[i]-j)+dp原创 2016-09-14 11:18:14 · 685 阅读 · 3 评论 -
HDU 4939-E - Stupid Tower Defense-DP
题意:题意:给出一条长为n个单位长度的直线,每通过一个单位长度需要t秒。有3种塔,红塔可以在当前格子每秒造成x点伤害,绿塔可以在之后的格子每秒造成y点伤害,蓝塔可以使通过单位长度的时间增加z秒。问如何安排3种塔的顺序使得造成的伤害最大,输出最大伤害值显然 红塔放在最后面是最优的,因此可以枚举i,红塔的位置就是i+1到n那么只是看前面怎么选蓝和绿d原创 2016-03-20 11:22:00 · 592 阅读 · 0 评论 -
URAL 1039 / poj2342-Anniversary Party-树形DP
http://poj.org/problem?id=2342 http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=17663题意:某公司要举办一次晚会,但是为了使得晚会的气氛更加活跃,每个参加晚会的人都不希望在晚会中见到他的直接上司,现在已知每个人的活跃指数和上司关系(当然不可能存在环),求邀请哪些原创 2016-03-09 01:08:53 · 462 阅读 · 0 评论