
模板
-Charlie-
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
快速读写模版
快速读 inline long long read(){ char ch = getchar(); long long x = 0, f = 1; while(ch < '0' || ch > '9') { if(ch == '-') f = -1; ch = getchar(); } while('0' <= ch && ch <= '9') { x = x * 10 + ch原创 2021-01-20 18:53:48 · 187 阅读 · 0 评论 -
FWT快速沃尔什变换
Fast Walsh-Hadamard Transform 就是用于解决一类卷积问题的方法。 时间复杂度nlogn,求解的内容如下 可以用于求解数组A和数组B异或后能得到哪些数之类的问题(暴力枚举是n2的复杂度) void FWT(int a[],int n) { for(int d=1;d<n;d<<=1) for(int m=d&...原创 2018-08-14 18:18:04 · 466 阅读 · 0 评论 -
二维凸包模板
例题来自Hdu 1348 //几何求凸包模板 #include<bits/stdc++.h> using namespace std; const int maxn = 100000 + 5; const double PI = acos(-1); #define all(a) a.begin(), a.end() struct Point { int x, y; P...原创 2018-08-14 18:29:04 · 341 阅读 · 0 评论 -
快速幂模板
#include<bits/stdc++.h> using namespace std; typedef long long LL; LL fpow(LL a,LL m,LL mod) { LL ret=1; while (m){ if (m&1)ret=ret*a%mod; a=a*a%mod; m>>...原创 2018-08-14 18:29:49 · 182 阅读 · 0 评论 -
扩展欧几里德
typedef long long LL; //扩展欧几里德递归实现 版本1 void exgcd(LL a, LL b, LL& g, LL& x, LL& y) { if (!b) g = a, x = 1, y = 0; else exgcd(b, a%b, g, y, x), y -= x * (a / b); } //扩展欧几里德递归实现 版本...原创 2018-08-14 18:30:37 · 249 阅读 · 0 评论 -
Treap实现名次树
插入,删除,查找的期望时间复杂度O(logn); //基于Treap实现的名次树,可以查第k大的数、某个数的rank struct Node { Node *ch[2]; int r, v, s; Node(int val = 0) { ch[0] = ch[1] = NULL; r = rand(); v = va...原创 2018-08-14 18:35:04 · 396 阅读 · 0 评论 -
欧拉函数
计算phi(x) ,复杂度O(sqrt(n)); int euler_phi(int n) { int m = (int)sqrt(n + 0.5); int ans = n; for (int i = 2; i <= m; i++)if (n%i == 0) { ans = ans / i * (i - 1); while (n...原创 2018-08-14 18:36:42 · 241 阅读 · 0 评论