
DP-线性dp-区间dp
文章平均质量分 55
杏花疏影里_吹笛到天明
自能窥宋玉,何必恨王昌。
展开
-
OpenJudge 2.5-1481 Maximum sum(最大和)
DescriptionGiven a set of n integers: A={a1, a2,..., an}, we define a function d(A) as below: t1 t2 d(A) = max{ ∑ai + ∑aj | 1 <= s1 <= t1 < s2 <= t2原创 2017-07-11 11:16:19 · 436 阅读 · 0 评论 -
【dp优化】LIS(最长上升子序列)长度的nlogn算法
先上一道例题:Bridging signals POJ - 1631这道题第一反应就想到了 [CEOI96]渡轮问题 就是一个非常裸的求最长上升子序列的长度,还不要方案,非常的水。然而,常规的dp复杂度是 O(n^2) ,这道题会愉快地TLE,所以要进行nlogn级别的优化。//O(n^2) TLE#include<cstdio>#include<algorith...原创 2018-08-08 17:48:19 · 1522 阅读 · 2 评论 -
Brackets sequence UVA - 1626【dp+非常坑的输入输出】
紫书P278-279 例9-10分析很容易想到定义dp[i][j]为s[i]~s[j]最少需要添加多少个括号边界:串为空时,dp[i+1][i]=0 单个串时,dp[i][i]=1转移:如果s[i]与s[j]匹配,转移到dp[i+1][j-1] 枚举断点,转移到dp[i][k]+dp[k+1][j]注意:无论该区间是否满足第一条,都要去尝试转移第二条,否则“[][]”会...原创 2018-08-13 14:40:06 · 228 阅读 · 0 评论 -
背包问题基础模型深度总结-文长慎入(01背包,完全背包,多重背包)
先等一下,字多预警,密集恐惧症慎入,喂,你,就是你,小板凳搬好了吗,站久了可是会腿酸的无节操地王婆卖瓜一下,本文 深度好文目录先扯两句0-1背包其它类似的状态定义12小结3 记忆化搜索滚动数组(优化空间复杂度)初始化完全背包递推关系优化时间滚动数组简单有效的常数优化多重背包状态转移转化为01背包问题二进制优化可...原创 2018-08-17 11:00:16 · 2451 阅读 · 1 评论 -
The Fewest Coins POJ - 3260【dp-背包-多重+完全-混合背包问题】
题意简述 农夫约翰要购买价格为T的物品,他有N种硬币,每种硬币的面额为Vi,数量为Ci,同时店主也只有这几种面额的硬币,但数量无限,问约翰总共要经手的硬币数量(约翰买东西给店主的硬币数量+店主找钱给约翰的硬币数量=约翰经手的硬币数量)分析 思路比较容易想,让硬币的面额作为背包重量,让硬币的数量作为背包价值,然后转移的时候取min(注意初始化要赋INF 因为要取min)就是对于FJ做一个多重...原创 2018-08-17 11:15:37 · 381 阅读 · 0 评论 -
背包问题进阶优雅总结【二维费用+分组+有依赖】
目录作者有话说二维费用的背包问题状态定义及转移物品总个数的限制小结分组的背包问题状态定义及转移小结有依赖的背包问题(重要)分析最后是非常不正经的ending作者有话说本篇博文中的各类数组都从1开始题目里好像混进去了什么奇怪的东西二维费用的背包问题二维费用的背包问题是指:对于每件物品,具有两种不同的费用,选择这件物品必须同时付出这...原创 2018-08-20 09:09:58 · 1835 阅读 · 0 评论 -
Consumer HDU - 3449【dp-有依赖的背包问题】
题意简述:FJ打算去购物,在此之前,他需要一些盒子来装他要买的各种各样的东西。每个盒子都用来携带一些特定的东西(也就是说,如果他要买这些东西,他必须事先买到盒子)。每种东西都有自己的价值。现在FJ的购物金额只有W美元,他想用这笔钱购物,使他所买的物品的总价值最高。 有多组测试数据 详情请戳--背包问题进阶优雅总结--有依赖的背包问题这道题其实就是有依赖的背包问题的板儿题了,先买...原创 2018-08-20 09:31:29 · 529 阅读 · 0 评论 -
Telephone Wire [USACO07NOV] 洛谷P2885 [单调队列优化dp]
文章目录DescriptionInputOutputSample InputSample Output分析①②代码Description最近,约翰的奶牛们越来越不满足于牛棚里一塌糊涂的电话服务,于是,她们要求约翰把那些老旧的电话线换成性能更好的新电话线。新的电话线架设在己有的n根电话线杆上,第i根电话线的高度为hi, ( 1 &lt;= hi&lt;= 100)。电话线总是从一根电话线杆的顶...原创 2019-01-05 14:36:51 · 274 阅读 · 0 评论 -
弹簧高跷 [dp+改变枚举顺序小优化]
文章目录DescriptionInputOutputSample InputSample Output分析①②AdditionDescription在草场上有一条直线,直线上有若干个目标点。每个目标点都有一个分值和一个坐标。现在你可以选择其中任意一个目标点开始跳,只能沿一个方向跳,并且必须跳到另一个目标点。且每次跳的距离都不能少于上一次的距离。请问你能得到的最大分值是多少?Input第一行...原创 2019-01-03 12:58:50 · 225 阅读 · 0 评论 -
【dp-类背包】Kas 7.4测试 COCI
样例:423165325813首先看到这道题,好简单的样子然而。。。第一步,想不出来正解先暴力 然后我暴力打爆了 然后。。。就真的爆了我想的是暴搜两人相等的钱数是多少其实我想错了 暴搜的话也不能只搜两人相等的钱数 因为剩下那一堆不一定凑得出来这个数每一张钱有三种情况:给甲,给乙,两人都不拿好 暴搜就说到这里然后dpdpdp 其实dpdpdp我觉得是...原创 2019-07-05 12:00:07 · 468 阅读 · 0 评论 -
【(有趣的)区间dp】取数游戏 纪中集训
DescriptionAlice想让Bob陪他去看《唐山大地震》,但由于Bob是个很感性的人,怕流泪不想去,但又不好意思以这个作为拒绝的理由,便提出玩一个游戏。 N个正整数围成一圈,规则如下: •两个玩家轮流取数; •最开始先手的玩家可以取任意一个数x; •从第二步开始当前玩家只能取x(上一玩家刚刚取的数)左右两边相邻的数; •直到取完所有的数,游戏结束; •取得较多奇数...原创 2019-08-03 14:46:37 · 353 阅读 · 0 评论 -
【LIS·思维】区间 纪中集训
DescriptionAlice收到一些很特别的生日礼物:区间。即使很无聊,Alice还是能想出关于区间的很多游戏,其中一个是,Alice从中选出最长的不同区间的序列,其中满足每个区间必须在礼物中,另序列中每个区间必须包含下一个区间。 编程计算最长序列的长度。Input输入文件第一行包含一个整数N(1<=N<=100000),表示区间的个数。 接下来N行,每行两个整数A和...原创 2019-08-03 15:20:46 · 377 阅读 · 0 评论 -
Dollar Dayz POJ - 3181【dp-划分数问题-完全背包 大数处理】
题意简述 求由1~k之间的数(含)组合成n的方案数分析:本质:完全背包方案数(完全部分和问题-划分数)状态定义: dp[i][j]:前i种数凑成j的方案数公式: dp[i][j]=dp[i-1] [j] (不取)+dp[i][j-i] (至少取一个) 道理与完全背包相似,也可以滚成一维然后要爆long long 高精度dp??? 网上题解说最大只有33位,l...原创 2018-08-08 08:59:20 · 315 阅读 · 0 评论 -
Free Candies UVA - 10118【dp-记忆化搜索】
紫书P304-305 题意分析这道题很容易看出来搜索比较简单吧,四堆糖果都只能取最上面的,那每一次选的时候每一堆糖果可以选也可以不选(其实dp也可以,但是没有dfs这么好写)本着dfs超时的原则,记忆化一下dp[i][j][k][l]表示每一堆取对应下标个最多可以获得的最大个数由于篮子里有相同颜色的糖果就可以取走,则用一个整数S表示篮子集合(一共20种颜色)然后注意一下这里几段...原创 2018-08-12 08:45:55 · 202 阅读 · 0 评论 -
最短编辑距离(Edit Distance)【DP】
概念 编辑距离(最短编辑距离,Edit Distance)又称Levenshtein Distance,“是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。一般来说,编辑距离越小,两个串的相似度越大。” ——引用自百度分析假设用f[i][j]表示将串a[1…i]转换为串b[1…j]所需的最少操作次原创 2017-07-13 09:49:34 · 2600 阅读 · 0 评论 -
OpenJudge 2.5-2988 计算字符串距离【最短编辑距离】
Description 对于两个不同的字符串,我们有一套操作方法来把他们变得相同,具体方法为: 1.修改一个字符(如把“a”替换为“b”) 2.删除一个字符(如把“traveling”变为“travelng”) 比如对于“abcdefg”和“abcdef”两个字符串来说,我们认为可以通过增加/减少一个“g”的方式来达到目的。无论增加还是减少“g”,我们都仅仅需要一次操作原创 2017-07-13 08:54:04 · 1085 阅读 · 0 评论 -
最长上升子序列II
题目描述 给出一个长度为N的整数序列,求出包含它的第K个元素的最长上升子序列。输入 第一行两个整数N, K 第二行N个整数输出 如题目所说的序列长度。样例输入 8 6 65 158 170 299 300 155 207 389样例输出 4提示 【数据范围】 0 < N ≤ 200000,0 < K ≤ N分析这道题由于数据规模比较大,所原创 2017-08-25 18:16:17 · 1049 阅读 · 0 评论 -
OpenJudge 2.6-1775 采药
分析 这就是一道简单的0-1背包问题,采药所用的时间相当于重量,可以直接使用0-1背包的状态转移方程。代码实现如下#include<cstdio>#include<algorithm>using namespace std;int n,W,f[105][1005],w[105],v[105],ans;int main(){ scanf("%d %d",&W,&n);原创 2017-08-24 08:57:32 · 536 阅读 · 0 评论 -
花店橱窗布置【DP】
由表格分析可以得知,这道题的摆放方案需要满足:每行只选一个数(美学值),且相邻的两行后一行的花瓶标号要大于前一行。那么问题就转换为了:在一个数字表格中,要求计算一条从顶至底的路径,使得所经过的数字之和最大,且相邻两行中,后一行的列数要大于前一行。现在这道题和数塔问题很相似了,可以类比求解。//花店橱窗布置-顺推#include#include#includeusing name原创 2017-09-06 13:50:10 · 924 阅读 · 0 评论 -
背包问题——0-1背包
有N件物品和一个最大承重为W的背包,第i件物品的重量为w[i],价值是v[i],每种物品仅有一件,可以选择放或不放,求解将哪些物品放入背包使得总重量不超过W且获得的总价值最大。分析这是一类最基础的背包问题,特点是每种物品只有一个。 一、状态 f[i][j]:表示前i件物品重量不超过j的最大价值 w[i]:第i件物品的重量 v[i]:第i件物品的价值二、状态转移方程式 f[i][j]这个子原创 2017-09-06 14:02:54 · 562 阅读 · 0 评论 -
Cow Exhibition POJ - 2184【dp-01背包】
传送门题意简述:奶牛想证明他们是聪明而风趣的。为此,贝西筹备了一个奶牛博览会,她已经对N头奶 牛进行了面试,确定了每头奶牛的智商和情商。 贝西有权选择让哪些奶牛参加展览。由于负的智商或情商会造成负面效果,所以贝西不 希望出展奶牛的智商之和小于零,或情商之和小于零。满足这两个条件下,她希望出展奶牛 的智商与情商之和越大越好,请帮助贝西求出这个最大值分析很容易想到这道题跟01背包有关系,区...原创 2018-08-09 09:27:16 · 204 阅读 · 0 评论 -
Tour UVA - 1347【dp】
先扯两句这道题紫书上P269-270有讲解分析可以把从左到右再回来看作是:两个人同时从最左点出发,经过2条不同的路径到最右点,除了起点和终点外每一个点都恰好被一个人经过。(颇有些小学奥数的意味)定义状态dp[i][j] 为第一个人走到i,第二个人走到j,还需要走的最短距离。但是这个状态在转移的时候有些困难,无法保证两个人不会走到相同的点,例如无法判断i+1这个点有没有被j走...原创 2018-08-10 10:15:18 · 248 阅读 · 0 评论 -
CodeForces - 2B The least round way【dp】
传送门vjudge上友善的中文题意分析后缀0代表该数是10的倍数,应由若干2*5产生 我们把每个格子里的数因数分解预处理出它包含的2和5的数量 而10的个数,为2的个数和5的个数取min dp[i][j][k] =min(dp[i][j-1][k],dp[i-1][j][k]) k=0:2 k=1:5存在0的话 把0看成10 即只有一个末尾的0 如果本身存在末尾没有0的...原创 2018-08-06 10:41:39 · 203 阅读 · 0 评论 -
Ant Counting POJ - 3046【dp-多重集组合数-模板】
题意简述:有t种蚂蚁 ,a个蚂蚁 每个蚂蚁属于一个种类 不同类蚂蚁可以区分 同类蚂蚁不可以区分 求这些蚂蚁组成大小为s s+1…b集合的组合数多重集组合数模板n种物品,第i种物品有ai个,不同种类物品可以互相区分但是相同种类无法区分。从这些物品中取出m个,求方案数。 ——方法来源于《挑战程序设计竞赛》P68-69 注意这里的物品种类编号是从0~n-1的Code Vie...原创 2018-08-07 16:44:11 · 266 阅读 · 0 评论 -
Cheapest Palindrome POJ - 3280【dp-区间dp 回文】
传送门来自vjudge的题意分析定义状态:dp[i][j] 为把区间i~j变成回文的最小代价转移: s[i]==s[j] dp[i][j]=dp[i+1][j-1] 如果 s[i+1]~s[j]是回文串 则对于s[i]可以增加可以删除,dp[i][j]=dp[i+1][j]+min(ac(s[i]),dc(s[i])) 如果 s[i]~s[j-1]是回文串 则对于...原创 2018-08-07 17:43:38 · 246 阅读 · 0 评论 -
【dp】SCOI2009粉刷匠 纪中集训提高B组
题目传送门jzoj1035Descriptionwindy有 N 条木板需要被粉刷。每条木板被分为 M 个格子。每个格子要被刷成红色或蓝色。windy每次粉刷,只能选择一条木板上一段连续的格子,然后涂上一种颜色。每个格子最多只能被粉刷一次。如果windy只能粉刷 T 次,他最多能正确粉刷多少格子?一个格子如果未被粉刷或者被粉刷错颜色,就算错误粉刷。Input第一行包含三个整数...原创 2019-08-10 22:01:17 · 216 阅读 · 0 评论