![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
ALuckyA
这个人什么都没有留下…
展开
-
差分模板题
题目描述 输入 3 2 1 2 3 1 2 4 3 3 -2 输出 5 6 1 题目分析 O(n)复杂度必定会超时 所以需要找到一个O(1)复杂度的解题方式 此时想到前缀和 对于任意一个[l,r]的子序列,只需将a[l]加上k,a[r]减去k,再应用前缀和即可 #include<bits/stdc++.h> using namespace std; typedef long long ll; int n,m; const int N = 1e5 + 5; ll arr[N],sum[N];原创 2022-01-10 12:11:16 · 276 阅读 · 0 评论 -
位运算
记得之前C++老师讲过一些关于位操作的知识,今天系统的整理一下 位运算定义 参考来源:位运算 程序中的所有数在计算机内存中都是以二进制的形式储存的。 位运算就是直接对整数在内存中的二进制位进行操作。 几个位运算 按位与&: 当两个位均为1时,结果才会是1 按位或|: 当两个位均为0时,结果才会是0 异或^: 两个位相同为0,相异为1 取反~: 0->1 1->0 左移<<: 左移相应位数,右边空出的位补0,左边的位将被移出,相当于×2 右移>>: 右移相应位数,右原创 2020-07-12 23:02:46 · 161 阅读 · 0 评论