摘要:
首先注意 2* n 的长度 mx: 当前匹配到的最大长度 即 [1,mx] id: mx 对应的中心点 pi : s[i] 为中心的回文串的最大长度, pi /2 -1 是半径() #include <iostream> #include <cstring> #include <algorithm> 阅读全文
摘要:
https://www.luogu.com.cn/problem/P1253 区间赋,区间加,查询区间最大值 阅读全文
摘要:
首先是代码量小的bit 值域上建立bit, 需要注意合并类型应该有单调性 https://www.luogu.com.cn/problem/AT_dp_q https://www.luogu.com.cn/record/133869096 线段树 值域上建立线段树,区间查询,单点改 #include 阅读全文
摘要:
可持久化线段树 #include <cstdio> #include <algorithm> using namespace std ; const int maxn=200010; int a[maxn],b[maxn],blen,n,CNT; int sum[maxn<<5],lc[maxn<< 阅读全文
摘要:
线段树合并板子 #include<iostream> #include<cstring> using namespace std; const int N =5e5+10,M =N*2; int nxt[M],hd[N],all=1,go[M],n,m; int dep[N],f[N][22],fa 阅读全文
摘要:
错位排列板子题,plus: 组合数取模 const int N=1e6; #define int long long const int mod =1e9+7 ; int n,m,D[N+3] ; #define ll long long ll inv[N+3]; int F[N+3] ; int 阅读全文
摘要:
要求O(1) 查找元素的存在 struct HashMap{ static const int Hash=999917,maxn=46340; int num,link[Hash],son[maxn+5],next[maxn+5],w[maxn+5]; int top,Stack[maxn+5]; 阅读全文
摘要:
#include<iostream> #include<cstdio> #include<string> #include<cstring> #include<cmath> #include<algorithm> #include<stack> #include<queue> #include<ve 阅读全文
摘要:
https://blog.csdn.net/u011815404/article/details/88381586 #include<iostream> #include<vector> #include <cstring> #include<string> using namespace std; 阅读全文
摘要:
百度百科> #include<iostream> #include<vector> #include<string> using namespace std; struct wint:vector<int> { wint(int n=0) { push_back(n); check(); } win 阅读全文