上一页 1 ··· 55 56 57 58 59 60 61 62 63 ··· 70 下一页
摘要: 思路:分层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 阅读(124) 评论(0) 推荐(0) 编辑
摘要: B - Clique Problem 题目大意:给你坐标轴上n个点,每个点的权值为wi,两个点之间有边当且仅当 |xi - xj| >= wi + wj, 问你两两之间都有边的最大点集的大小。 思路:其实问题能转换为一堆线段问你最多能挑出多少个线段使其两两不相交。。 对于一个点来说可以变成[x - 阅读全文
posted @ 2018-05-14 16:30 NotNight 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 博弈的题目做的还是太少啦。。。 不会写啊啊啊 思路:将每个石子看成一个游戏, 那么整个游戏sg值就是全部石子sg值的异或。 阅读全文
posted @ 2018-05-10 19:20 NotNight 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给你n个点求最小矩形覆盖。 思路:枚举凸包上的边然后,旋转卡壳找三个相应的为止把矩形的四个点求出来。 阅读全文
posted @ 2018-05-10 15:54 NotNight 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给你n个点的一棵树, 每个点的权值为2^i ,让你删掉k个点使得剩下的权值和最大。 思路:这题还是比较好想的, 我们反过来考虑, 剩下一个的情况肯定是选第n个点,剩下两个 我们肯定优先考虑第n - 1 个点, 因为其他点全部加起来都没有这个点的权值大, 所以我们可以 以第n个点为根, 倍增 阅读全文
posted @ 2018-05-10 10:36 NotNight 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 思路:dp + 容斥, 我们先算出四种硬币的个数都没有限制的组成s的种类 减去 不符合个数限制的种类组成s 的种类。 注意dp的去重。 阅读全文
posted @ 2018-05-09 19:03 NotNight 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 大范围贪心, 小范围暴力。。。。。 阅读全文
posted @ 2018-05-08 16:31 NotNight 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 思路:写的时候感觉是贪心但是没有什么思路... 看了题解,原来有一个选了能反悔的贪心思路, 如果最优那么每个城市只能和旁边的相邻 城市连边,所以问题变成了由n个数,不能取相邻的两个数,取k个最小是多少。 我们将这n个数放进优先队列里边贪心地取小的,取完最小 的之后,把当前这个now和当前这个的左边l 阅读全文
posted @ 2018-05-08 10:37 NotNight 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 题目大意:有一棵树根为1,刚开始每条边的权值为1, 现在有m + n - 1 个操作, A :x y , 将x和y相连的边权值变为1, W:x, 询问x到1路径上的权值和。 思路 : 方法一: 用dfs序建立树状数组, 每个点入栈位置的值为1, 出栈为-1, 询问的值就是sum( l [ x ] ) 阅读全文
posted @ 2018-05-07 21:23 NotNight 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 求最长反链裸题 补充一点知识。。 链 : D 中的一个子集 C 满足 C 是全序集 及C中所有元素都可以比较大小 反链 : D 中的一个子集 B 满足 B 中任意非空子集都不是全序集 即所有元素之间都不可以比较大小 链覆盖 : 若干个链的并集为 D ,且两两之间交集为 ∅ 反链覆盖 : 若干个反链的 阅读全文
posted @ 2018-05-07 20:08 NotNight 阅读(124) 评论(0) 推荐(0) 编辑
上一页 1 ··· 55 56 57 58 59 60 61 62 63 ··· 70 下一页