======动态规划======
文章平均质量分 78
一念执着_
做一个让自己羡慕的人
展开
-
求最长等差数列(动态规划)
给你n个数,求出其最长的等差数列的子序列。首先问题并没有要求要按照原来数组的顺序,所以可以先对该数组排序1. 如果不要求该最长子序列中的元素是相邻的话,可以用一个简单的DP来完成。算法的复杂度是O( n^ 2)。模板const int MAX=1010;int dp[MAX][MAX];//dp[i][j]以i为结尾的某子序列(该子序列的公差为j)的最大长度原创 2016-05-15 14:43:34 · 2160 阅读 · 0 评论 -
数位DP练习
数位DP模板http://blog.csdn.net/gengman/article/details/78315360HDU2089 不要62题意:求区间中不含62且不含4的数的个数 #include#include#include using namespace std;int dp[20][10]; int a[20];//sta 记录上一位数是否是6原创 2017-10-24 10:59:21 · 300 阅读 · 0 评论 -
HDU3466 Proud Merchants (01背包变形)
题意:n件物品,总钱数为m,每件物品都有p(买这件物品的花费),q(当钱数大于q时才可以买这件物品),v(买这件物品获得的价值),求能获得的最大价值 比赛时看到题想到是DP,也想到01背包,但一直没有想出来,赛后看过的代码是将q-p从小到大排序再01背包,看了题解才理解排序的原因。 下面是排序原因:http://www.2cto.com/kf/201301/1原创 2017-03-27 21:52:59 · 715 阅读 · 0 评论 -
【区间DP】NYOJ 737石子合并+POJ 2955 Brackets(括号匹配)+NYOJ 15 括号匹配(二)
区间dp,顾名思义,就是在区间上dp,即把整个区间划分为一个个的小区间,在小区间内dp求出最优值,然后把这些小区间合并以后就是整个取件的最优值。下面是一些比较经典的区间dp题目:1.NYOJ 737 石子合并:http://acm.nyist.net/JudgeOnline/problem.php?pid=737题意:有n堆石子,每堆有a[i]个,每次合并时只能原创 2017-04-09 19:16:49 · 505 阅读 · 0 评论 -
浙大校赛 ZOJ 3956Course Selection System (01背包)
题意:给定n件物品,每件物品有2个值H和C,求选取一些物品使的值最大思路:C的范围比较小,求C的总和sum,然后作为背包容量,求出和为1~sum时H的和的最大值,最后求下要求式子的最大值。 比赛时一直想着贪心,按H-C从大到小拍下序,一直wacode:#include#include#include#includeusing namespace std;con原创 2017-04-16 08:39:03 · 547 阅读 · 0 评论 -
POJ 2559 Largest Rectangle in a Histogram + POJ 2082Terrible Sets(DP/单调栈)
2559 题意:给n个宽为1的连续矩形的高,求连续最大矩形面积 和前几天哈尔滨理工大学的比赛的B题一样,去年省赛集训做过的题,比赛时看到一直想不起来怎么做,最后就从中间往两边找了下高度小于这个矩形高度的两个位置,复杂度O(n^2),竟然过了,可能数据比较水,在POJ2559 / HDU 1506 交就是超时了,没想到怎么做,看了学长的博客(http://blog.原创 2017-04-06 13:04:12 · 561 阅读 · 0 评论 -
【第四场省赛组队赛训练补题】ZOJ - 2319 Beautiful People (最长单调递增子序列 O(nlogn) )
题意: 每个人有S,B两个值,如果第i和第j个人满足 Si j && Bi >= Bj 或者 Si >= Sj && Bi j 则这两个人互相讨厌。即Si j && Bi Bj时两人不存在互相讨厌的关系,求可以不互相讨厌的人的最大个数,并输出他们的编号。 比赛时想到是最长单调递增子序列的二分写法,当时就想着按S排下序,在找满足Si < S原创 2017-04-18 19:18:12 · 467 阅读 · 0 评论 -
【DP】动态规划分类以及相关题目
源博客地址:http://blog.csdn.net/cc_again/article/details/25866971分类很清楚由易到难动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少,多元性强,主要考察思维能力、建模抽象能力、灵活度。**************************************************转载 2016-11-12 09:54:16 · 873 阅读 · 0 评论 -
【动态规划】 nyoj269 VF
题目链接:VF 起初看到题的时候看半天没理解什么意思,后来才理解题意是,给你一个S (1~81)让求出1~10^9之间所有数中各位数字之和等于S的数的个数,知道题意也知道是动态规划,可是自己还是没推出状态转移方程式,也是看了博客才恍然大悟,1、当s=1时,10^9的系数才能为1,否则就大于10^9。所以和为1的要单一特判下。2、如果s!=1:定义状态dp[原创 2016-11-01 21:43:07 · 599 阅读 · 0 评论 -
【动态规划】poj2479 Maximum sum && poj2593 Max Sequence(求两段不相交字串的最大和)
两道题都是求两段不相交的子串最大和2479:DescriptionGiven a set of n integers: A={a1, a2,..., an}, we define a function d(A) as below:Your task is to calculate d(A).InputThe input consists of T(Eac原创 2016-11-02 21:31:57 · 729 阅读 · 0 评论 -
数位dp总结 之 从入门到模板
原地址:http://blog.csdn.net/wust_zzwh/article/details/52100392基础篇数位dp是一种计数用的dp,一般就是要统计一个区间[le,ri]内满足一些条件数的个数。所谓数位dp,字面意思就是在数位上进行dp咯。数位还算是比较好听的名字,数位的含义:一个数有个位、十位、百位、千位......数的每一位就是数位啦!转载 2017-10-23 09:15:05 · 340 阅读 · 0 评论