06 2022 档案

摘要:我们这里讨论的是保序的离散化,小的在前面,大的在后面 我们有一个集合a[],这个集合的值域是0 ~ 109,但是这个集合中元素的个数却只有105个。 当我们需要将这个集合中元素当作下标时,那么我们需要开一个109数组,这无疑是很浪费空间的。 此时就需要进行映射,将这105个数 阅读全文
posted @ 2022-06-14 20:47 晓尘 阅读(38) 评论(0) 推荐(0) 编辑
摘要:位运算常用的主要有两方面: n的二进制表示中,第k位是几。 Lowbit操作 二进制第k位 n的二进制表示中,第k位是几。 思路: 先把第k位移动到最后一位,n >> k; 看个位是几,通过n&1就可以了 总结一下,公式就是 n>>k&1 如下面输出的结果就是1010; int n = 10; fo 阅读全文
posted @ 2022-06-14 19:10 晓尘 阅读(48) 评论(0) 推荐(0) 编辑
摘要:用处就是优化 例如一道题朴素做法就是暴力遍历,如下: for(int i = 0; i < n; i++) for(int j = 0; j ⇐ i; j++) 此时时间复杂度是O(n2)的。而通过双指针算法,就可以将其优化为O(n)的。 基本思想如下: for (int i = 0, j = 阅读全文
posted @ 2022-06-14 13:28 晓尘 阅读(35) 评论(0) 推荐(0) 编辑
摘要:差分就是前缀和的逆运算 一维差分 有一个数组a1,a2,a3... 构造b1,b2,b3... 使得ai=b1+b2+...+bi. 构造方法也很简单: b1=a1 b2=a2a1 \(b_3 = a_3 - a 阅读全文
posted @ 2022-06-13 16:08 晓尘 阅读(284) 评论(0) 推荐(0) 编辑
摘要:前缀和 前缀和更像一个公式,理解思想之后直接套公式就可以解题。 一维前缀和 有一个数组a1,a2,a3... 则前缀和数组为Si=a1+a2+...+ai. 前缀和的下标建议从1开始。这样S0就会为0,处理边界会很方便。 例如区间和[1,5]为$S_5-S 阅读全文
posted @ 2022-06-02 14:03 晓尘 阅读(83) 评论(0) 推荐(0) 编辑

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示