模板
细数风雨
这个作者很懒,什么都没留下…
展开
-
莫比乌斯反演
整数分块∑i=1n⌊ni⌋\sum_{i=1}^{n}\lfloor\frac{n}{i}\rfloor∑i=1n⌊in⌋在n\sqrt{n}n复杂度时间内计算上式: ll n, sum = 0; cin>>n; for(ll l = 1, l <= r; l = r + 1) { ll r = n / (n / l);//l到r这一段的值是相同的 sum += (r - l + 1) * (n / l);原创 2020-10-24 20:02:44 · 95 阅读 · 1 评论 -
loj#6235. 区间素数个数
上一篇写了求区间质数和的,刚好再来一个求区间质数个数的。其实都只用了min25筛求质数那一部分,改动其实不大。具体思路可以看一下我的min25筛学习笔记。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int mod=998244353;const int maxn = 1e6 + 10;bool valid[maxn];ll prime[maxn];ll sum[maxn];原创 2020-09-30 20:41:31 · 179 阅读 · 0 评论 -
Graph Theory Class min25筛子
这道题目简化来看就是求3到n+1的所有数和3到n+1的所有质数和,不知道min25筛会很难算,虽然也有打表过去的。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int mod=998244353;const int maxn = 1e6 + 10;bool valid[maxn];ll prime[maxn];ll sum[maxn];int tot;void init()原创 2020-09-30 20:25:13 · 105 阅读 · 0 评论 -
优化莫比乌斯函数模版
#include<iostream>#include<cstring>#include<algorithm>#include<stdbool.h>#define int long longusing namespace std;const int maxn = 2e5 + 10;int tot, prime[maxn], miu[maxn], sumu[maxn];bool valid[maxn];void acc_ios(){原创 2020-08-26 21:44:41 · 117 阅读 · 0 评论 -
lct模版
#include<iostream>#include<cstring>#include<iomanip>#include<cstdio>#include<cstdlib>#include<queue>#include<map>#include<stack>#include<vector>#include<iomanip>#include<algorithm>原创 2020-08-26 20:28:25 · 96 阅读 · 0 评论 -
双旋splay模版
#include<iostream>#include<cstring>#include<iomanip>#include<cstdio>#include<cstdlib>#include<queue>#include<map>#include<stack>#include<vector>#include<iomanip>#include<algorithm>原创 2020-08-19 22:33:22 · 128 阅读 · 0 评论 -
hud2255 km模板,带权二分图匹配
km可以解决一些卡费用流的题目时间复杂度n3#include<iostream>#include<cstring>#include<cstdio>#include<string>#include<algorithm>#include<cstdlib>#define inf 0x3f3f3f3fusing n...原创 2020-02-21 16:24:37 · 120 阅读 · 0 评论 -
凸包模板
#include<iostream>#include<cstring>#include<cstdlib>#include<algorithm>#include<cmath>#include<iomanip>using namespace std;struct node{ double i, j; ...原创 2020-02-04 11:26:45 · 1358 阅读 · 0 评论 -
后缀数组模板
学习后缀数组的模板#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>using namespace std;const int maxn = 2e6 + 10;int sa[maxn],rk[maxn], height[maxn], h[maxn]...原创 2020-01-07 21:28:00 · 181 阅读 · 0 评论 -
P3304 [SDOI2013]直径 树的直径
树的直径模板题,需要考虑的是第二问,求所有直径的公用边,先找出一条直径来,画图思考一下会发现,如果这条树的直径上面有个点可以找出另一条直径来,那么这个点以前的边就至少和这一条新找出的直径不共用,那么也就是求两个端点开始最后是从哪里分叉的。从一个端点沿着直径找,直到发现延伸到另一个端点的直径,思考一下会发现这个其实就是另一个端点的最后一个分叉点,并且这个端点的延伸直径也已经找完了,如果你还能找到这...原创 2019-11-09 19:10:05 · 256 阅读 · 0 评论 -
树剖基础模板*真 P3384 【模板】树链剖分
#include<cstring>#include<cstdlib>#include<algorithm>#include<cstdio>#include<cmath>#define fmid (tree[rt].l + tree[rt].r) >> 1#define lson rt<<1#defin...原创 2019-11-01 20:26:50 · 111 阅读 · 0 评论 -
扫描线线段树模板
#include<cstring>#include<algorithm>#include<cstdio>#include<cstdlib>#define lson rt<<1#define rson rt<<1|1#define fmid (tree[rt].l + tree[rt].r)>>1us...原创 2019-10-21 16:22:43 · 187 阅读 · 0 评论 -
存个bm线性递推模板
#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <vector>#include <string>#include <map>#include <set>#include &l...原创 2019-09-28 20:52:09 · 159 阅读 · 0 评论 -
P3379 【模板】最近公共祖先(LCA)倍增模板
#include<cstring>#include<cstdlib>#include<cstdio>#include<algorithm>using namespace std;const int maxn = 5e5 + 10;const int DEG = 20;struct node{ int to, next;...原创 2019-08-26 16:17:40 · 114 阅读 · 0 评论 -
树链剖分模板
树链剖分和dfs序一样是把树状结构转化成线性结构,然后区间求解,特征是对于链的操作;#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#include<cmath>#define fmid (tree[rt].l + tree[rt].r)...原创 2019-08-05 08:47:32 · 125 阅读 · 0 评论 -
ac自动机入门模板
#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#include<queue>using namespace std;typedef struct Trie_Node{ Trie_Node *fail; Trie_N...原创 2019-07-29 09:29:38 · 148 阅读 · 0 评论 -
主席树动态第k小模板
#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>using namespace std;const int maxn = 1e5 + 10;struct node{ int l, r, sum;};struct op{ ...原创 2019-07-27 19:49:30 · 257 阅读 · 0 评论 -
主席树静态区间第k小模板--结构体
#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>using namespace std;const int maxn = 2e5 + 10;struct node{ int l, r, sum;};node tree[maxn ...原创 2019-07-27 08:55:28 · 205 阅读 · 0 评论 -
费用流模板
#include#include#include#include#include<stdbool.h>#includeusing namespace std;const int maxn = 1e5 + 10;struct node{int next, to, flow, cost;};node edge[maxn];int head[maxn], flow[...原创 2019-07-24 21:43:57 · 366 阅读 · 0 评论 -
网络流模板
网络流模板#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#include<queue>using namespace std;const int maxn = 1e5 + 10;struct node{ int nex...原创 2019-07-23 19:20:01 · 111 阅读 · 0 评论 -
手写哈希
对字符串或数组进行hash,p和mod选两个质数冲突比较小。const ll mod = 1e9 + 7;const ll p = 1e5 + 7;ll gethas(int pos, int len)//查找位置pos开始长度为len的串的hash值{ if(pos + len - 1 > n) return -1; ll now = has[pos + len - 1] - has[pos - 1]; now = (now + mod) % mod; ret原创 2020-10-09 12:36:32 · 161 阅读 · 0 评论