随笔分类 -  dp

上一页 1 ··· 5 6 7 8 9
摘要:思路:dp[ i ] 表示 排序后前 i 个元素匹配的最小值, 我们可以发现每个点和它匹配的点的距离不会超过2,这样就能转移啦。 阅读全文
posted @ 2018-06-03 00:44 NotNight 阅读(100) 评论(0) 推荐(0)
摘要:题目大意:给你一个树的直径k,要求每个点的度数不超过3, 问你有多少棵树满足条件。 思路:好难啊。 主要思想就是将一棵无根二叉树树划分成有根二叉树。 我们对k的分奇偶讨论: 我们定义dp[ i ] 为深度为 i 的有根二叉树的种数, sum 为 dp 的前缀和。 1.当k为偶数时,我们按直径的一般划 阅读全文
posted @ 2018-06-02 21:16 NotNight 阅读(129) 评论(0) 推荐(0)
摘要:sb dp 没啥好说的。。 阅读全文
posted @ 2018-05-31 23:56 NotNight 阅读(131) 评论(0) 推荐(0)
摘要:思路:好难想啊, 考虑到应该从每个数字只有5个数字下手, 但是不知道到底该怎么写。。 首先我们将第一个串按数字的种类分类, 每一类里面有5个, 然后将第二个串里面的数字一个一个加,如果一个加入的第 i 个数为5, 那么也只会对第一个串中的 5 产生影响, 如果第一个串中5的位置为pos, 那么显然d 阅读全文
posted @ 2018-05-31 21:26 NotNight 阅读(118) 评论(0) 推荐(0)
摘要:思路:按个数分类dp 阅读全文
posted @ 2018-05-29 16:47 NotNight 阅读(118) 评论(0) 推荐(0)
摘要:思路:字典树+dp, dp[ i ] 表示 前缀到 i 能不能被理解, 如果dp[ i ] 是能被理解的那么, 把i + 1, i + 2 .... 在字典树上走,走到一个单词就转移。 ,这样可行的原因是因为模板串长度不超过10,所以字典树的深度不会超过10, 所以进行一次dp的复杂度为 10 * 阅读全文
posted @ 2018-05-25 17:12 NotNight 阅读(108) 评论(0) 推荐(0)
摘要:思路:两次dp, 第一次行内, 第二次行间, 刚开始读错题。。要死了。 阅读全文
posted @ 2018-05-20 19:57 NotNight 阅读(98) 评论(0) 推荐(0)
摘要:思路:dp, 用dp[ i ][ j ][ u ][ v ] 表示, 有n个人,其中有j个是男生,后缀区间中男生人数减去女生人数的最大值为u, 女生人数减去男生人数 的最大值为v, 然后就能写出状态转移方程。 阅读全文
posted @ 2018-05-18 23:25 NotNight 阅读(119) 评论(0) 推荐(0)
摘要:思路:分层dp,因为给的w都是a*(2 ^ b)的形式, 我们将这些物品按b分层, 我们设 dp[ i ][ j ]表示在 第 i 层 容量为(j << i)的最大值, 然后通过层与层之间dp 把dp[ i ][ j ] 扩充为 容量为(j << i) + W & ((1 << i - 1) - 1 阅读全文
posted @ 2018-05-15 16:43 NotNight 阅读(137) 评论(0) 推荐(0)
摘要:思路:dp + 容斥, 我们先算出四种硬币的个数都没有限制的组成s的种类 减去 不符合个数限制的种类组成s 的种类。 注意dp的去重。 阅读全文
posted @ 2018-05-09 19:03 NotNight 阅读(122) 评论(0) 推荐(0)
摘要:F - Financiers Game 这种两人博弈一般都可以用两个dp写, 一个dp描述第一个人的最优态, 第二个dp描述第二个人的最优态,难点在于优化空间。。。 我感觉这个空间开得有点玄学。。 dp[ op ][ l ] [ d ] [ k ] 表示到第op个人先手,在第任意轮的时候第一个人和第 阅读全文
posted @ 2018-04-16 19:34 NotNight 阅读(173) 评论(0) 推荐(0)
摘要:https://www.nowcoder.com/acm/contest/70/E 思路:我dp好菜啊。。 dp[ i ][ j ][ k ][ op ] 表示 到第 i 个字符,用来 j 次操作,能否到达k并朝向op方向。 阅读全文
posted @ 2018-03-18 01:12 NotNight 阅读(176) 评论(0) 推荐(0)
摘要:题目大意:有n个点,由m种颜料,有些点没有涂色,有些点已经涂色了,告诉你每个点涂m种颜色的价格分别是多少, 让你求将这n个点分成k段最少需要多少钱。 思路:动态规划,我们另dp[ i ][ j ][ k ] 表示到i个点为止,分成j段,最后一段的颜色为k的最少值,然后就能很容易地 写出状态转移方程。 阅读全文
posted @ 2017-11-23 17:02 NotNight 阅读(202) 评论(0) 推荐(0)
摘要:题目大意:给你长度为n的字符串(n<=1e6),让你对它进行划分,如果一段里面只有字母和 空格可以包含m(m<=1e5)个,如果有其他字符只能包含n个,问你最少需要分成几段。 思路:划分dp,dp[ i ] 表示以i为结束最少需要分成多少段,复杂度n*m,不能接受,我们考虑贪心 每次划分使其中包含的 阅读全文
posted @ 2017-09-23 11:58 NotNight 阅读(140) 评论(0) 推荐(0)
摘要:CodeForces - 233D 题目大意给你一个n*m 的矩阵,要求你进行涂色,保证每个n*n的矩阵内都有k个点被涂色。 问你一共有多少种涂色方案。 n<=100 && m<=1e18 看数据范围感觉是个矩阵快速幂优化的dp,各种想,连状态转移方程都想不出来,我真 鸡儿菜!!!!,这种和概率有关 阅读全文
posted @ 2017-09-18 18:40 NotNight 阅读(184) 评论(0) 推荐(0)
摘要:URAL - 1078 URAL - 1078 题目大意:有n条线段,一个线段a 完全覆盖另一个线段b 当且仅当,a.l < b.l && a.r>b.r。问你 一个线段覆盖一个线段再覆盖一个线段再.......,问你最多几个线段属于这种关系,并打印出路径。 这题的的 n 太小了,n^3的方法都能过 阅读全文
posted @ 2017-08-13 19:32 NotNight 阅读(237) 评论(0) 推荐(0)
摘要:问题大意:给你 n 个鸡蛋,问你在 m 层中,进行多少次投鹰蛋能确定,鹰蛋最高在哪层能不碎( 即最坏情况需要多少次 ), 如果第m层也不碎答案为m。 这个问题好像有个大牛写过一篇论文。我只学了其中的两个方法。 第一种方法是 log( n )*n^2,我们将状态设成 dp[ i ][ j ] 表示成有 阅读全文
posted @ 2017-08-11 20:27 NotNight 阅读(428) 评论(0) 推荐(0)
摘要:D - Ability To Convert 题目大意:给你一个数字 n 接下来再输入一个数字 w(<10^60),表示w这个数字是 n 进制的, 并且超过十进制也用数字表示,这样就有多种组合了,问你所有组合中(划分方案中)原来的 数字十进制最小是多少。 思路:网上说可以用贪心做,但是我感觉那个贪心 阅读全文
posted @ 2017-08-11 15:40 NotNight 阅读(182) 评论(0) 推荐(0)
摘要:题目大意:给你n个数字(小于1e18),从n个数中取k个数字相乘,使其后缀0最多,问你后缀0最多是多少。 知道得用三维的dp[ i ] [ j ] [ k ] 第一维表示用到第 i 个数为止,j 表示从中选 j 个数,想了好久也不知道 第三维是什么,我想不到怎么总结当前状况相乘之后 0 的个数QAQ 阅读全文
posted @ 2017-08-04 18:23 NotNight 阅读(164) 评论(0) 推荐(0)

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