前缀和与差分


前缀和#include <iostream>using namespace std;const int N =100010;int a[N],s[N];int main(){ int n,m; cin>>n>>m; for(int i=1;i&l

C++模拟单链表


#include using namespace std;const int N = 100010;// head 表示头结点的下标// e[i] 表示节点i的值// ne[i] 表示节点i的next指针是多少// idx 存储当前已经用到了哪个点int head, e[N], ne[N], idx

二分算法


二分算法思路:假设目标值在闭区间[l, r]中, 每次将区间长度缩小一半,当l = r时,我们就找到了目标值。版本1当我们将区间[l, r]划分成[l, mid]和[mid + 1, r]时,其更新操作是r = mid或者l = mid + 1;,计算mid时不需要加1。C++ 代码模板:int b

排序算法


快速排序#include <iostream>using namespace std;const int N =1e6+10;int n;int a[N];void quick_sort(int a[N],int l,int r){ if(l>=r) return ;