题目链接:传送门 题目大意:给你一副无向图,求解图的顶点连通度 题目思路:模板(图论算法理论,实现及应用 P396) Menger定理:无向图G的顶点连通度k(G)和顶点间最大独立轨数目之间存在如下关系: 1.若G是完全图,k(G)=|V(G)|-1 2.若G不是完全图,k(G)=min{P(A,B)}  其中A,B不直接相连 #include <iostream> #include <cstdio> #include <cstdlib> #include <cm…
题意:求一个无向图的点连通度.点联通度是指,一张图最少删掉几个点使该图不连通:若本身是非连通图,则点连通度为0. 分析:无向图的点连通度可以转化为最大流解决.方法是:1.任意选择一个点作为源点:2.枚举所有与该点间没有边的点作为汇点:3.将每个点拆为入点和出点,入点到出点建一条流量为1的边:4.原本有边关系的两点,建流量为正无穷的双向边:5.每次跑出最大流,其中最小值即点连通度,若最小值为正无穷,则说明点连通度为|顶点数|. #include<iostream> #include<cst…
Tarjan 求强连通分量模板.参考博客 #include<stdio.h> #include<stack> #include<algorithm> using namespace std; ; + ; struct EDGE{ int v, nxt; }Edge[maxm]; int Head[maxn], cnt; int DFN[maxn], LOW[maxn], color[maxn], INDEX, id; bool vis[maxn]; int N, M;…
解题关键:割点模板题. #include<cstdio> #include<cstring> #include<vector> #include<stack> using namespace std; #define N 1010 int n,m,ans,pd,son,cut[N],low[N],dfn[N]; stack<int>s; ; struct Edge{ int nxt; int to; int w; }e[maxn]; int he…
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4738 坑点: 处理重边 图可能不连通,要输出0 若求出的结果是0,则要输出1,因为最少要派一个人 #include<bits/stdc++.h> using namespace std; ; const int inf = 0x3f3f3f3f; struct edge{ int to,cost; }; vector<edge> g[maxn]; int num[maxn],low[max…
给定一个长为 $n$ 的序列和常数 $k$,求此序列的中位数为 $k$ 的区间的数量.一个长为 $m$ 的序列的中位数定义为将此序列从小到大排序后第 $\lceil m / 2 \rceil$ 个数. 解法 直接考虑中位数等于 $k$ 的区间是比较困难的,我们转而考虑中位数大于等于 $k$ 的区间个数.按题目中所采用中位数定义,一个序列的中位数大于等于 $k$ 当且仅当序列中大于等于 $k$ 的元素的数目超过序列长度的一半. 对于某个固定的 $k$,将序列中大于等于 $k$ 的元素替换成 $1$…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711 问题描述:给两个序列a,b,长度分别为n,m(1<=n<=1000000,1<=m<=10000),问序列b是否为序列a的子序列,若是:返回a中最左边的与b相等的子序列的首元素下标:若不是,输出-1. 目的:方便以后查看KMP算法中next[]的模板 Number Sequence Time Limit: 10000/5000 MS (Java/Others)    Memory…
//LCS模板,求长度,并记录子串  //亦可使用注释掉的那些代码,但所用空间会变大 #include<iostream> #include<cstring> #include<cmath> #include<cstdlib> #include<cstdio> using namespace std; #define N 5005 int len[N][N]; char str1[N],str2[N],str3[N]; int k; int lc…
倍增求lca模板 https://www.luogu.org/problem/show?pid=3379 #include<cstdio> #include<iostream> #include<cmath> #include<cstring> using namespace std; int t,n,cnt,m; int x,y; ][],p,root; ]; ]; ]; ; struct node { int next,to; }e[*]; inline…
整数的阶:设a和n是互素的正整数,使得a^x=1(mod n)成立的最小的正整数x称为a模n的阶 //求阶模板:A^x=1(mod M),调用GetJie(A,M) //输入:10^10>A,M>1 //输出:无解返回-1,有解返回最小正整数x //复杂度:O(M^(0.5)) long long gcd(long long a,long long b) { ) return a; return gcd(b,a%b); } //欧拉函数:复杂度O(n^(0.5)),返回[1,n-1]中所有和n…