随笔分类 -  ACM-动态规划-线性dp

摘要:题意: 把一个数组分成若干组,保证每组的size >= k并且一组中任意两个数字的差的绝对值 <= d,问存不存在这样的分法。 思路: 线性dp。 用dp[i]表示前i个数是否有分法。 设j为满足a[i] - a[j] <= d的最小的a[j]的下标,那么dp[i]就可以从dp[j-1] ~ dp[ 阅读全文
posted @ 2018-05-22 10:45 qrfkickit 阅读(338) 评论(0) 推荐(0)
摘要:题意: 求一个数组的所有连续子串中不同的数字的和。 思路: 考虑每一个数字对于最终结果的贡献。 假设dp[i]表示以a[i]结尾的串的和,那么有dp[i] = dp[i-1] + a[i] * k。 这里的k,如果当前的a[i]没有在前面出现过,那么对结果的贡献肯定是k = i次,因为以它结尾的字串 阅读全文
posted @ 2018-05-06 22:29 qrfkickit 阅读(167) 评论(0) 推荐(0)
摘要:题意: 有n个仓库,m个人,一个仓库只能由一个人托管,每个人可以托管多个仓库。 每个人有一个能力值a,如果说他托管了k个仓库,那么这些仓库的安全值都是a/k。 雇佣一个人的花费也是a。 如果一个仓库没有被人托管,那么这个仓库的安全值为0。 总安全值定义为所有仓库安全值的最小值。 现在给出人和仓库的信 阅读全文
posted @ 2018-05-05 01:12 qrfkickit 阅读(168) 评论(0) 推荐(0)
摘要:题意: 有n个数,m个排序器,每个排序器可以把区间ai到bi的数从小到大排序。这m个排序器的输出就是m个排序之后的第n个数。 现在发现有些排序器是多余的。问至少需要多少个排序器可以使得输出不变。排序器的顺序不可以改变。 思路: 这题并没有说这些排序器可以覆盖1到n的所有区间。。。 假设可以,那么就是 阅读全文
posted @ 2018-05-04 22:21 qrfkickit 阅读(331) 评论(0) 推荐(0)
摘要:题意: 有一个单行道,两个方向都有车在等待。给出每个车的方向以及到达的时间以及走完这段路所需要的时间。 为了防止车祸,同向两车通过任一点的时间间隔不得小于10s。 求最后一辆车离开时刻的最小值。 思路: 这题最坑的就是,车可以降低速度。provided it is not slowed down b 阅读全文
posted @ 2018-05-02 21:34 qrfkickit 阅读(437) 评论(0) 推荐(0)
摘要:题意: 给出一个字符串,求这个字符串可以被划分为最少的回文串的个数。 思路: 首先可以N^2预处理出i到j是不是一个回文串。 之后就是状态转移方程: dp[i] = min(dp[j-1] + 1,dp[i]),如果s[j..i]是回文串。 代码: 阅读全文
posted @ 2018-04-16 23:58 qrfkickit 阅读(170) 评论(0) 推荐(0)
摘要:题意: 给出一个数列,要求找出一个子序列,长度为2 * n + 1。 要求这个子序列的前n + 1个数为严格递增的,后n + 1个数为严格递减的。 求最长的这样一个子序列。 思路: 首先求出以每一个数结尾的最长上升子序列(从左到右)的长度inc和以每一个数结尾的最长上升子序列(从右到左)的长度dnc 阅读全文
posted @ 2018-04-16 23:54 qrfkickit 阅读(163) 评论(0) 推荐(0)
摘要:题意: 中文题意,略。。。 思路: 第一问,求最长公子序列,模板题。。。 第二问,求最长公共子序列的个数,这个就比较有意思了。 设len[i][j]表示表示第一个串到i位置,第二个串到j位置时的长度。 设lcs[i][j]表示第一个串到i位置,第二个串到j位置时,lcs的个数。 当a[i] == b 阅读全文
posted @ 2018-04-12 16:43 qrfkickit 阅读(336) 评论(0) 推荐(1)
摘要:https://beta.atcoder.jp/contests/abc075/tasks/abc075_d 题意: 给出坐标平面上n个点的坐标,要求找到一个面积最小的矩形使得这个矩形的边界加上内部的点的数量大于等于k。 思路: 由于坐标过大,所以离散化。 离散化之后用前缀和,但是Orz求前缀和的时 阅读全文
posted @ 2017-10-14 23:37 qrfkickit 阅读(336) 评论(0) 推荐(0)
摘要:https://vjudge.net/problem/UVA-10755 题意: 给出一个长方体,叫你求哪个子矩阵的和最大,输出的是最大值。 思路: 首先,n的规模是20,那么最常规的算法,枚举起点,枚举终点,之后循环计算,那么这个的复杂度就是O(N^9)。 这个想法其实是比较自然的,那么可以加一些 阅读全文
posted @ 2017-10-11 15:26 qrfkickit 阅读(206) 评论(0) 推荐(0)