摘要: 题目链接 The Bakery 题目大意:目标是把$n$个数分成$k$组,每个组的值为这个组内不同的数的个数,求$k$个组的值的和的最大值。 题目分析: 这道题我的解法可能和大众解法不太一样……我用主席树求$ask(l, r)$——$l$到$r$之间有多少个不同的数。 然后就是$DP$了。 这道题的 阅读全文
posted @ 2017-08-14 21:47 cxhscst2 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 题目链接 Vanya and Brackets 题目大意是给出一个只由1-9的数、乘号和加号组成的表达式,若要在这个表达式中加上一对括号,求加上括号的表达式的最大值。 我们发现,左括号的位置肯定是最左端或者某个乘号右边,右括号的位置肯定是最右段或者某个乘号左边。 而乘号最多只有15个,那么暴力枚举就 阅读全文
posted @ 2017-08-14 21:40 cxhscst2 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 题目链接 Gold miner 目标是要在规定时间内获得的价值总和要尽可能大。 我们先用并查集把斜率相同的物品分在同一个组。 这些组里的物品按照y坐标的大小升序排序。 如果组内的一个物品被选取了,那该组排在他前面的所有物品肯定被选取了。 那么我们对每个组的所有物品,对价值和代价分别求前缀和。 那么选 阅读全文
posted @ 2017-08-14 21:32 cxhscst2 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 题目链接 Matrix multiplication 求矩阵A和B相乘的结果。 因为答案只要对3取模,所以我们可以通过一些方法来加速计算。 我们对两个矩阵各开两个bitset,分别存储模3余1和模3余2的数。 然后相乘的时候and一下就好了。 c[i][j] = f(a_one[i] & b_one 阅读全文
posted @ 2017-08-14 21:22 cxhscst2 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 题目链接 Permutation 题目大意:给出n,和m个关系,每个关系为ai必须排在bi的前面,求符合要求的n的全排列的个数。 数据规模为n <= 40,m <= 20。 直接状压DP空间肯定是不够的。 考虑到m <= 20,说明每个连通块的大小不超过21。 那么我们分别对每个连通块求方案数,并且 阅读全文
posted @ 2017-08-14 21:14 cxhscst2 阅读(383) 评论(0) 推荐(0) 编辑