线性dp
不拿牌不改名
ACM刚入门,博客写错了可以留言给我啊
展开
-
线性dp Codeforces Round #239 (Div. 2) D题 Long Path
Long PathOne day, little Vasya found himself in a maze consisting of (n + 1) rooms, numbered from 1 to (n + 1). Initially, Vasya is at the first room and to get out of the maze, he needs to get to the (n + 1)-th one.The maze is organized as follows. Each原创 2020-07-11 15:19:19 · 185 阅读 · 0 评论 -
线性dp Codeforces Round #336 (Div. 2) C题 Chain Reaction
Chain ReactionThere are n beacons located at distinct positions on a number line. The i-th beacon has position a i and power level b i. When the i-th beacon is activated, it destroys all beacons to its left (direction of decreasing coordinates) within dis原创 2020-07-08 17:06:18 · 283 阅读 · 0 评论 -
线性dp+倒序思想 Codeforces P859C Pie Rules
Pie RulesYou may have heard of the pie rule before. It states that if two people wish to fairly share a slice of pie, one person should cut the slice in half, and the other person should choose who gets which slice. Alice and Bob have many slices of pie,原创 2020-07-07 11:26:21 · 569 阅读 · 0 评论 -
线性dp+数学思维 Codeforces Round #533 (Div. 2) C题 Ayoub and Lost Array
Ayoub and Lost ArrayAyoub had an array a of integers of size n and this array had two interesting properties:All the integers in the array were between l and r (inclusive).The sum of all the elements was divisible by 3.Unfortunately, Ayoub has lost his原创 2020-06-30 16:40:55 · 275 阅读 · 0 评论 -
线性dp Codeforces Round #260 (Div. 1) A题 Boredom
BoredomAlex doesn’t like boredom. That’s why whenever he gets bored, he comes up with games. One long winter evening he came up with a game and decided to play it.Given a sequence a consisting of n integers. The player can make several steps. In a single原创 2020-06-29 12:18:15 · 231 阅读 · 0 评论 -
线性dp之悬线法学习笔记
悬线法以前写过求最大正方形面积的题目,这只要处理 [i-1][j],[i][j-1],[i-1][j-1] 三个位置的最小值就可以,用不到悬线法,简单的线性dp;但是当要求最大长方形时,那种方法就不适合了,悬线法就出现了;模板题: P4147 玉蟾宫悬线法可以分为三个部分:l[i][j] 代表位置 (i,j) 可以往左扩展的最小坐标,就是最远的坐标r[i][j] 代表位置 (i,j) 可以往右扩展的最大坐标,就是最远的坐标up[i][j] 代表位置 (i,j) 可以往上扩展的最大距离,不是坐原创 2020-06-07 15:12:33 · 158 阅读 · 0 评论 -
数学+线性dp 不等数列(洛谷 P2401)
不等数列题目描述将1到n任意排列,然后在排列的每两个数之间根据他们的大小关系插入“>”和“<”。问在所有排列中,有多少个排列恰好有k个“<”。答案对2015取模。注:1 ~ n的排列指的是1~n这n个数各出现且仅出现一次的数列。dp[i][j]表示前 i 个数字插入 k 个小于号的种类数;dp[i][j]+=dp[i-1][j]*(j+1) ,j+1表示有 j 个小于号,还有加一个是数列的最左端那个位置,说明这 j+1 个位置都可以放入第 i 个数,并且小于号个数不变;dp[原创 2020-06-05 21:33:41 · 365 阅读 · 0 评论 -
线性dp [USACO3.3]游戏 A Game(洛谷 P2734)
[USACO3.3]游戏 A Game题目背景有如下一个双人游戏:N(2 <= N <= 100)个正整数的序列放在一个游戏平台上,游戏由玩家1开始,两人轮流从序列的任意一端取一个数,取数后该数字被去掉并累加到本玩家的得分中,当数取尽时,游戏结束。以最终得分多者为胜。题目描述编一个执行最优策略的程序,最优策略就是使玩家在与最好的对手对弈时,能得到的在当前情况下最大的可能的总分的策略。你的程序要始终为第二位玩家执行最优策略。题目看上去像博弈论的题目,但是其实不是,是一道线性dp题,转移原创 2020-05-29 22:57:23 · 474 阅读 · 0 评论 -
线性dp之最大子段和问题小结
子段和问题我们知道线性dp中一道典中典的题目就是求最大子段和;状态方程为:dp[i]=max(dp[i]+a[i],a[i]);当然这只是最基础的,还有很多扩展;子段长度不大于m的最大子段和这个时候dp已经不好用了,可以考虑前缀和sum[i],维护min(sum[k])(i-m<=k<i),然后只要sum[i]-sum[k]就可以了,具体怎么维护可以单调队列(模板题);子段长度不小于m的最大子段和(1)第一种方法,先用dp计算一次没有长度限制的最大子段和,然后f[i]=d原创 2020-05-23 22:08:38 · 273 阅读 · 0 评论 -
线性dp+背包思维 P2854 [USACO06DEC]Cow Roller Coaster S
[USACO06DEC]Cow Roller Coaster S题目大意:奶牛们正打算造一条过山车轨道.她们希望你帮忙,找出最有趣,但又符合预算的方案. 过山车的轨道由若干钢轨首尾相连,由x=0处一直延伸到X=L(1≤L≤1000)处.现有N(1≤N≤10000)根钢轨,每根钢轨的起点 Xi(0≤Xi≤L- Wi),长度wi(l≤Wi≤L),有趣指数Fi(1≤Fi≤1000000),成本Ci(l≤Ci≤1000)均己知.请确定一种最优方案,使得选用的钢轨的有趣指数之和最大,同时成本之和不超过B(1≤B≤原创 2020-05-19 21:39:30 · 198 阅读 · 0 评论 -
线性dp 乌龟棋(洛谷 P1541)
乌龟棋题目大意:给你n个格子(每个格子都有一个分数),m张卡片,从1号格子移动到n号格子,每次移动的步数只能是卡片的数值,每张卡片只能用一次;卡片的种类数小于等于4;看上去毫无头绪,但是要抓住重点,卡片种类数小于等于4;再结合数据范围,可以想到是否要一个四维的数组来定义状态呢;没错,dp[i][j][k][l] 表示第一种卡片用了 i 张,第二种卡片用了 j 张,第三种卡片用了 k 张,第四种卡片用了 l 张的最大值;那么转移方程也就十分简单了;代码:#include<bits/st原创 2020-05-11 23:39:03 · 238 阅读 · 0 评论 -
dfs序+线性dp 树
题目描述shy有一颗树,树有n个结点。有k种不同颜色的染料给树染色。一个染色方案是合法的,当且仅当对于所有相同颜色的点对(x,y),x到y的路径上的所有点的颜色都要与x和y相同。请统计方案数。输入描述:第一行两个整数n,k代表点数和颜色数;接下来n-1行,每行两个整数x,y表示x与y之间存在一条边;输出描述:输出一个整数表示方案数(mod 1e9+7)。看上去是树形dp;这题要是没想到把树上问题转化为dfs序是很难做的出来的;转化为dfs序,就是一道线性dp,dp[i][j]表示前 i原创 2020-05-09 23:34:16 · 325 阅读 · 0 评论 -
线性dp+最长递增子序列思想 数列(洛谷 P1799)
数列题目描述虽然msh长大了,但她还是很喜欢找点游戏自娱自乐。有一天,她在纸上写了一串数字:1,l,2,5,4。接着她擦掉了一个l,结果发现剩下l,2,4都在自己所在的位置上,即1在第1位,2在第2位,4在第4位。她希望擦掉某些数后,剩下的数列中在自己位置上的数尽量多。她发现这个游戏很好玩,于是开始乐此不疲地玩起来……不过她不能确定最多能有多少个数在自己的位置上,所以找到你,请你帮忙计算一下!...原创 2020-05-03 16:24:48 · 430 阅读 · 0 评论 -
线性dp 书本整理(洛谷 P1103)
书本整理题目大意:给你n本书,每本都有两种属性,高度和宽度;先要按照高度由小到大排,然后让你拿掉k本书,求剩下的书相邻宽度差值绝对值和最小;这道题正想比较难,尝试反向思考,相当于放入n-k本书;直接说状态转移方程:dp[i][j]=min(dp[i][j],dp[1->i-1][j-1]);dp[i][j] 表示第 i 本书位于第 j 个位置的最小值;所以可以由第 1 到 i-...原创 2020-05-01 17:17:38 · 329 阅读 · 0 评论 -
线性dp+数学思维 龙兄摘苹果(洛谷 P2028)
龙兄摘苹果题目描述龙兄在淘淘摘苹果的那个果园里摘了n个完全互不相同的苹果,好客的园主为他提供了k个篮子,他想把苹果装在篮子里拎回家(由于龙兄的手是无限大的,所以你不必考虑他能不能同时拎这么多篮子)。同时,他不希望有任何一个篮子里是空的,因为这样就做不到物尽其用= =。因此他想知道一共有多少种放苹果的方法,由于他的大脑运算过慢,所以找到了聪明机智的你,他在摘苹果上已经花了很长时间,所以他只能等1...原创 2020-04-29 17:12:35 · 237 阅读 · 0 评论 -
线性dp+输出路径 机器分配(洛谷 P2066)
机器分配题目描述总公司拥有高效设备M台,准备分给下属的N个分公司。各分公司若获得这些设备,可以为国家提供一定的盈利。问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值。其中M≤15,N≤10。分配原则:每个公司有权获得任意数目的设备,但总台数不超过设备数M。输入格式第一行有两个数,第一个数是分公司数N,第二个数是设备台数M。接下来是一个N*M的矩阵,表明了第 I个公司分配 J...原创 2020-04-10 14:35:01 · 187 阅读 · 0 评论 -
线性dp 膜拜(洛谷 P1564)
膜拜题目描述神牛有很多…当然…每个同学都有自己衷心膜拜的神牛.某学校有两位神牛,神牛甲和神牛乙。新入学的 n 位同学们早已耳闻他们的神话。所以,已经衷心地膜拜其中一位了。现在,老师要给他们分机房。但是,要么保证整个机房都是同一位神牛的膜拜者,或者两个神牛的膜拜者人数差不超过 m。另外,现在 n 位同学排成一排,老师只会把连续一段的同学分进一个机房。老师想知道,至少需要多少个机房。输入格式...原创 2020-04-05 23:56:23 · 225 阅读 · 0 评论 -
线性dp [USACO08MAR]River Crossing S(洛谷 P2904)
[USACO08MAR]River Crossing S题目描述Farmer John is herding his N cows (1 <= N <= 2,500) across the expanses of his farm when he finds himself blocked by a river. A single raft is available for tra...原创 2020-04-03 16:08:04 · 318 阅读 · 0 评论 -
线性dp+背包思维 [USACO09MAR]Cow Frisbee Team S(洛谷 P2946)
[USACO09MAR]Cow Frisbee Team S题目描述After Farmer Don took up Frisbee, Farmer John wanted to join in the fun. He wants to form a Frisbee team from his N cows (1 <= N <= 2,000) conveniently number...原创 2020-04-02 20:36:17 · 398 阅读 · 0 评论 -
线性dp 摆花(洛谷 P1077)
摆花题目描述小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆。通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号。为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时同一种花放在一起,且不同种类的花需按标号的从小到大的顺序依次摆列。试编程计算,一共有多少种不同的摆花方案。输入格式第一行包含两个正整数n和m,中间用一个空格隔开。第二行有n个整数,每两...原创 2020-03-30 15:12:43 · 147 阅读 · 0 评论 -
线性dp求子序列的个数 牛客练习赛60 C题 操作集锦
操作集锦题目描述有一款自走棋有26种操作,每种操作我们都用a,b,c,d,…,x,y,z的符号来代替.现在牛牛有一个长度为n的操作序列,他现在可以从里面拿出某些操作来组合成一个操作视频, 比如说操作序列是abcdabcd,那么操作视频就有a,b,c,d,ab,ac,ad等(也就是操作序列的子序列).他现在想知道长度为k且本质不同的操作视频有多少种.比如对于abab,长度为2且本质不同的结果...原创 2020-03-28 15:01:45 · 276 阅读 · 0 评论 -
线性dp+单调栈 Codeforces Round #622 (Div. 2) C Skyscrapers
Skyscrapers (hard version)This is a harder version of the problem. In this version n≤500000The outskirts of the capital are being actively built up in Berland. The company “Kernel Panic” manages the...原创 2020-02-24 21:42:41 · 254 阅读 · 0 评论 -
牛客小白月赛21 I题
I love you题目描述此时相望不相闻,愿逐月华流照君。一纸情书,到底蕴含了多少倍的爱情呢?I love you, not only for what you are, but for what I am when I am with you.输入描述:共一行:一封若干个字符的情书(大小写不敏感)。情书不会超过684594个字符(大写、小写字母)。输出描述:共一行:包含一个整...原创 2020-01-19 09:55:32 · 591 阅读 · 0 评论 -
Educational Codeforces Round 80 (Rated for Div. 2) C题
Two ArraysYou are given two integers n and m. Calculate the number of pairs of arrays (a,b) such that:the length of both arrays is equal to m;each element of each array is an integer between 1 and ...原创 2020-01-15 13:11:34 · 289 阅读 · 0 评论 -
接苹果(洛谷 P2690)
题目描述很少有人知道奶牛爱吃苹果。农夫约翰的农场上有两棵苹果树(编号为1和2), 每一棵树上都长满了苹果。奶牛贝茜无法摘下树上的苹果,所以她只能等待苹果 从树上落下。但是,由于苹果掉到地上会摔烂,贝茜必须在半空中接住苹果(没有人爱吃摔烂的苹果)。贝茜吃东西很快,她接到苹果后仅用几秒钟就能吃完。每一分钟,两棵苹果树其中的一棵会掉落一个苹果。贝茜已经过了足够的训练, 只要站在树下就一定能接住这棵树上...原创 2019-12-03 23:24:44 · 420 阅读 · 0 评论 -
线性dp 晚餐队列安排 (洛谷 P2837)
晚餐队列安排题目描述为了避免餐厅过分拥挤,FJ要求奶牛们分2批就餐。每天晚饭前,奶牛们都会在餐厅前排队入内,按FJ的设想,所有第2批就餐的奶牛排在队尾,队伍的前半部分则由设定为第1批就餐的奶牛占据。由于奶牛们不理解FJ的安排,晚饭前的排队成了一个大麻烦。 第i头奶牛有一张标明她用餐批次D_i(1 <= D_i <= 2)的卡片。虽然所有N头奶牛排成了很整齐的队伍,但谁都看得出来,卡...原创 2019-12-02 17:48:22 · 252 阅读 · 0 评论 -
线性dp典中典题目 编辑距离(洛谷 P2758)
编辑距离题目描述设A和B是两个字符串。我们要用最少的字符操作次数,将字符串A转换为字符串B。这里所说的字符操作共有三种:1、删除一个字符;2、插入一个字符;3、将一个字符改为另一个字符;!皆为小写字母!输入格式第一行为字符串A;第二行为字符串B;字符串A和B的长度均小于2000。输出格式只有一个正整数,为最少字符操作次数。线性dp设状态dp[i][j]的含义为字符串a的前...原创 2019-11-13 19:52:06 · 418 阅读 · 0 评论 -
拓扑排序+线性dp求最长路 旅行计划(洛谷 P1137)
旅行计划题目描述小明要去一个国家旅游。这个国家有N个城市,编号为1至N,并且有M条道路连接着,小明准备从其中一个城市出发,并只往东走到城市i停止。所以他就需要选择最先到达的城市,并制定一条路线以城市i为终点,使得线路上除了第一个城市,每个城市都在路线前一个城市东面,并且满足这个前提下还希望游览的城市尽量多。现在,你只知道每一条道路所连接的两个城市的相对位置关系,但并不知道所有城市具体的位置...原创 2019-11-07 20:54:53 · 565 阅读 · 1 评论 -
线性dp典中典题目 最长公共子序列(LCS)
最长公共子序列(LCS)一道模板题解法一:线性动态规划:复杂度为(n^2),写这道模板题,TLE+MLE;思路,我们可以用dp[i][j]来表示第一个串的前i位、第二个串的前j位的LCS的长度,那么我们是很容易想到状态转移方程:(1)如果当前的A1[i]和A2[j]相同(即是有新的公共元素) 那么dp[i][j]=max(dp[i][j],dp[i−1][j−1]+1);(2)如果不...原创 2019-10-30 17:22:07 · 169 阅读 · 0 评论 -
线性dp典中典题目 最长上升子序列(LIS)
最长上升子序列(LIS)首先讲讲什么是子序列:1.子序列的元素不一定相邻;2.子序列一定是原序列的子集;**题目链接**解法一:线性动态规划:复杂度(n^2)我们可以维护一个数组dp[],使得dp[i]为以i元素为结尾的最长上升子序列的长度,那么对于每一个dp[i]而言,初始值都为1;这种写法对于上面那道题来说,TLE;代码:#include<bits/stdc++.h&...原创 2019-10-30 16:00:37 · 135 阅读 · 0 评论 -
线性dp 钓鱼(洛谷P1717)
钓鱼题目描述话说发源于小朋友精心设计的游戏被电脑组的童鞋们藐杀之后非常不爽,为了表示安慰和鼓励,VIP999 决定请他吃一次“年年大丰收”,为了表示诚意,他还决定亲自去钓鱼。但是,因为还要准备 NOIP2013, z老师只给了他 HH 个小时的空余时间,假设有 nn 个鱼塘都在一条水平路边,从左边到右编号为 1, 2, 3 … n 。VIP是个很讲究效率的孩子,他希望用这些时间钓到尽量多的...原创 2019-10-05 17:10:00 · 243 阅读 · 0 评论 -
线性dp典中典题目 最大子段和(洛谷 P1115)
最大子段和题目描述给出一段序列,选出其中连续且非空的一段使得这段和最大。输入格式第一行是一个正整数N,表示了序列的长度。第二行包含N个绝对值不大于10000的整数A_i ,描述了这段序列。输出格式一个整数,为最大的子段和是多少。子段的最小长度为1。输入 #172 -4 3 -1 2 -4 3输出 #14一道非常基础的dp,式子是dp[i]=max(a[i],dp[...原创 2019-09-29 14:50:18 · 417 阅读 · 0 评论 -
线性dp 美元汇率 (洛谷 P1968)
美元汇率题目描述在以后的若干天里戴维将学习美元与德国马克的汇率。编写程序帮助戴维何时应买或卖马克或美元,使他从100美元开始,最后能获得最高可能的价值。输入格式输入文件的第一行是一个自然数N,1≤N≤100,表示戴维学习汇率的天数。接下来的N行中每行是一个自然数A,1≤A≤1000。第i+1行的A表示预先知道的第i+1天的平均汇率,在这一天中,戴维既能用100美元买A马克也能用A马克购买...原创 2019-09-26 21:46:27 · 378 阅读 · 0 评论