随笔分类 -  正常dp

摘要:题目大意: 一个矩阵,求两条不相交的路径使两条路径上所有点权值和最大,两条路径起点都为左上,终点为右下 思路: 三维dp 表示两条路分别走到那两个点了,其中可以枚举路径长度,两个横坐标优化为3维 然后每个dp都可以从每个点的左边或上边转移过来 zz题 没有1a真是耻辱,原因是枚举横坐标的时候只考虑了 阅读全文
posted @ 2017-10-06 20:27 jack_yyc 阅读(164) 评论(0) 推荐(0)
摘要:题目大意: 两个字符串 每次可以从任意一个字符串的开始选一个加入新的字符串 定义一个字符串的价值为其各字符跨度之和,定义一个字符串内某字符跨度为该字符最后一次出现的下标与第一次出现的下标之差 求新字符串的最小价值 思路: dp dp数组表示第一个字符串选走了前i个,第二个选走了前j个的最小价值 每个 阅读全文
posted @ 2017-10-06 15:40 jack_yyc 阅读(134) 评论(0) 推荐(0)
摘要:题目大意: 有一个线性城市,城市里有火车再走,给出两个城市之间火车需要走的时间以及每个火车从左端点或右端点出发的时间 已知一个人想要在T时刻到达n城市,求他在过程中所有在车站等待时间的最小值 思路: dp(i,j)表示j时刻在i车站的最小等待值 先预处理出所有时刻某车站是否有车 然后直接dp 1 # 阅读全文
posted @ 2017-10-05 13:05 jack_yyc 阅读(382) 评论(0) 推荐(0)
摘要:题目大意: 一个n*m的矩阵,每个点上有两种物质 两种物质分别只能向左或向上运输直到左边界或上边界 一个点只能开采一种物质 并且若该物质只能向左运,则其正左边所有物质都只能选向左的物质;若该物质只能向上运,则其正上方所有物质都只能选向上的物质 思路: n m <=500 dp 先打一个横着和竖着的前 阅读全文
posted @ 2017-10-02 11:29 jack_yyc 阅读(135) 评论(0) 推荐(0)
摘要:题目大意: 一个无向图起点和终点,和一个天数 给出一些信息,表示第c个码头在【a,b】天内不可用。保证任意一天有一条起点到终点的路径 每天的花费为选择的路径长度 而每次更改路径都会增加额外的花费为一个给定常数 求最后这些天的总花费最小值 思路: 首先可以想到对于每天当前情况下的最短路,我写了好写的s 阅读全文
posted @ 2017-09-30 18:31 jack_yyc 阅读(171) 评论(0) 推荐(0)
摘要:题目大意: 一个数列an,求max(ap+...+aq + ai+...+aj)(p<=q<i<=j) 思路: dp 设两个dp数组,分别表示1-i的最大子段和,i-n的最大子段和,最后枚举i可得答案 在求这两个dp数组时,先让它们表示已i为结尾的左右侧最大子段和 然后dp[i]=max(dp[i- 阅读全文
posted @ 2017-07-23 12:48 jack_yyc 阅读(85) 评论(0) 推荐(0)
摘要:题目大意: 一个序列,从这个数列里取任意个数,添加到新的数列里。 对于这个新序列,ans-奇数位的值,+偶数位的值 求最后ans最大值 思路: dp 求对于原数列中的每个数,是奇数不取、奇数取、偶数取、偶数不取的情况分别计算 最后对于最后一个数对四种情况取一下max #include<iostrea 阅读全文
posted @ 2017-07-22 17:17 jack_yyc 阅读(104) 评论(0) 推荐(0)
摘要:题目大意: 一些树枝,每个树枝有长度和重量,如果下一次加工的树枝长度和重量都不小于当前树枝,那么下一次加工不消耗,反之,下一次加工消耗为1 求如何排序才能使加工完这些树枝的消耗最小,求最小消耗 思路: dp+排序 按照长度从小到大排序,然后看在该序列下,重量有多少个不下降子序列,不下降子序列的个数就 阅读全文
posted @ 2017-07-22 16:53 jack_yyc 阅读(103) 评论(0) 推荐(0)