上一页 1 ··· 42 43 44 45 46 47 48 49 50 ··· 120 下一页
摘要: 没啥难的,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) 编辑
摘要: 考虑算每一个位置在所有情况的期望值乘以全排列似乎就是答案. 那么对于 $i$,如果要由 $j$ 来贡献的话就要满足 $j$ 在 $i....j-1$ 之前先拿. 而在拿 $j$ 时,先于 $i...j-1$ 的概率就是 $\frac{1}{|j-i|+1}$ 直接对所有的 $j$ 加和,然后乘以个概 阅读全文
posted @ 2019-10-28 23:23 EM-LGH 阅读(188) 评论(5) 推荐(0) 编辑
摘要: 如果字符集无限大的话直接按照 $sa$ 的顺序依次填即可. 由于字符集非常小,所以要尽量填相同的字符. 我们知道 $sa$ 数组,也就知道了 $rank$ 数组. 那么考虑添加排名为 $i$ 的字符: 如果 $rank[sa[i-1]+1]>rank[sa[i]+1]$,说明 $sa[i]$ 的字典 阅读全文
posted @ 2019-10-28 16:58 EM-LGH 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 发现每一次切割都会使另一方向所有切割次数++. 而每一刀的代价就是 cost 切割次数,故贪心按照cost从大到小排序即可. cpp include define N 200000 define LL long long using namespace std; void setIO(string 阅读全文
posted @ 2019-10-28 16:39 EM-LGH 阅读(130) 评论(3) 推荐(0) 编辑
摘要: 常见公式: 先给出几个重要的公式/结论: 一些常见的二项式反演: $f_n=\sum_{i=0}^{n}( 1)^i\binom{n}{i}g_i\Rightarrow g_n=\sum_{i=0}^{n}( 1)^i\binom{n}{i}f_i$ $f_{n}=\sum_{i=0}^{n}\bi 阅读全文
posted @ 2019-10-25 10:32 EM-LGH 阅读(397) 评论(1) 推荐(1) 编辑
上一页 1 ··· 42 43 44 45 46 47 48 49 50 ··· 120 下一页