
图论
赤兔码
我服了
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
最大独立集 最大团
最大团就是一个无向图中找到一个点集,这集合中的任意两个点直接都有边直接相连,点数最大的点集就是最大团。 最大独立集就是一个集合中的任意两个点之间都没有边相连接,最大的点集就是最大独立集。 图G的最大独立集点数就是图G的补图Gv的最大团。 Bron-Kerbosch 算法求最大团,本质上就是爆搜加剪枝,最多能跑100的稠密图和1000左右甚至上万的稀疏图。 ...原创 2020-05-05 13:30:10 · 449 阅读 · 0 评论 -
网络流模板+费用流模板
注意tot是从1开始,边的数量m为点的平方,即n*n。 复杂度o(n * m * m)。 初始化memset(head,0,sizeof(head)) #include<iostream> #include<cstdio> #include<vector> #include<queue> #include<cstring> using n...原创 2019-12-05 18:42:48 · 192 阅读 · 0 评论 -
道路与航线 BZOJ2200
H. Delivery Route 算法竞赛进阶指南P358例题 #include<iostream> #include<cstdio> #include<vector> #include<queue> #include<cstring> using namespace std; const int MAX_N=50010; const ...原创 2019-12-03 19:31:25 · 236 阅读 · 0 评论 -
Little M's attack plan
Little M’s attack plan 题意:给一颗带有权值的树,然后q个询问,每个询问x和k,回答与点x的距离在k以内的所有点的权值和。 思路:容斥原理,以下是对于每个询问的回答,dp[i][j]代表点i的子树中的所有点距离点i在j个单位距离的点的权值和。 一开始开了个dp[MAX_N][110]的数组,数组太大而且会T。 scanf("%d%d",&x,&k); lo...原创 2019-11-14 22:26:23 · 227 阅读 · 0 评论 -
二分图的必须边和可行边
给定一张二分图,其最大匹配的方案不一定是唯一的。若任何一个匹配方案的匹配边都包含(x,y),则称(x,y)为二分图最大匹配的必须边(可以理解为如果不匹配这条边的话二分图最大匹配就少一条)。若(x,y)至少属于一个最大匹配的方案,则称(x,y)为二分图最大匹配的可行边(可以理解为这条边如果不匹配的话还可以再用其两个点再匹配出其他边,使得最大匹配不变)。 必须边判定条件:(x,y)流量为1,且在残量网...原创 2019-11-13 17:21:25 · 451 阅读 · 0 评论 -
SPFA求最大路
求最长路可以将边权乘以-1,然后求最短路即可,之后最短路取相反数就是最大路。 SPFA板子 vector<int>v[MAX_N],w[MAX_N]; int have[MAX_N],dis[MAX_N]; void spfa(int be){ int i; queue<skt>q; skt k; have[be]=true; k.x...原创 2019-10-20 00:13:41 · 655 阅读 · 0 评论 -
P5590 赛车游戏
P5590 赛车游戏 自由给有向边赋值,每个边为1-9,并且点1到点n每条路径长度都一样。 首先应该从1跑一遍正图,将可以到达的点标记,然后再在n跑一遍反图,并且标记,然后两次都标记的点才在比赛的路径上,即满足1到其中的点所有路径长度都一样。然后如果在比赛的路径中有环的话一定不符合,所以-1,如果无环就直接可以拓扑了。 注意求在比赛上的路径要两次都标记才行,因为如果仅仅从1可以到,而从n到不了不可...原创 2019-10-18 13:35:25 · 231 阅读 · 0 评论 -
HDU-3751
HDU CakeMan D是卖蛋糕的,S是卖蛋糕的人的家,C是城管的家。D要回家按最短路回家,而C要从最短路的必经之路逮住他,求C到D回家的必经之路的最短距离。 知识点:求最短路必经点,将最短路找出来,然后dp_s[i][j]为到S点的路径数量,dp_d[i][j]为到D点的路径数量,sum为S点到D点的路径数量,如果dp_s[i][j]*dp_d[i][j]=sum的话那么点(i,j)就是最短路...原创 2019-10-16 21:41:11 · 320 阅读 · 0 评论 -
P1963 [NOI2009]变换序列 (二分图匹配)
P1963 [NOI2009]变换序列 匹配找字典序最小的匹配答案,因为如果从前往后找前面虽然选了字典序最小的合适的数,但是因为后面的匹配可能会抢前面的匹配,导致前面的匹配不是最大,所以可以逆向思维,从后往前匹配,前面的会优先抢后面的字典序最小的匹配,所以可以使字典序最小。 #include<iostream> #include<cstdio> #include<ve...原创 2019-10-13 14:27:24 · 300 阅读 · 0 评论 -
有向图的联通性
强联通是有向图G中u和v两个点可以互相到达,则u和v即为强联通。 强联通分量是这一部分联通块的所有点两两相互强联通,即SCC。 求SCC Kosaraju算法 利用补图 const int MAX_N=10010; vector<int>v[MAX_N],rv[MAX_N]; vector<int>s; int vis[MAX_N],rvis[MAX_N],ans;//an...原创 2019-10-10 14:38:18 · 1217 阅读 · 0 评论 -
无向图的连通性
求割点 vector<int>v[MAX_N]; int low[MAX_N],num[MAX_N],cnt; bool iscut[MAX_N]; void dfs(int now,int fa){ low[now]=num[now]=++cnt; int kid=0; for(i=0;i<v[now].size();i++){ int to=v[now][i]; ...原创 2019-10-10 13:55:32 · 459 阅读 · 0 评论 -
问题 B: 小说(二分最短路)
题目描述 由于小X是一位奆老,奆老总是忙得一刻也停不下来。他刚刚准备完食物,小X童年的挚友小S和小Z来找他帮忙了…… 小S和小Z十分喜欢看网络写手“25”的小说,但由于需要付费才能阅读,而小S和小Z的零花钱有非常少,他们只能找小X靠黑科技侵入给网站,把小说给他们。 然而小X又非常的爱慕虚荣,他要小S和小Z到自己家里来取小说。 小S、小Z和小X都居住在扬中市,扬中市共有n个小区,m条主干道(假设每条...原创 2019-09-20 14:43:56 · 355 阅读 · 0 评论 -
P4568 [JLOI2011]飞行路线 (分层图最短路 dp思想)
k次免费机会最短路。 两种思路:1.dp;dis[to][free]代表从出发点到to点用了free次免费机会的最短路,然后dijkstra跑。 2.建分层图;在建边时比如a,b,c,建边时就建(a0+a,b0+b,c)(b0+b,a0+a,c)(a1+a,b1+b,0)…(ak+a,bk+b,0)(bk+b,ak+a,c),然后跑dijkstra。比起第一种方法占内存,因为边的数量是m*(k+1...原创 2019-09-20 13:14:50 · 232 阅读 · 0 评论 -
Bellman-Ford 算法判是否有负权环
struct skt{ int from,to; double cost; }edges[1100]; int cnt,n; bool find_(int s){ int i,j; double d[110]; for(i=0;i<=100;i++) d[i]=0; d[s]=1; for(i=0;i<n;i++){ ...原创 2019-08-03 15:27:49 · 200 阅读 · 0 评论 -
拓扑排序判断有向图是否存在环
vector<int>v[MAX_N]; int n,m,sum[MAX_N]; bool topo(){ int num=0; queue<int>q; //queue<int,vector<int>,greater<int> >q; for(int i=0;i<n;i++){ if(sum[i]==0) q.pu...原创 2019-08-03 15:23:01 · 736 阅读 · 0 评论 -
Another Postman Problem
Another Postman Problem Chinese Postman Problem is a very famous hard problem in graph theory. The problem is to find a shortest closed path or circuit that visits every edge of a (connected) undirec...原创 2019-05-09 21:39:56 · 232 阅读 · 0 评论