模板
文章平均质量分 63
sszxzzh
这个作者很懒,什么都没留下…
展开
-
树的中心
树的中心问题 给出一棵边带权的树,求树中的一个点,使得此点到树中的其他结点的最过距离最近。分析 令f[i]f[i]f[i]表示以iii为中心,其它点距离iii最远的距离。 对于一个点iii,分两种情况: 1.距离iii最远的点在以iii为根的子树中 2.距离iii最远的点不在以iii为根的子树中 初步得到状态转移方程: 第一次从儿子节点转移给父亲:f[i]=max(f[son]+w[i][son])f[i]=max(f[son]+w[i][son])f[i]=max(f[son原创 2021-01-14 14:40:34 · 486 阅读 · 0 评论 -
【CSP(NOIP)】主要模板
前言: 今年最后一篇博客了TTTTTT 下面都是比较重要的联赛知识点,太简单或难的就不放了一.数学问题1.快速乘/快速幂inline int ksc(int a,int b,int mod){ int ans=0; a%=mod; while(b) { if(b&1) ans=(ans+a)%mod; b>>=1; a=(a+a)%mo...原创 2019-11-15 00:00:17 · 787 阅读 · 0 评论 -
【模板】树的直径
题目:树的直径算法流程: 令表示经过的最长链,表示以为根的子树能到达的最远点之间距离,明显有: 其中分别为的儿子。 如果经过的最长链是往父亲延申的呢?那会在其父亲算到。 代码: #include <bits/stdc++.h>using namespace std;const int Max=1...原创 2018-10-28 16:58:45 · 711 阅读 · 0 评论 -
【网络流】最小费用最大流(模板)
#include <bits/stdc++.h>using namespace std;const int Max=50010;const int inf=1e9;int n,m,ans1,ans2,size=1,head,tail,s,t;int first[Max],dis[Max],p[Max],exist[Max],vis[Max],temp[Max];stru...原创 2018-05-16 20:58:24 · 621 阅读 · 0 评论 -
【模板】快速幂/快速乘
快速幂:inline int ksm(int a,int b,int mod){ int ans=1; a%=mod; while(b) { if(b&1) ans=ksc(ans,a,mod); b>>=1; a=ksc(a,a,mod); } return ans;}快速乘(O(logN)):inline int ksc(i...原创 2018-10-15 20:56:38 · 144 阅读 · 0 评论 -
【模板】割点
题目:割点代码:#include <bits/stdc++.h>using namespace std;const int Maxn=20010;const int Maxm=100010;int n,m,size,Index,ans,root;int low[Maxn],num[Maxn],first[Maxn],vis[Maxn];struct shu{in...原创 2018-10-15 19:36:07 · 103 阅读 · 0 评论 -
【模板】强连通分量
题目:缩点代码:#include <bits/stdc++.h>using namespace std;const int Maxn=10005;const int Maxm=100010;int n,m,size,Index,cnt,tot,ans;int low[Maxn],num[Maxn],fa[Maxn],vis[Maxn],q[Maxn];int f...原创 2018-10-15 18:56:00 · 121 阅读 · 0 评论 -
【模板】树链剖分
题目:树链剖分#include <bits/stdc++.h>using namespace std;const int Max=100005;int n,m,s,tot,root,mod;int l[Max],r[Max],father[Max],first[Max],num[Max],depth[Max];int top[Max],rev[Max],seg[Max...原创 2018-10-06 16:42:49 · 101 阅读 · 0 评论 -
【模板】Lucas定理
题目:卢卡斯定理#include <bits/stdc++.h>#define int long longusing namespace std;const int Max=100005;int t,n,m,mod;int mul[Max],inv[Max];inline void pre(){ mul[0]=inv[1]=1; for(int i=1;i&...原创 2018-10-05 21:15:55 · 170 阅读 · 0 评论 -
【模板】ST表求LCA
算法流程:1.dfs分别求出第几次访问的是哪个点,深度是多少以及每个点第一次被访问的序号(这里不是一般意义上的DFS序)。2.ST表求询问的两点序间的深度最小的点是哪个点。 代码:#include <bits/stdc++.h>using namespace std;const int Max=200005;int n,m,size,tot;int fir...原创 2018-09-22 17:11:43 · 1307 阅读 · 0 评论 -
【模板】二维树状数组(单点修改,区间查询)
题目:二维树状数组(单点修改,区间查询)代码: #include <bits/stdc++.h>using namespace std;const int Max=5000;int n,m,a,b,c,d,x,tag;int sum[Max][Max];inline int get_int(){ int x=0,f=1; char c; for(c=g...原创 2018-09-30 22:02:45 · 948 阅读 · 0 评论 -
【模板】exCRT(扩展中国剩余定理)
题目:POJ2891算法过程:exCRT代码:#include <iostream>#include <algorithm>#include <cstdio>#include <cstdlib>#include <cmath>#include <cctype>#define int long long...原创 2018-09-03 19:02:29 · 266 阅读 · 0 评论 -
【模板】有源汇有上下界最小流
#include <bits/stdc++.h>using namespace std;const int Maxn=50005;const int Maxm=125005;const int inf=1e9;int n,m,size=-1,s,t,S,T,tot,ans,sum,head,tail;int first[Maxn],tmp[Maxn],depth[Max...原创 2018-08-21 16:46:31 · 152 阅读 · 0 评论 -
【模板】无源汇有上下界可行流
#include <bits/stdc++.h>using namespace std;const int Maxm=10205;const int Maxn=205;const int inf=1e9;int n,m,s,t,size=1,ans,flag,tot,sum;int first[Maxn],tmp[Maxn],in[Maxn],out[Maxn],dep...原创 2018-08-21 16:42:52 · 190 阅读 · 0 评论 -
【模板】SPFA判定负环
洛谷上有模板题:负环代码:#include <bits/stdc++.h>#define Max 2010using namespace std;int n,m,t,s;int first[Max],cnt[Max],dis[Max],vis[Max];struct shu{int to,next,len;};shu edge[6010];queue<i...原创 2018-08-08 20:42:31 · 1120 阅读 · 0 评论 -
【模板】离散化
#include <bits/stdc++.h>using namespace std;const int maxn=100000;int a[maxn];int b[maxn];int n;int main(){ int m=0; cin>>n;//元素个数 for(int i=1;i<=n;++i) { sc...原创 2018-05-11 19:12:24 · 181 阅读 · 0 评论 -
【网络流】最大流之Dinic(模板)
#include <bits/stdc++.h>using namespace std;const int Max=50005;const int inf=1e9+7;int n,m,s,t,size=1;long long ans;int first[Max],depth[Max];struct shu{int to,len,next;};shu bian[Max*2...原创 2018-05-07 21:59:30 · 294 阅读 · 0 评论