模板列表
模板列表数论矩阵快速幂FFT,NTT,FWT莫队最短路链式前向星ac自动机后缀自动机(sam)类欧几里得
最小生成树的拓展本文会随着弟弟我的学习进度来进行更新度限制最小生成树最小度生成树:np-hard最小k度限制生成树:经典问题做法(以下皆假设固定的点为rt):删除rt点,并用剩下的点建一个最小生成树森林如果有p个联通块,要满足最小k度限制生成树必须有$p<=k$。对于每个联通块,找出与rt相连
"<<endl;break;}cur*=prime[dept];dfs(dept+1,cur,num*(i+1),i);}}int main(){int T,i,j,k,temp;long long sum;best=-1;cin>>T;while(T--){cin
----"<<endl;dis[edge[i].to]=dis[temp.n]+edge[i].w;path[edge[i].to]=temp.n;Q.push(Dis(edge[i].to));}}}}int main(){int n,a,b;while(cin>>
我的数论模板最大公因数 int gcd(int a,int b) { return b>0?gcd(b,a%b):a; }扩展欧几里得 int exgcd(int a,int b,long long &d,long long &x,long long &y) { if(
#莫队算法模板莫队算法除了add 和 del 其他部分基本不变,就拿一题的题解来当模板用吧。http://codeforces.com/contest/617/problem/E##题意:给你$n$个数,$m$个查询和一个数值$k$,然后每次查询输入$l,r$并问你区间[l,r]内有几对$i,j$
#我的链式前向星模板链式前向星这个名字一听就很帅int cnt;struct Edge{int next;//与第i条边相同起点相同的下一条边 int to;// 第i条变的终点 int w;//第i条边的权值 }edge[maxn];int head[maxn];//起点为i的第一条边(与输入逆序
第三种最小生成树算法 Borůvka算法基本思路:用定点数组记录每个子树的最近邻居。对于每一条边进行处理:如果这条边连成的两个顶点同属于一个集合,则不处理,否则检测这条边连接的两个子树,如果是连接这两个子树的最小边,则更新 (合并)。作用:那么中算法有什么用呢,Kruskal,prim算法不好吗?它
#include<bits/stdc++.h>using namespace std;const int maxn=1e5+5;const int mod=1e9+7;const int N=9;struct node{long long a[N][N];void init0()//零矩