dp
Cry_Kill
坚持自己的梦想
展开
-
HDU 3339 In Action(最短路+01背包)
In ActionTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5578 Accepted Submission(s): 1866Problem Description Since 1945, when the fir原创 2017-06-03 09:04:28 · 266 阅读 · 0 评论 -
HDU 6197 array array array(最长上升或下降子序列)
题目地址 题意:给你一个长度为n的序列,你可以删除m个元素,使得这个序列变成一个单调上升或下降序列。 思路:就是求最长上升或下降子序列长度是不是大于n-k。 推荐一个理解nlogn时间复杂度的最长上升子序列的模板传送门。原创 2017-09-11 01:14:30 · 927 阅读 · 3 评论 -
51NOD 最长递增子序列(模板)
1134 最长递增子序列给出长度为N的数组,找出这个数组的最长递增子序列。(递增子序列是指,子序列的元素是递增的)例如:5 1 6 8 2 4 5 10,最长递增子序列是1 2 4 5 10。 Input第1行:1个数N,N为序列的长度(2 <= N <= 50000)第2 - N + 1行:每行1个数,对应序列的元素(-10^9 Output输出最长递增子序列的长度。原创 2017-06-03 09:04:06 · 443 阅读 · 0 评论 -
Codeforces 846 A Curriculum Vitae(dp)
题目地址 题意:给你一个01串,让你删除最少的字符,使得这个字符串变成先0后1的字符串,求最后字符串的长度 思路:一个典型的dp问题。有两种情况,这个理清楚就好了:1、当当前字符为0时,有两种选择,一种是继承前面全是0的,这个时候就需要加一,第二种是删除这个字符,这个时候就是取前面全为0的情况和已经改为1的情况的最大值。2当当前字符为1时,有两种选择,一种是继承前面全为0的情况和已经改为1的原创 2017-09-06 13:15:14 · 560 阅读 · 4 评论 -
HDU 6170 Two strings
题目地址 题意:告诉你两个字符串,第二串有两种特殊字符(第一种是’.‘可以代表任意字符,第二种是’*‘可以复制任意次前一个字符,或者为空字符,或者删除前一个字符),求两个字符串能不能匹配。 思路:通过dp的想法,dp[i][j]代表的是第一个字符串的到第i个字符,与第二个字符串到第j个字符能不能匹配,能匹配就赋那个字符。着重讲一下为什么第一个字符串是从0开始但是第二个字符串是从1 开始的,因为原创 2017-08-22 20:57:41 · 354 阅读 · 0 评论 -
Codeforces 837 D Round Subset
题目地址 题意:给你个序列,选择k个数,求乘积的后缀零最多 思路:因为0是由2和5的乘积组成的,然后经别人提醒可以用dp去写,其实就可以转变为01背包的问题(注释比较详细) PS:为什么用5来做0的标准,因为2比较容易找到(我是这样觉得的)原创 2017-08-04 13:13:40 · 535 阅读 · 0 评论 -
HDU 3016 Man Down(线段树+离散化+dp)
题目地址 题意:好像是是男人就下100层的游戏,告诉你n个木板,左右边界的位置以及高度和踏上这块木板的得分,当你的得分低于0就死了,求最后的得分最大为多少。 思路:通过线段树来维护出来该线段跳下去后,左右能到达的木板编号,然后根据木板的先后到达的情况做dp就好了(坐标太大需要离散化)原创 2017-08-01 23:14:06 · 368 阅读 · 0 评论 -
Codeforces 835 D Palindromic characteristics(区间DP)
题目地址 题意:给你一个字符串,在其中找到1~k阶回文子串的个数,如果一个字符串是回文的,则他一定是1阶回文子串(k阶回文子串要求它的的左边和右边都是k-1阶回文子串) 思路:dp[i][j]记录下标为i~j的子串是几阶回文子串,然后去求就好了(看代码注释)原创 2017-08-01 18:52:46 · 340 阅读 · 0 评论 -
JXNU暑期选拔赛题解
JXNU暑期选拔赛题解原创 2017-07-29 17:00:31 · 523 阅读 · 0 评论 -
Codeforces 743 D Chloe and pleasant prizes
题目地址:http://codeforces.com/contest/743/problem/D 题意:告诉你一个树每个节点的价值,让你求出不相交的两个子树的价值和最大。 思路:树形dp入门。用vector存树的信息,每次遍历的时候不走回头路,dp数组去存这个节点下最大的子树价值和。原创 2017-07-11 16:26:13 · 303 阅读 · 0 评论 -
Codeforces 855 B Marvolo Gaunt's Ring(dp)
题目地址 题意:给你4个数n,p,q,r,然后告诉你n个数a[],让你求出满足最大的 p·ai + q·aj + r·ak 的i,j,k,并且i<=j<=k(重点) 思路:我们可以发现j在中间,我们只要维护一个前缀最大值和前缀最小值以及后缀最大值和后缀最小值,这样的话我们枚举这个j就好了,然后判断是正还是负,选取要最大值还是最小值,最后求出这个的最大值就好了。原创 2017-10-25 07:46:08 · 398 阅读 · 0 评论