随笔分类 -  DP

上一页 1 2 3 4 5 下一页

D. Caesar's Legions 背包Dp 递推DP
摘要:http://codeforces.com/problemset/problem/118/D 设dp[i][j][k1][k2] 表示,放了i个1,放了j个2,而且1的连续个数是k1,2的连续个数是k2 如果这样写,用dfs写是很简单的。但是超时,我记忆化不到 如果用递推写,对于每一个状态,更新到下 阅读全文

posted @ 2017-01-21 15:46 stupid_one 阅读(128) 评论(0) 推荐(0)

E. The Values You Can Make 背包,同时DP
摘要:http://codeforces.com/problemset/problem/688/E 题目需要在n个数中找出一个集合,使得这个集合的和为val,然后问这些所有集合,能产生多少个不同的和值。 题解是直接两个同时dp,设dp[j][h]表示主集合的和为j,能否产生h这个数字。 把他们看作是两个集 阅读全文

posted @ 2017-01-21 00:18 stupid_one 阅读(99) 评论(0) 推荐(0)

D. Arpa's weak amphitheater and Mehrdad's valuable Hoses 分组背包模板题
摘要:http://codeforces.com/problemset/problem/742/D 并查集预处理出所有关系。 一开始的时候,我预处理所有关系后,然后选择全部的时候,另起了一个for,然后再判断。 这样是不对的。因为这样使得同一组里面可能选择了两次。 3 0 2 1 2 3 1 1 3 #i 阅读全文

posted @ 2017-01-20 20:18 stupid_one 阅读(152) 评论(0) 推荐(0)

1043 幸运号码 数位DP
摘要:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1043 设dp[i][j]表示前i位数中,i位数的和为j时的所有情况。 转移的时候和普通的数位dp是一样转移的,但是如果你压缩了空间的话,就是用滚动数组的话,记录情况数就要多 阅读全文

posted @ 2017-01-20 19:07 stupid_one 阅读(201) 评论(0) 推荐(0)

HDU 3652 B-number 数位DP
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3652 首先先解决怎么判断它是否含有13这个子串。 方法就类似于一个状态记录dp 加多一维[0 or 1]判断是否已经含有了13这个子串,那么如果枚举的时候,相邻的两位是13,则可由0跳转去1 这题是设dp[i][ 阅读全文

posted @ 2017-01-18 23:35 stupid_one 阅读(137) 评论(0) 推荐(0)

HDU 2089 不要62 数位dp入门
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2089 dp[i][j]表示长度为i的数字中,开头的数字是j的时候,有多少种合法的情况。 预处理挺好理解,关键是那个统计,比较难。 比如我统计的是数字: 456 那么,从高到低枚举。先枚举第一位,4、再枚举5、.. 阅读全文

posted @ 2017-01-18 20:30 stupid_one 阅读(160) 评论(0) 推荐(0)

1393 0和1相等串 鸽笼原理 || 化简dp公式
摘要:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1393 正解一眼看出来的应该是鸽笼原理。记录每个位置的前缀和,就是dp[i][1]表示前i个数中,1的个数。dp[i][0]同理。 然后计算出每一个位置的dp[i][1] - 阅读全文

posted @ 2017-01-17 23:27 stupid_one 阅读(336) 评论(0) 推荐(0)

C. Coin Troubles 有依赖的背包 + 完全背包变形
摘要:http://codeforces.com/problemset/problem/283/C 一开始的时候,看着样例不懂,为什么5 * a1 + a3不行呢?也是17啊 原来是,题目要求硬币数目a3 > a4 > a2,那么,不选的话,是不合法的。就是0、0、0这样是不合法的,因为a3 = a4了。 阅读全文

posted @ 2017-01-17 02:24 stupid_one 阅读(197) 评论(0) 推荐(1)

bnu 51640 Training Plan DP
摘要:https://www.bnuoj.com/bnuoj/problem_show.php?pid=51640 dp[i][j]表示前j个数,分成了i组,最小需要多少精力。 那么,求解订票dp[i][j]的时候,要么,第i组不做题,要么,第i组做1题、2题、3题....j题 先把数组排好序。然后暴力 阅读全文

posted @ 2017-01-09 22:40 stupid_one 阅读(203) 评论(0) 推荐(0)

hdu 5745 La Vie en rose DP + bitset优化
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5745 这题好劲爆啊。dp容易想,但是要bitset优化,就想不到了。 先放一个tle的dp。复杂度O(n * m)的 第一个串,记作str[],第二个记作sub[] 思路就是,设dp[i][j][k]表示,匹配了 阅读全文

posted @ 2017-01-09 03:32 stupid_one 阅读(166) 评论(0) 推荐(0)

1354 选数字 DP背包 + 数学剪枝
摘要:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1354&judgeId=187448 其实这题和在若干个数字中,选取和为val,有多少种不同的选法是一样的。 只不过不能直接枚举背包容量,只能用map的iterate来枚举, 阅读全文

posted @ 2017-01-08 13:00 stupid_one 阅读(180) 评论(0) 推荐(0)

POJ 1015 Jury Compromise 2个月后重做,其实这是背包题目
摘要:http://poj.org/problem?id=1015 题目大意:在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定。陪审团是由法官从公众中挑选的。先随机挑选n个人作为陪审团的候选人,然后再从这n个人中选m人组成陪审团。选m人的办法是:控方和辩方会根据对候选人的喜欢程度,给所有候选人打分,分 阅读全文

posted @ 2017-01-06 20:25 stupid_one 阅读(179) 评论(0) 推荐(0)

A. Writing Code 完全背包
摘要:http://codeforces.com/contest/543/problem/A 一开始这题用了多重背包做,结果有后效性。 就是如果6,这样拆分成 1 + 2 + 3的,那么能产生3的就有两种情况了(同一种物品,两种情况,所以有了后效性) 分别是1 + 2 = 3和0 + 3 = 3 以前的多 阅读全文

posted @ 2017-01-02 17:08 stupid_one 阅读(156) 评论(0) 推荐(0)

B. Checkout Assistant 01背包变形
摘要:http://codeforces.com/problemset/problem/19/B 对于每个物品,能偷多ti个,那么先让ti + 1, 表示选了这个东西后,其实就是选了ti + 1个了。那么只需要选出>=n个即可。 一开始的时候想不到ti + 1,一直不知道能多选ti个后,本来是选了多少个。 阅读全文

posted @ 2016-12-31 12:45 stupid_one 阅读(298) 评论(0) 推荐(0)

背包九讲 && 题目
摘要:★、背包求方案数的时候,多重背包是不行的,因为产生重复的背包会有多种情况。 ★、背包记录路径的时候,其实是不行的,因为更新了12的最优解,如果它依赖于6这个背包,然后你后面改变了6这个背包,就GG 1、01背包问题。 tot:总背包空间,vall[i]:每件物品的价值,w[i]:每件物品的重量 ht 阅读全文

posted @ 2016-12-30 22:31 stupid_one 阅读(2105) 评论(0) 推荐(0)

B. Shaass and Bookshelf DP
摘要:http://codeforces.com/contest/294/problem/B 据说是贪心,我用了一个复杂度是2e8的dp水过去了。 其实这题就是给你n个数,每个数有两个权值,分成两组,使得第一个权值之和,和第二个权值之和的最大值最小。 那么直接设dp[i][j][k][h]表示前i个数中, 阅读全文

posted @ 2016-12-30 22:30 stupid_one 阅读(227) 评论(0) 推荐(0)

C. Dima and Salad 背包好题
摘要:http://codeforces.com/contest/366/problem/C 在n个物品中选出若干个,使得sum(a[i]) = k * sum(b[i]) 把问题转化一下就是,求sum(a[i] - k * b[i]) = 0的最大的a[i],这个时候已经把a[i]作为价值了 那么怎么去 阅读全文

posted @ 2016-12-30 16:49 stupid_one 阅读(294) 评论(0) 推荐(0)

J. Bottles 二维费用背包问题
摘要:http://codeforces.com/contest/730/problem/J 3 4 36 1 90 45 40 其实可以知道,选出多少个瓶子呢?是确定的,当然选一些大的。 那么问题转化为: 在n个瓶子中,选出k个,然后把剩余的n - k个瓶子得液体转移过去这k个里面,费用最小。其实就是使 阅读全文

posted @ 2016-12-27 16:34 stupid_one 阅读(222) 评论(0) 推荐(0)

hdu 3506 Monkey Party 区间dp + 四边形不等式优化
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3506 四边行不等式:http://baike.baidu.com/link?url=lHOFq_58V-Qpz_nTDz7pP9xCeHnd062vNwVT830z4_aQoZxsCcRtac6CLzbPYLNI 阅读全文

posted @ 2016-12-27 12:50 stupid_one 阅读(346) 评论(0) 推荐(0)

nyoj 737 石子合并(一)。区间dp
摘要:http://acm.nyist.net/JudgeOnline/problem.php?pid=737 数据很小,适合区间dp的入门 对于第[i, j]堆,无论你怎么合并,无论你先选哪两堆结合,当你把[i, j]合成一堆的那一步的时候,花费肯定就是sum[i....j] 可以用纸模拟下。 那么我们 阅读全文

posted @ 2016-12-27 00:13 stupid_one 阅读(153) 评论(0) 推荐(0)

上一页 1 2 3 4 5 下一页

导航