该文被密码保护。 阅读全文
摘要:
因为现在noi/noip都是无限栈 noi-linux开栈指令 ulimit -s 102400 这个是100mb 平衡树*2 维护序列 翻转 平衡树+1 维护区间+* t了3个点。。 注意打完标记 splay一下 现在写起来正确率还蛮高的 主席树 不要把ls rs写成x*2 另外更新要注意都更新 阅读全文
摘要:
displaystyle的作用就是把公式和字变的一样大 large Large huge Huge 这样排下来。。 clear page用来换下一页 阅读全文
摘要:
重新改了一下板子 抄起来比较短 #include <bits/stdc++.h> using namespace std; #define rep(i,h,t) for (int i=h;i<=t;i++) #define dep(i,t,h) for (int i=t;i>=h;i--) #def 阅读全文
摘要:
set<re>::iterator split(int x) { auto it=S.upper_bound({x}); it--; int l=it->l,r=it->r,k=it->k; if (it->l!=x) { S.erase(it); S.insert({l,x-1,k}); retu 阅读全文
摘要:
更新一下以前的板子 https://codeforces.com/contest/1657/problem/F这个题的代码 #include <bits/stdc++.h> using namespace std; #define rep(i,h,t) for (int i=h;i<=t;i++) 阅读全文
摘要:
dij: #define rep(i,h,t) for (int i=h;i<=t;i++)const int N=1e4; struct re{ int a,b,c; bool operator <(const re x) const{ return b>x.b; } }a[N]; int n,m 阅读全文
摘要:
burnside引理:$ans=\frac{1}{n} *(f(1)+...f(n))$ $f(i)$表示在i置换下本质不同排列的个数 polya定理: 利用本质不同位置的个数去计算$f(i)$ 对于长度为n的序列移动i之后显然循环节是$gcd(n,i)$ 考虑对于一个因数d,显然$gcd(n,i) 阅读全文
摘要:
每次写麻烦存一下 const int MN=1e6; ll jc[MN+10],jc2[MN+10]; int pri[MN+10],phi[MN+10],cntpri; bool vispri[MN+10]; ll fsp(int x,int y) { if (y==0) return 1; if 阅读全文
摘要:
板子 const int N=1e6; struct FFT{ const double pi=acos(-1); struct cp{ double x,y; cp operator +(const cp &o)const{return (cp){x+o.x,y+o.y};} cp operato 阅读全文
摘要:
Dsu 先访问小的 删除小的贡献 访问重儿子 之后合并小的时候 可以直接利用dfs序 长链剖分只需要开线段树不需要开主席树 阅读全文
摘要:
板子是抄的 不过他m=1的情况有bug要特判 #include <bits/stdc++.h> using namespace std; #define rep(i,h,t) for (int i=h;i<=t;i++) #define dep(i,t,h) for (int i=t;i>=h;i- 阅读全文
摘要:
[HNOI2013]游走 这个的方程比较经典 hdoj 7109 n^3预处理n^2询问修改矩阵最后一列 //#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math") //#pragma GCC target("s 阅读全文
摘要:
抄的板子略有修改 #include <bits/stdc++.h> using namespace std; #define rep(i,h,t) for (int i=h;i<=t;i++) #define dep(i,t,h) for (int i=t;i>=h;i--) #define ll 阅读全文
摘要:
Ln(x) a[0]=1; exp(x) a[0]=0; 11.26 换了一个更快的dft的板子 #include <bits/stdc++.h> using namespace std; #define rep(i,h,t) for (int i=h;i<=t;i++) #define dep(i 阅读全文
该文被密码保护。 阅读全文
摘要:
牛客多校比赛的时候碰到了一题 https://ac.nowcoder.com/acm/contest/11257/K 其实原理比较简单 用于$O(1)$查询树上的一些询问 方法大概是点分治之后建出点分树 每一条链的答案可以在把他们分成两个子树的那个位置查询 代码里写的查询是$loglogn$的 实测 阅读全文
摘要:
之前碰到过两次但是没学 https://acm.hdu.edu.cn/showproblem.php?pid=7013 hdu多校的题 单位根反演都比较套路 如果有组合数可以把常系数和它化成n次幂的形式 实现复杂度从$n/k$变到$k$ 详细的有空补 //#pragma GCC optimize(" 阅读全文
摘要:
存个树状数组的板子省的每次都抄别人 struct sgt{ ll c1[N],c2[N]; inline void update(ll x,ll k) { ll i=x; while(x<=n) { c1[x]+=k; c2[x]+=i*k; x+=x&-x; } return; } inline 阅读全文
摘要:
最远点 描述: 给你一个n个点的凸多边形,求离每一个点最远的点。 题解: 容易发现随着顺时针做每一个点其最远点也会顺时针旋转 于是可以决策单调性 因为从1的最远点开始转可以转过1 所以将数组扩成两倍做 //#pragma GCC optimize("Ofast,no-stack-protector, 阅读全文
摘要:
当一张图每条边最多属于一个环的时候,这个图叫做仙人掌 圆方树用来解决仙人掌上的问题 1.仙人掌上最大独立集 仙人掌上做dp可以分成树边和环边两种边 所以相当于实现树形和环形dp void tarjan(ll x,ll y) { dfn[x]=low[x]=++cnt; for (ll u=head[ 阅读全文
摘要:
https://codeforces.ml/gym/102956 这道题是要实现每一位自定义二进制下运算的fwt$A*B=C$ (*是卷积) 跟一般fwt相同,实现过程可以按位进行 考虑构造成$T1A*T2B=T3C$ (*是对应相乘) 将其按照最高位拆开之后,即$A=[A0,A1],B=[B0,B 阅读全文
摘要:
https://ac.nowcoder.com/acm/contest/11174/E 正好用这道题重新搞一下点分治板子 这道题就是个裸的点分治题 主程序里的话要保留 //#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast 阅读全文
摘要:
给出一些字符串,求对于每个字符串,在这些字符串里有多少子串 利用ac自动机+树链的并可以求解 //#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math") //#pragma GCC target("sse,sse 阅读全文
摘要:
https://ac.nowcoder.com/acm/contest/11244/C 题解: 考虑只需要区间修改,求历史最大值 那么用线段树的话我们需要维护历史标记最大值,当前标记,区间当前最大值,历史区间最大值 其实现在变成求历史K大可以类似维护 我们维护历史标记最大的K个,当前标记,区间当前最 阅读全文
摘要:
树上后缀数组模板题: https://www.codechef.com/problems/DIFTRIP //#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math") //#pragma GCC target("s 阅读全文
摘要:
1.构造一个完整凸包 2.普通的构造一次凸包并求答案 2.允许动态加点的凸包求答案(cf932f) //#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math") //#pragma GCC target("sse, 阅读全文
摘要:
闲着无聊打了一下 发现我非常的愚蠢 a签到 b我写了个数位dp 其实上界松了的时候答案直接是一半,这样可以写起来更简单 c题大概是二分之后再O(n)搞一下 被k=0卡的怀疑人生,一度以为是爆ll d题考虑整数分块+对数据分块 对于整数分块之后,我们要维护的是i-k,i-2k,i-3k,i-4k,对于 阅读全文
摘要:
https://codeforces.com/contest/1525/problem/F 题解: 容易发现最少用几个怪占用图就是求最小路径覆盖 这是网络流经典题 容易猜测出每次删一个点的出边或入边能让最小路径覆盖+1 所以比较暴力可以跑n^2次网络流 复杂度n^5 可以通过 下面有一种比较妙的做法 阅读全文
摘要:
存个链式hash表的板子 比较好清空 const int MAXM=1e7+7; struct{ int next[MAXM],head[MAXM],ans[MAXM],size; ll state[MAXM]; void init(){ size=0; memset(head,0,sizeof(h 阅读全文
摘要:
挺简单的一个东西 判定定理就不说了 输出的时候 倒着输出图就能保证输出完了(有向无向图都是一样) 一道比较好的题目 https://codeforces.com/contest/1494/problem/F ##updata 2022.2.15 发现我是个sb,之前的复杂度是错的 void dfs( 阅读全文
摘要:
一 决策单调性 决策单调性优化dp即满足对于$i,j(i>j) $如果$dp[j]$从$dp[k]$转移,$dp[i]$从$dp[k1]$转移,则有$k1>=k$ 解决该问题有两种方法 1.整体二分 整体二分用于二维dp(高维) 即$dp[i][j]=max(dp[i-1][k]+cost[k][j 阅读全文
摘要:
大无语事件 cf b没特判1 c没清空 g题目看错 eoj ll改int就过了 能爆搜我二分我还以为我很机智改了个分治 大概是学构造学成新生了 *icpc记得要快读要删注释 阅读全文
摘要:
好久没有用过博客了 以前做fwt,fft的题都是套板子 这里补一下原理 FWT: 与运算: 结论:$FWT(A)_i=\sum_{i\&j=i}^{}A_j$ $FWT(C)_i=FWT(A)_i*FWT(B)_i=(\sum_{i\&j=i}^{}A_j)(\sum_{i\&k=i}^{}B_ 阅读全文
摘要:
树链剖分 kd-tree sg函数 线段树合并 dsu on tree http://acm.hdu.edu.cn/showproblem.php?pid=5420 写 连通分量 缩点 网络流 fft 阅读全文
摘要:
b1.in AAA b1.out 1 b2.in BACAABCA b2.out 5 b3.in EASKAKNSOJGSLSLGTNFDMTSSKPOFGBPPLOSEILDKDMQJSCFOII b3.out 36 阅读全文
摘要:
in 100100 200119 126159 169128 15590 9337 47177 22482 12784 116146 18187 103101 107181 208109 12656 90189 19252 95115 16437 64128 153110 12393 110187 阅读全文
摘要:
protect1.in 5 23 3 4 6 6 protect1.out 36 protect2.in 10 43 4 3 9 5 4 5 10 5 10 protect2.out 425 protect3.in 20 77 8 2 4 2 6 6 8 8 2 5 10 8 6 10 1 4 3 阅读全文
摘要:
input 1020554 308141745 3264726808 314753386 2776526096 316535779 743110690 1671424124 2725213499 249392247 14784 output 3 阅读全文