
图论
lixuwei2333
这个作者很懒,什么都没留下…
展开
-
二分图最大匹配
//匈牙利算法bool match(int u){ for(auto v:edge[u]){ if(vis[v])continue; vis[v] = 1; if(!from[v]||match(from[v])){ from[v] = u; return 1; } }...原创 2018-05-03 11:08:31 · 117 阅读 · 0 评论 -
Floyd求最小环模板
int val[maxn + 1][maxn + 1]; // 原图的邻接矩阵inline int floyd(const int &n) { static int dis[maxn + 1][maxn + 1]; // 最短路矩阵 for (int i = 1; i <= n; ++i) for (int j = 1; j <= n; ++j) ...原创 2019-08-19 08:48:50 · 205 阅读 · 0 评论 -
斯坦纳树模板
给出n个点,然后给出m条双向边,边有边权。再给出一个大小为k的点集,求使得点集联通的最小花费。时间复杂度O(n*3^k + cE*2^k),其中c为spfa常数。#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (b); i++)using namespace std;con...原创 2019-07-03 20:11:58 · 489 阅读 · 0 评论 -
13年浙江省赛 Highway Project 【最短路】
·题目链接:https://vjudge.net/problem/ZOJ-3946题目大意:有N个点,编号0到N-1,有M条可选的双向边,边有长度和花费。在保证以0为起点的单源最短路的前提下,使选择的边的花费最小。一眼过去想到的是 对最短路上的边求最小生成树。感觉挺对的,写了很长时间wa了两发后队友指出了发现了错误。首先,最短路选边之后是一个单起点DAG图(把原图中的双...原创 2019-04-10 16:35:57 · 135 阅读 · 0 评论 -
Distinctive Character 【BFS】
给n个二进制串,x与y的距离是二进制上不同的位数。求距离这n个二进制串最近距离最远的二进制串。n<=1e5,二进制串长度<=20做法:建图,共有2^20个点,对于一个点来说,最多有20条边与之相连,边为双向边且边权为1。把起始点扔进队列,然后多源bfs,求深度最深的点。#include <bits/stdc++.h>#define rep(i,...原创 2019-04-05 10:22:06 · 208 阅读 · 0 评论 -
CodeCoder vs TopForces【树状数组 或 强连通分量】
题目链接:https://vjudge.net/problem/Gym-101142C题意,给出n个人在两个网站上的排名,求一个人可能战胜多少个人。x可能战胜y的条件,x至少有一个排名大于y。可能战胜是可传递的,假如a可能战胜b,b可能战胜c,那么a也可能战胜c(即使c的两个排名都大于a)。一开始对于可传递这一个条件没有读懂,以为需要直接可战胜才行。于是...原创 2019-04-04 21:20:52 · 344 阅读 · 0 评论 -
洛谷-货车运输
训练赛遇到了和货车运输一模一样的题:https://vjudge.net/contest/287775#problem/J没有想到最大生成树,当时考虑到了删除无效边,但是并没有意识到删除之后图会退化成树,也没有意识到先对边进行排序。思路:1. 空间不够开N*N,所以不可能直接记录2点之间的答案。2. 所以对于每次查询可能是logn内解决。3. 应该有一些边是没有用的。...原创 2019-03-13 16:23:42 · 238 阅读 · 0 评论 -
tarjan模板
照抄kuangbin模板,感觉很不错。题目链接:https://vjudge.net/problem/ZOJ-3795##include <bits/stdc++.h>#define ll long long#define mp make_pair#define pb push_back#define rep(i,a,b) for(int i = (a); i...原创 2019-03-15 10:39:36 · 331 阅读 · 0 评论 -
Dining (匹配,最大流)
题目链接 题目大意:奶牛喜欢一些种类的食物和饮料,给n种食物,m种饮料,问最多能喂多少奶牛(每种食物和饮料只能使用一次) 思路:把奶牛,食物,饮料都看做点,为了保证路线合法性,奶牛需要在中间,向2边构图。奶牛需要拆点。emmmm如果奶牛喜欢三样东西应该怎么构图?#include <bits/stdc++.h>using namespace std;const int ...原创 2018-07-24 16:34:29 · 384 阅读 · 0 评论 -
POJ - 3436 ACM Computer Factory(最大流,拆点)
题目链接 题目大意:要求经过每个点的流量不超过该点承载的流量上限,求最大流 思路:将a拆成a1和a2,a1作为输入端,a2作为输出端,a1-&gt;a2的边权为流量上限#include &lt;bits/stdc++.h&gt;using namespace std;const int N = 2*100;const int M = N*N;int n,m,s,t,tot;...原创 2018-07-24 15:03:29 · 179 阅读 · 0 评论 -
网络流最大流模板
#include &amp;amp;amp;lt;bits/stdc++.h&amp;amp;amp;gt;using namespace std;const int N = 1e4+100;int n,m,s,t,tot;int head[N];struct node{ int nxt,cap,to;}edge[int(2e5+100)];int cur[N],deep[N];void ae(int u,int v,...原创 2018-07-24 09:57:11 · 304 阅读 · 0 评论 -
sdut2506 完美网络
题目链接感觉这题做的有点迷,如果图是联通图,并且每个节点的度数都大于等于2,那么就是完美网路? 做法:统计差多少度,一条边可以增加2个度,注意一下奇数的情况。 但是题目描述没有保证不存在自回路吧……#include <bits/stdc++.h>#define ll long longusing namespace std;const int N = 2e5+1000...原创 2018-07-17 17:17:18 · 208 阅读 · 0 评论 -
Robots【2019南京网络赛】【DAG图上概率】
题目链接:https://nanti.jisuanke.com/t/41301设day[i]表示以i为起点到终点的期望天数。设ans[i]表示以i为起点到终点的期望得分。显然day特别好求,然后考虑如何借用day去得到ans,这也没什么难的,按求day的那种感觉就能写出方程来,然后验证一下样例就可以了。#include <bits/stdc++.h>#define ...原创 2019-09-06 21:19:00 · 210 阅读 · 0 评论