随笔分类 -  动态规划~线性DP

 
Codeforces Round #587 (Div. 3) F. Wi-Fi(单调队列优化DP)
摘要:题目:https://codeforces.com/contest/1216/problem/F 题意:一排有n个位置,我要让所有点都能联网,我有两种方式联网,第一种,我直接让当前点联网,花费为i,第二种,如果当前点的值为1,代表当前点可以放置一个路由器,范围 [i-k,i+k]都能连上网,花费为i 阅读全文
posted @ 2019-09-26 21:34 Lis~ 阅读(360) 评论(0) 推荐(0)
CodeForces - 474D (dp)
摘要:题目:https://vjudge.net/contest/326867#problem/B 题意:有很多个蛋糕,现在你有两种吃蛋糕的吃法,一次吃一个,定为A,一次吃k个定为B,然后问你吃m个蛋糕有多少种方法,每次询问一个区间的和 思路:这个很容易看出来是一个DP,我们可以dp[i]=dp[i-1] 阅读全文
posted @ 2019-09-18 18:18 Lis~ 阅读(148) 评论(0) 推荐(0)
CodeForces - 1183H Subsequences (hard version) (DP)
摘要:题目:https://vjudge.net/contest/325352#problem/C 题意:输入n,m,给你一个长度为n的串,然后你有一个集合,集合里面都是你的子序列,集合里面不能重复,集合中元素的花费是 n-当前元素长度 ,也就是删除了几个字符,然后要你求前m个最小花费是多少 思路:我们考 阅读全文
posted @ 2019-09-11 16:43 Lis~ 阅读(201) 评论(0) 推荐(0)
CodeForces - 1051D (线性DP)
摘要:题目:https://codeforces.com/problemset/problem/1051/D 题意:一个2行n列的矩形,上面有黑白块,然后问你怎么布置才能有k个连通块,问有多少种方案数 思路:其实就是一个矩阵,我们一次放一列 四种状态 黑 | 白 | 白 | 黑 白 | 黑 | 白 | 黑 阅读全文
posted @ 2019-08-24 19:12 Lis~ 阅读(213) 评论(0) 推荐(0)
CodeForces - 1038D (线性DP)
摘要:题目:https://codeforces.com/problemset/problem/1038/D 题意:给你n个数字,每个数字可以吃左右两边的数,然后吃完后自己变成 a[i]-a[i+1]或者a[i]-a[i-1],然后问你最后只剩一个数的时候最大可能的值是多少 思路:我们首先想是由哪一个数会 阅读全文
posted @ 2019-08-22 19:16 Lis~ 阅读(297) 评论(0) 推荐(0)
AcWing 314. 低买 (线性DP)打卡
摘要:题目:https://www.acwing.com/problem/content/316/ 题意:求一个最长单调递减子序列,然后并且求方案数,如果序列完全一样就不要了 思路:我们肯定时修改LIS,我们在求得当前结尾得最长长度后,我们遍历前面是否有和当前数相等得数,如果有就把他的长度清零,避免重复方 阅读全文
posted @ 2019-08-21 22:58 Lis~ 阅读(173) 评论(0) 推荐(0)
AcWing 313. 花店橱窗 (线性DP)打卡
摘要:题目:https://www.acwing.com/problem/content/315/ 题意:有一个矩阵,你需要在每一行选择一个数,必须保证前一行的数的下标选择在下一行的左边,即下标有单调性,然后求最大值,并且输出选择的路径 思路:线性DP,两维状态 dp[n][m] ,前n个位置选择m个数的 阅读全文
posted @ 2019-08-21 15:27 Lis~ 阅读(241) 评论(0) 推荐(0)
AcWing 312. 乌龟棋 (简单DP)打卡
摘要:题目:https://www.acwing.com/problem/content/description/314/ 题意:有一段路,每个格子都有个价值,然后有m张卡牌,四种类型,走1,2,3,4步,然后输入保证正好把所有卡牌用完到达终点,求最大价值 思路:保证全部用完,只是顺序不一样得到的价值不一 阅读全文
posted @ 2019-08-21 11:24 Lis~ 阅读(219) 评论(0) 推荐(0)
牛客假日团队赛9 A 乘积最大 (简单DP)
摘要:题目:https://ac.nowcoder.com/acm/contest/1071/A 题意:给你一个串,然后给你m个乘号,用m个乘号分割开这个串,然后求分割可以求出的最大值 思路:首先范围很小 第一种:我把所有乘号分隔最多只有 C(40,6) 种方案,很少,我们直接dfs就可以算出来 第二种: 阅读全文
posted @ 2019-08-20 16:51 Lis~ 阅读(154) 评论(0) 推荐(0)
2019 牛客暑期多校 G subsequence 1 (dp+组合数)
摘要:题目:https://ac.nowcoder.com/acm/contest/885/G 题意:给你两个串,要求上面哪个串的子序列的值大于下面这个串的值的序列个数,不含前导零 思路:我们很容易就可以看出选择上面的那个的字符串的子序列时如果长度超过下面这个一定可以选用,同理长度短于的肯定不能用,长度大 阅读全文
posted @ 2019-08-01 20:43 Lis~ 阅读(331) 评论(0) 推荐(0)
Codeforces Round #245 (Div. 1) B. Working out (dp)
摘要:题目:http://codeforces.com/problemset/problem/429/B 第一个人初始位置在(1,1),他必须走到(n,m)只能往下或者往右 第二个人初始位置在(n,1),他必须走到(1,m)只能往上或者往右 每个点都有个权值,要求两个人中间相遇一次且只有一次,相遇的那个点 阅读全文
posted @ 2019-04-29 16:08 Lis~ 阅读(129) 评论(0) 推荐(0)
Educational Codeforces Round 63 (Rated for Div. 2) D. Beautiful Array (简单DP)
摘要:题目:https://codeforces.com/contest/1155/problem/D 题意:给你n,x,一个n个数的序列,你可以选择一段区间,区间的数都乘以x,然后求出最大字段和 思路: x正数的时候我们就是求出最大字段和然后乘以x即可 x为负数时,我们可以把一段负数乘以x,然后再与之前 阅读全文
posted @ 2019-04-23 12:45 Lis~ 阅读(402) 评论(0) 推荐(2)
Codeforces Round #369 (Div. 2) C. Coloring Trees(简单dp)
摘要:题目:https://codeforces.com/problemset/problem/711/C 题意:给你n,m,k,代表n个数的序列,有m种颜色可以涂,0代表未涂颜色,其他代表已经涂好了,连着一段是相同颜色的是一个连通块,求正好有k个连通块的最小花费 思路:首先每个位置有可能有m中颜色,而且 阅读全文
posted @ 2019-04-22 20:56 Lis~ 阅读(218) 评论(0) 推荐(0)
Codeforces Round #479 (Div. 3) F. Consecutive Subsequence (简单dp)
摘要:题目:https://codeforces.com/problemset/problem/977/F 题意:一个序列,求最长单调递增子序列,但是有一个要求是中间差值都是1 思路:dp,O(n)复杂度,我们想一下O(n^2)时的最长递增子序列,我们第二个循环要遍历前面所有的如果大于长度就加1,代表以这 阅读全文
posted @ 2019-04-22 18:41 Lis~ 阅读(191) 评论(0) 推荐(0)
Codeforces Round #162 (Div. 1) B. Good Sequences (dp+分解素数)
摘要:题目:http://codeforces.com/problemset/problem/264/B 题意:给你一个递增序列,然后找出满足两点要求的最长子序列 第一点是a[i]>a[i-1] 第二点 gcd(a[i],a[i-1])>1 也就是说两个数不能互质 找出最长的子序列长度 思路:首先想互质问 阅读全文
posted @ 2019-04-17 23:52 Lis~ 阅读(208) 评论(0) 推荐(0)
Codeforces Round #552 (Div. 3) F. Shovels Shop (前缀和预处理+贪心+dp)
摘要:题目:http://codeforces.com/contest/1154/problem/F 题意:给你n个商品,然后还有m个特价活动,你买满x件就把你当前的x件中最便宜的y件价格免费,问你买k件花最少的钱是多少 思路:首先这个特价活动就像点外卖一样满多少减多少,你可以分几次来使用同一个优惠或者不 阅读全文
posted @ 2019-04-17 17:00 Lis~ 阅读(246) 评论(0) 推荐(0)
数组分组
摘要:题目大意:给你一组数,让你分成多组,组内权值为为所有值相乘膜以1000,求怎么分才能权值和最大 思路:dp题 首先我们看范围我们可以知道是可以用n^2复杂度的,所以肯定会用到二维记录 首先dp[i]就代表1位置到当前位置的最大是多少,然后怎么用前面推出后面呢,你每次加入一个数,新加的这个数肯定是进了 阅读全文
posted @ 2019-03-07 16:53 Lis~ 阅读(586) 评论(0) 推荐(0)
ACM-ICPC 2018 焦作赛区网络预赛 B. Mathematical Curse << DP
摘要:A prince of the Science Continent was imprisoned in a castle because of his contempt for mathematics when he was young, and was entangled in some math 阅读全文
posted @ 2018-09-16 11:51 Lis~ 阅读(267) 评论(0) 推荐(0)
牛客oi测试赛 二 B 路径数量
摘要:题目描述 给出一个 n * n 的邻接矩阵A. A是一个01矩阵 . A[i][j]=1表示i号点和j号点之间有长度为1的边直接相连. 求出从 1 号点 到 n 号点长度为k的路径的数目. 输入描述: 第1行两个数n,k (20 ≤n ≤ 30,1 ≤ k ≤ 10)第2行至第n+1行,为一个邻接矩 阅读全文
posted @ 2018-09-08 16:07 Lis~ 阅读(182) 评论(0) 推荐(0)