
DP
文章平均质量分 53
Y390d
这个作者很懒,什么都没留下…
展开
-
POJ 3080 Blue Jeans 【KMP+DP】
The Genographic Project is a research partnership between IBM and The National Geographic Society that is analyzing DNA from hundreds of thousands of contributors to map how the Earth was populated. ...原创 2018-07-25 13:29:15 · 148 阅读 · 0 评论 -
数位dp模板
// cur : 当前位数// last: 上一位数对应的数字// status: 可以当作一个bool值// 比如题目是不要 4和7,那么只要之前的status = false,那么后面不管如何取值都是 false// limit : 如果能取0~9就为 false, 否则为 true// 巧妙的地方有两点// 1.dfs中的dp记忆条件是当前位数的取值是否受限...原创 2018-10-13 11:04:32 · 89 阅读 · 0 评论 -
ZOJ 4011 Happy Sequence 【dp】
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4011思路:dp状态:dp 【数列长度】【数列最尾的那个数】那么可以得出这个递推公式 : dp【当前数列长度】【数列最尾的数】 = (dp【当前数列长度-1】【比当前数列尾数小或者等于,而且是当前尾数的倍数】的总和),从逻辑分析来看是合理的;因为数字...原创 2018-10-19 13:38:47 · 134 阅读 · 0 评论 -
POJ 2686 Traveling by Stagecoach 【状压dp】
题目链接:http://poj.org/problem?id=2686思路:dp【二进制表示剩下的票】【v】; 假设票有3张,那么最初始的状态是 dp[ 111 ] [ a ] = 0;尝试在三张中拿一张,然后从a点出发到所有能到的点,由此更新状态;拿票的二进制操作时 S & ~(1 << i) , 把二进制数S中 第j个数变为0; 查看二进制数S第j个数是否...原创 2018-10-16 21:01:07 · 122 阅读 · 0 评论 -
LightOJ - 1079 Just another Robbery 【概率背包】
题目链接:https://vjudge.net/problem/LightOJ-1079需要注意的是,要想连续抢多家银行就得保证抢前面的银行没有被抓,所以样例1中抢1和2两家银行的概率是 0.02 + (1-0.02)*0.03;这里的背包dp[i] 中的i是val,价值;#include <iostream>#include <cmath>#includ...原创 2018-10-29 21:36:07 · 174 阅读 · 0 评论 -
Codeforces Round #523 (Div. 2) C. Multiplicity 【dp】
题目链接:http://codeforces.com/contest/1061/problem/C思路:像类似这种求有衔接关系的数列要第一时间想到 dp[ i ] = dp[ i ] + dp[ i - 1 ] 这种状态的dp,为什么?假设我要让一个原数组下标为 4的数变成下标为 3 的数,那么要想数列存在,那么 必须存在 至少一个 长度为2的数列,在这些数列的尾部加上这个原数组下标...原创 2018-11-23 19:11:12 · 551 阅读 · 2 评论 -
Educational Codeforces Round 59 (Rated for Div. 2) D Compression 【dp】
题目链接:http://codeforces.com/contest/1107/problem/D这道题只要把主要问题找出来就有思路了。题目的矩阵是 n*n的,要想压缩成 n/x *n/x 的矩阵需要满足一个条件,假设x == 2,那么这个矩阵将会被分成4小块矩阵,如果这四个小矩阵每一块要么全是1要么全是0,那这个矩阵就能压缩成n/2 *n/2的矩阵。因为题目给的n比较大,如果暴力求小...原创 2019-02-10 15:10:47 · 276 阅读 · 0 评论 -
Codeforces Round #539 (Div. 2) Sasha and a Bit of Relax 【DP】
题目链接:http://codeforces.com/contest/1113/problem/C这道题的难点不在DP而在等式。这个等式我当时有想到,但是给我自己给推掉了。题目要求的是 a(l) ^ a(l+1)^.... == a(mid+1)^...^a(r) 这种情况的个数有多少。这个等式要结合异或 xor的运算法则才能做。首先是 A^B^C^D == A^B^(...原创 2019-02-18 17:09:05 · 130 阅读 · 0 评论 -
HDU - 2546 饭卡 【01背包+排序】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2546题目问的是最小容量,而且容量可能会负数,我们可以换个角度解决问题,比如题目允许的容量是 5~m,我们可以把容量设置成m~2*m-5,这样做的好处是能把可能为负数的结果变成正数,那么就可以用01背包求解问题(dp[容量]),求的是最大值。另外需要给价格排序,比如下面这个两个数据,自己可以...原创 2019-03-21 14:06:33 · 285 阅读 · 0 评论 -
HRBUST - 2382 极难的问题 【数位dp + 二分】
题目链接:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=2382思路:数位dp能够求出0到m区间内的符合某个条件的数字个数,在数位dp的条件下通过二分找出符合题意的那个数字需要注意的是,题目的n虽然是int范围内的,但是n代表的是符合题意数字的个数,所有实际需要找的范围应...原创 2018-10-13 10:45:30 · 227 阅读 · 0 评论 -
Codeforces Round #513 by Barcelona Bootcamp (rated, Div. 1 + Div. 2) C 【暴力枚举+dp】
题目链接:http://codeforces.com/contest/1060/problem/C思路:一些暴力看起来会超时的题目还是有必要尝试一下的 ;题目的意思可以转换成:求两个数组的区间和的最大长度和,并且两个区间和的乘积小于等于x给出的数组只有2000个,求出所有区间和的时间复杂度大概是4*10^6,求两个数组的区间和就只是多一个常数; 假设一个数组的某个区间和是 n,只需...原创 2018-10-04 20:56:25 · 227 阅读 · 0 评论 -
Educational Codeforces Round 50 (Rated for Div. 2) C 【数位dfs打表 / 数位dp】
题目链接:http://codeforces.com/contest/1036/problem/C题意:求某区间,位数的数字非零并且不超过3个的个数;思路:除了数位dp外,可以通过dfs把所有满足条件的数字求出来,然后二分求出个数;#include<cstdio>#include<cstring>#include<algorithm>#i...原创 2018-09-21 18:26:45 · 121 阅读 · 0 评论 -
POJ 2576 Tug of War 【二维01背包】
Tug of WarTime Limit: 3000MS Memory Limit: 65536K Total Submissions: 9236 Accepted: 2572 DescriptionA tug of war is to be arranged at the local office picnic. For the tug of...原创 2018-07-18 16:23:50 · 457 阅读 · 0 评论 -
poj 1742 Coins 【多重背包+二进制拆分优化】
CoinsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3969 Accepted Submission(s): 1578 Problem DescriptionWhuacmers use coins.They...原创 2018-07-15 19:46:38 · 2976 阅读 · 1 评论 -
HDU 1114 Piggy-Bank 【完全背包(时间优化)】
Problem DescriptionBefore ACM can do anything, a budget must be prepared and the necessary financial support obtained. The main income for this action comes from Irreversibly Bound Money (IBM)...原创 2018-07-13 22:47:01 · 245 阅读 · 0 评论 -
最少拦截系统 【非DP】
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹. 怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大问题啊.所以俺就到这里来求救了,请帮助计算一下最少需要多...原创 2018-07-11 23:48:38 · 105 阅读 · 0 评论 -
求最长公共子序列长度(nlogn)【 包含了求最长上升子序列长度(nlogn)】
这里只说步骤吧,至于原理,可以自己百度找找;假设两个序列 A,B,找两者的最长公共子序列;第一步: 我们要去找出 A中所有与 B 相同的元素,这些元素在 B中的位置,各自为一个集合;比如 A = { a c f d } ,B = { c f g c a } , 则有 (从 i = 1 开始 )a ={ 5 } , c = { 1 ,4 } , f = { 2 }; a 这个元素...原创 2018-07-11 18:32:21 · 2773 阅读 · 0 评论 -
最大连续子序列 【递推(dp)】
给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= K。最大连续子序列是所有连续子序列中元素和最大的一个, 例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和 为20。 在今年的数据...原创 2018-07-10 13:05:32 · 322 阅读 · 0 评论 -
FZU 2214 Knapsack problem 【01背包】
题目链接:https://cn.vjudge.net/problem/FZU-2214思路:背包的容量太大,dp 改成前 i个物品,价值为 v的容量是多少;(原本应该是前i个物品容量为 w的最大价值)现在改成v的最小容量;代码:#include<cstdio>#include<cstring>#include<algorithm>#inc...原创 2018-08-28 19:00:34 · 173 阅读 · 0 评论 -
POJ 2018 【二分答案+dp求最大区间段】
题目链接:http://poj.org/problem?id=2018从0到2000000(2000*1000) 枚举平均值,让数组统一减去枚举的平均值,如果存在区间和大于等于0的,就说明答案是成立的。关键是如果求最大的区间和。假设不限制区间的长度,求某一个数组的最大区间和应该怎么求?如果dp[i]表示的是某左界到右界 i 的最大区间和,那么dp[i+1] 应该如果求?因为要求...原创 2019-03-25 21:08:19 · 284 阅读 · 0 评论