随笔分类 -  dp

上一页 1 ··· 4 5 6 7 8 9 下一页
摘要:思路:随便dp一下 阅读全文
posted @ 2018-09-09 00:39 NotNight 阅读(139) 评论(0) 推荐(0)
摘要:很裸的数位dp。 阅读全文
posted @ 2018-09-04 23:36 NotNight 阅读(122) 评论(0) 推荐(0)
摘要:D - Conveyor Belts 思路:分块dp, 对于修改将对应的块再dp一次。 阅读全文
posted @ 2018-08-30 22:02 NotNight 阅读(111) 评论(0) 推荐(0)
摘要:B - Strip 思路:简单dp,用st表+单调队列维护一下。 阅读全文
posted @ 2018-08-29 13:52 NotNight 阅读(233) 评论(0) 推荐(0)
摘要:一般这种要倒着来。 阅读全文
posted @ 2018-08-23 15:12 NotNight 阅读(192) 评论(0) 推荐(0)
摘要:思路:先把没有用的土地去掉,然后按照x轴排序,容易得到dp转移方程 dp[ i ] = min{ dp[ j ] + b[ j + 1 ] * a[ i ] } 0 <= j < i 典型的斜率优化。 阅读全文
posted @ 2018-08-16 09:02 NotNight 阅读(199) 评论(0) 推荐(0)
摘要:B - Levko and Array 题目大意:给你你个长度为n的数列a,你最多改变k个值,max{ abs ( a[ i + 1] - a[ i ] ) } 的最小值为多少。 思路:这个题很难想到如何取check。。 二分最小值,然后用dp进行check,dp[ i ]表示前 i 项中第 i 个 阅读全文
posted @ 2018-08-13 09:58 NotNight 阅读(190) 评论(0) 推荐(0)
摘要:B - discount 题目大意:有n种饮料,每种饮料的价格为p[ i ]。 购买第 i 种饮料的时候,你可以在一下两种优惠中选择一种: 1:该饮料优惠d[ i ]元 2:免费送一瓶第f[ i ]种饮料 问最少花费多少钱使得每种饮料至少都有一瓶。 思路:最后组成一个基环内向图,先考虑树上的情况,我 阅读全文
posted @ 2018-07-24 20:04 NotNight 阅读(258) 评论(0) 推荐(1)
摘要:#include #define LL long long #define fi first #define se second #define mk make_pair #define pii pair #define y1 skldjfskldjg #define y2 skldfjsklejg using namespace std; const int N = 1e6 + 7; co... 阅读全文
posted @ 2018-07-24 16:26 NotNight 阅读(185) 评论(0) 推荐(0)
摘要:B - Symmetric Matrix 思路:将矩阵转换成图的形式,然后推公式。 #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk make_pair #define 阅读全文
posted @ 2018-07-20 10:26 NotNight 阅读(322) 评论(0) 推荐(0)
摘要:题目大意:给你一个长度为 n 的 字符串表示一个乘法,一次操作随机选两个字符进行交换,进行m次操作,让你求出所有可能操作 的答案和。 (1 <= n, m <= 50) 思路:巨难。。 对于固定位置的三个字符来说,把中间的看成*, 两边的为a,b, 这个产生的贡献为,a * b * C,C只与a, 阅读全文
posted @ 2018-07-19 09:45 NotNight 阅读(170) 评论(0) 推荐(0)
摘要:题目大意:有n个灯泡,m个按钮,(1 <= n, m <= 50),每个按钮和ki 个灯泡相关, 按下后,转换这些灯泡的状态,问你所有2^m的按下按钮的 组合中亮着的灯泡的数量的三次方的和。 思路:要是将所有灯泡混在一起算很难算,我们先考虑 所有2^m的按下按钮的 组合中亮着的灯泡的数量的和, 我们 阅读全文
posted @ 2018-07-14 10:43 NotNight 阅读(208) 评论(0) 推荐(0)
摘要:思路:这个题看着感觉不能dp,其实是可以dp的,因为狼每次走两步,兔子每次走一步,每进行一轮以后,狼和兔子的距离 肯定是在接近的,没有相同的状态,dp之前预处理出来,每一步狼该往哪里走。 阅读全文
posted @ 2018-07-10 10:19 NotNight 阅读(136) 评论(0) 推荐(0)
摘要:D - Travel Card 思路:dp,类似于单调队列优化。 其实可以写的更简单。。。 阅读全文
posted @ 2018-06-24 17:38 NotNight 阅读(98) 评论(0) 推荐(0)
摘要:F - Cards and Joy 思路:比较容易想到dp,直接dp感觉有点难,我们发现对于每一种数字要处理的情况都相同就是有 i 张牌 要给 j 个人分, 那么我们定义dp[ i ][ j ]表示 i 张牌给 j 个人分最大的价值可以得到dp方程如下: dp[ i ][ j ] = max(dp[ 阅读全文
posted @ 2018-06-22 14:12 NotNight 阅读(187) 评论(0) 推荐(0)
摘要:他们oj挂掉啦, 我先保存一下代码。。。 直接dp复杂度, n * 100 * 100, 我们可以将前一个人的信息丢进单调队列中去,可以优化成n * 100; 阅读全文
posted @ 2018-06-12 16:57 NotNight 阅读(153) 评论(0) 推荐(0)
摘要:先要了解一个结论,在多种可行的堆叠方案中,至少有一种能使层数最高的方案同时使得底边最短。即底边最短的,层数一定最高。 dp[ i ] = min(sum[j - 1] - sum[i - 1]) j > i 且 sum[j - 1] - sum[i - 1] >= dp[j]可以用单调队列优化。 阅读全文
posted @ 2018-06-12 10:49 NotNight 阅读(140) 评论(0) 推荐(0)
摘要:E - Thief in a Shop 题目大意:给你n ( n <= 1000)个物品每个物品的价值为ai (ai <= 1000),你只能恰好取k个物品,问你能组成哪些价值。 思路:我们很容易能够想到dp[ i ][ j ]表示取i次j是否存在,但是复杂度1e12肯定不行。 我们将ai排序,每个 阅读全文
posted @ 2018-06-07 19:46 NotNight 阅读(163) 评论(0) 推荐(0)
摘要:题目大意:给你一个0,1串, 你可以反转一段连续的区间,问你最长的合法子串是多长, 合法字串相邻的两个不能相同。 思路:dp[ i ][ k ][ j ] 表示到第 i 个字符, 处于k这种状态, k = 0 表示 没有开始反转 k = 1 表示在反转的过程中, k = 2 表示反转结束, 最后一个 阅读全文
posted @ 2018-06-04 21:32 NotNight 阅读(126) 评论(0) 推荐(0)
摘要:想了一个小时。。 思路:dp[ i ] 表示第一台机器用了 i 分钟 第二台机器所用的最少分钟数,然后转移一下就好啦。 阅读全文
posted @ 2018-06-03 19:50 NotNight 阅读(105) 评论(0) 推荐(0)

上一页 1 ··· 4 5 6 7 8 9 下一页