![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
总结
i.ajls
这个作者很懒,什么都没留下…
展开
-
传递闭包模板
Tips:用于解决A<B,B<C等不等式传递问题(也可以用拓扑排序解决)#include<bits/stdc++.h>#include <ostream>using namespace std;typedef long long ll;//#define endl '\n'typedef pair<int, int> PII;#define debug() cout.flush()#define for0(i, a) for (int i =原创 2022-04-29 15:16:22 · 128 阅读 · 0 评论 -
unordered_map的哈希模板
模板来源:HKer_YM的博客struct custom_hash { static uint64_t splitmix64(uint64_t x) { x += 0x9e3779b97f4a7c15; x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; x = (x ^ (x >> 27)) * 0x94d049bb133111eb; return x ^ (x >&g转载 2021-11-17 19:55:22 · 86 阅读 · 0 评论 -
主席树模板
模板来源:HKer_YM的博客1求区间第k大#include <bits/stdc++.h>using namespace std;typedef long long ll;const int MAXN = 2e5 + 5;const ll MOD = 100000007;ll a[MAXN], b[MAXN], n, m, q, sz;int lc[MAXN << 5], rc[MAXN << 5], rt[MAXN << 5], sum[M转载 2021-11-17 19:51:05 · 168 阅读 · 0 评论 -
KMP算法模板
const int MAXN = 1e5 + 5e2;int Next[MAXN];char str1[MAXN], str2[MAXN]; //这里以str1为母串,str2为子串void getNext() { Next[0] = -1; int len = strlen(str2); int j = 0; int k = -1; while (j < len) { if (k == -1 || str2[j] == str2[k]原创 2021-11-17 19:41:19 · 64 阅读 · 0 评论 -
网络流模板(更新中)
1.dinicconst int MAXN = 2e3 + 5;const int INF = 0x3f3f3f3f;struct Edge{ int to,val,nxt;}e[MAXN];int head[MAXN], deep[MAXN];int n, m, s, t, cnt;ll res;inline void init() { for (int i = 1; i <= n; i++) head[i] = -1; cnt = 0;}inli原创 2021-11-17 19:20:08 · 106 阅读 · 0 评论 -
各种筛模板
模板来源:HKer_YM的博客1.线性筛// 复杂度: O(n)void init() { phi[1] = 1; for (int i = 2; i < MAXN; ++i) { if (!vis[i]) { phi[i] = i - 1; pri[cnt++] = i; } for (int j = 0; j < cnt; ++j) { if (1ll * i * pri[j] >= MAXN) break;转载 2021-11-16 19:03:33 · 303 阅读 · 0 评论 -
字符串哈希模板
参考了博客:https://www.cnblogs.com/YangKun-/p/12488843.html这篇博客写的很不错#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=5e6+5e1;ll Hash[2][N];ll mod[]={2333333,1333331};//mod值为大素数即可,多个更保险int n;const int base=131;//base要比总字转载 2020-08-17 20:38:51 · 229 阅读 · 0 评论 -
二分图匹配模板
1.匈牙利算法#include<bits/stdc++.h>using namespace std;typedef long long ll;#define endl '\n'const ll inf=0x3f3f3f3f;inline void FAST_IO() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);}#define N 505int path[N][N],n,m,e,link[原创 2020-08-17 19:55:19 · 96 阅读 · 0 评论 -
树状数组模板
1.区间更新求区间和#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 5e5+5;int n,m,a[N];ll num[N],sum[N];inline int lowbit(int i){ return i&(-i);}inline void update(int i,int k){ int j=i; while(i<=n){原创 2020-08-17 14:48:32 · 76 阅读 · 0 评论 -
最短路模板
1.Spfa#include<bits/stdc++.h>using namespace std;typedef long long ll;#define endl '\n'const ll inf=0x3f3f3f3f;inline void FAST_IO() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);}const int MAXN=2e6;const int N=1e4+5;st原创 2020-08-17 14:44:50 · 88 阅读 · 0 评论 -
c++ 流加速模板
inline void FAST_IO() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);}原创 2020-08-15 19:33:10 · 260 阅读 · 0 评论 -
逆元模板
1.费马小定理typedef long long ll;const ll mod=998244353;inline ll qpow(ll a,ll b){ ll res=1; while(b>0){ if(b&1)res=res*a%mod; a=a*a%mod; b>>=1; } return res;}//a的逆元 = qpow(a,mod-2)2.扩展欧几里得typedef lon原创 2020-08-15 19:32:20 · 132 阅读 · 1 评论 -
Contest1021赛后总结
今天这场打的不是很好,能出的题目没有全出。都是一些思路上的问题。第一道开的题是I题 :最长回文串长度第一眼看上去很难,是个回文问题,但是题目不要求顺序,那就很容易了,哈希存值,偶数个全加上,奇数个减一加上,同时标记一下,因为回文串中心可以有单独的一个字符。代码如下:#include<bits/stdc++.h>using namespace std;char s[10005...原创 2020-02-25 22:02:22 · 102 阅读 · 0 评论