摘要: 第一次见到这个模型. 首先,不难得出砝码的种类不会超过 $log(10^9)$ 个,然后就不会分析了qaq... 那么,就说明一共只有 $30$ 多个本质不同的砝码. 考虑对每个背包进行状态的压缩:写成若干个砝码大小乘积的形式. 即 $v[i]=w[i]*a+w[i+1]*b+....$ 然后,将所 阅读全文
posted @ 2019-10-29 22:18 EM-LGH 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 如果没有限制,直接取前 $k$ 大即可. 有限制,则只有几种可能:奇换偶,偶换奇. 维护奇数偶数的前缀最小值和后缀最大值即可. code: 阅读全文
posted @ 2019-10-29 19:39 EM-LGH 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 这个真的好巧妙啊~ 如果只考虑点权的话显然直接按照权值大小排序即可. 但是加入了边权,就有了一个决策的问题. 于是,我们将边权分一半,分给两个端点. 如果一个人拿了两个端点,则边权都会加上. 否则,边权会抵消. 直接按照点权+一半边权排序即可. code: 阅读全文
posted @ 2019-10-29 18:44 EM-LGH 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 没啥难的,inf 的值设小了调了半天~ code: 阅读全文
posted @ 2019-10-29 18:23 EM-LGH 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 有一个小性质:就是一个下标排列的最小移动次数就是逆序对数. 我们发现最终形态一定是一个波峰. 那么我们求的就是形成波峰的下标最少逆序对数. 考虑将元素从小到大依次插入. 那么,对于第 $i$ 个元素,一定是放到左面或右面(就是从 1....left 或 right....n) 中的left和righ 阅读全文
posted @ 2019-10-29 16:32 EM-LGH 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 给你一堆线段,求:一个区间内包含的本质不同线段种类数(只要线段有一部分在区间中就算是包含) 考虑容斥:总线段数-被那些没有询问的区间完全覆盖的数量. 用离线+树状数组数点或者 KDtree 数点即可. #include <bits/stdc++.h> #define N 300005 using n 阅读全文
posted @ 2019-10-29 15:54 EM-LGH 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 开始的时候数据范围算错了~ 我以为整个序列 2 和 5 的个数都不超过 70 ~ 一个非常水的 dp code: 阅读全文
posted @ 2019-10-29 14:36 EM-LGH 阅读(119) 评论(2) 推荐(0) 编辑
摘要: 线段树维护 dfs 序是显然的. 暴力建 60 个线段树太慢,于是用 bitset 优化就好了 ~ code: 阅读全文
posted @ 2019-10-29 14:34 EM-LGH 阅读(160) 评论(3) 推荐(0) 编辑
摘要: 考试 T2,没想到真的就是一个大爆搜啊~ 搜索时几个剪枝: 1.剩余可用颜色要大于等于剩余步数 2.颜色从没用过的里找,然后用二进制状压存储. 3. 最重要的一个剪枝:如果一个颜色在之前序列中未出现过,且在之后的位置也不会强制出现,则所有这种情况的贡献都是相同的,只需算第一次的贡献,然后后面的依次累 阅读全文
posted @ 2019-10-29 14:31 EM-LGH 阅读(167) 评论(0) 推荐(0) 编辑