摘要: ### 乘法逆元 ### 快速幂 仅对模数 $p$ 为质数时适用 跑的没有用 exgcd 求的快 ```cpp int query(int x) { return ksm(x,p-2,p); } int ksm(long long x,int n,int p) { int re=1; while(n 阅读全文
posted @ 2019-11-14 11:17 nenT 阅读(141) 评论(0) 推荐(0)
摘要: ### 树状数组 #### 单点修改 区间查询 修改 查询复杂度 $O(log \ n)$ ```cpp int lowbit(x) { return x&-x; } void add(int x,int k) { while(x<=n) { tree[x]+=k; x+=lowbit(x); } 阅读全文
posted @ 2019-11-14 11:04 nenT 阅读(86) 评论(0) 推荐(0)
摘要: ### 快速幂 ```cpp int ksm(long long x,int n,int p) { int re=1; while(n) { if(n&1) re*=x%p; x*=x%p; n>>=1; } return re; } ``` 阅读全文
posted @ 2019-11-14 10:46 nenT 阅读(115) 评论(0) 推荐(0)
摘要: ### 堆 #### STL `include` `priority_queue q;` 大根堆 `priority_queue,greater > q;` 小根堆 #### 手写 ~~然而并不比stl快~~ ```cpp int heap[MAX],size; void _push(int v) 阅读全文
posted @ 2019-11-14 10:42 nenT 阅读(145) 评论(0) 推荐(0)
摘要: ### 并查集 合并 查询的效率很高 可以近似看作 $O(1)$ ~~在不加路径压缩的极端情况下会退化成一条链 例如csp-s 2019 ccf 的并查集代码~~ ```cpp void init() { for(int i=1;i<=n;i++) f[i]=i; } void Union(int 阅读全文
posted @ 2019-11-14 10:36 nenT 阅读(127) 评论(0) 推荐(0)
摘要: ### ST表 可以用来静态求解RMQ问题 预处理 $O(n\ log \ n)$ 查询 $O(1)$ ```cpp void pre_st() { for(int j=1;j>1]+1; } int query(int l,int r) { int t=log[r-l+1]; return max 阅读全文
posted @ 2019-11-14 10:30 nenT 阅读(119) 评论(0) 推荐(0)