-------图论-------
PosProteus
这个作者很懒,什么都没留下…
展开
-
hdu 3342 Legal or Not (Floyd判圈)
题意:n个人有m个师徒关系,每个人可以有多个徒弟,也可以有多个老师,但任两个人之间不能互为老师,且师徒关系是可传递的。原创 2016-09-16 16:32:13 · 257 阅读 · 0 评论 -
二分图资料
二分图基本概念和最大匹配 http://www.renfei.org/blog/bipartite-matching.html http://www.cnblogs.com/kuangbin/archive/2012/08/26/2657446.html http://wenku.baidu.com/link?url=qdx1qr-kdWgs3RPomqsJ9d8ZMF-ouhUjckzKV...原创 2018-03-06 15:11:16 · 194 阅读 · 0 评论 -
hdu 1054 二分图最大匹配
思路:模板题,注意是无向图,所以最后结果要除以2。点有1500个,邻接矩阵会超时,用了邻接表。 1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<algorithm> 5 #include<cmath> 6 #include<cst...原创 2018-03-06 15:11:19 · 176 阅读 · 0 评论 -
poj 3041 二分图最大匹配
题意:给定一个NxN的网格,其中有k个格点上有障碍物,每次可以消除一行或一列障碍物,问最少几次可以消除全部的障碍物。思路:二分图的经典模型,将所有的行看作二分图中左边的端点,将所有的列看作右边的端点,当格点上有障碍物时,连一条边,问题转变为求二分图的最小顶点覆盖,根据König定理(二分图的最大匹配等于二分图的最小顶点覆盖)求最大匹配数即可 1 #include<cstdio> 2 ...原创 2018-03-06 15:11:22 · 221 阅读 · 0 评论 -
poj 2226 二分图最大匹配
题意:在NxN的网格上,有一些格点是草地,有一些格点是泥地,给你一些宽度为1的长度不限的木板,将泥地全部覆盖,木板可以互相重叠但不能覆盖草地(这一点不同于poj3041)思路:建图比较难想,将每一行上连续的泥地和每一列上连续的泥地计为二分图中的点,每一块泥地对应二分图中的边,就能将问题转化为最小点覆盖,求二分图最大匹配即可 1 #include<cstdio> 2 #include&...原创 2018-03-06 15:11:24 · 296 阅读 · 0 评论 -
poj 2446 二分图最大匹配
题意:给一张m*n的棋盘,上面有k个格子有洞,用1*2的骨牌将棋盘覆盖,每个格子必须被恰好覆盖一次,有洞的地方不能覆盖,问是否存在这样的方案。思路:容易想到将格点作为二分图中的点,骨牌作为二分图中的边(骨牌可能放置时),求二分图的最大匹配,如果匹配数与n*m-k相等,则方案存在,否则不存在;容易想到当n*m-k为奇数时方案一定不存在;构思时卡在怎么将格点用一维坐标表示出来,后来发现是自己蠢了......原创 2018-03-06 15:11:27 · 243 阅读 · 0 评论 -
HDU 3631 floyd
链接:http://acm.hdu.edu.cn/showproblem.php?pid=3631 题意:给定一个有重边的有向带权图,n个点,m条边,q个询问。每个询问分两种,0 x,表示标记x点,1 x y,输出x到y的最短路且经过的都是标记过的点,当x或y为未标记的点时输出ERROR。n<=300,m<=1e5。原创 2016-12-02 23:16:37 · 277 阅读 · 0 评论 -
UVALive 4255 前缀和 拓扑排序
题意:定义为的正负号,现在给出符号矩阵S,找出对应的一个序列A。<=10,序列的长度n<=10. 解法:首先根据连续和转化为前缀和之差的思想,设为,则可表示为-,矩阵中的一项表示了两个之间的大小关系,设=0,问题转化为已知序列的大小关系,求出一个对应的序列B。用拓扑排序可以求解,然后很容易得出序列A#include<bits/stdc++.h>using namespace std;const原创 2016-11-09 10:37:58 · 306 阅读 · 0 评论 -
UVA 10129 欧拉回路 判断连通性
题意:输入n个单词,判断是否可以使这些单词排成一列,每个单词的第一个字母与上一个单词的最后一个字母相同,最后一个字母与下一个单词的第一个字母相同原创 2016-11-08 15:45:18 · 334 阅读 · 0 评论 -
UVA 10054 欧拉回路
题意:有一些五颜六色的珠子,可以按一定的规则串起来:每颗珠子的两半可以是不同的颜色,相邻珠子接触的地方颜色要相同。现在给出N颗珠子及其两半的颜色,问是否可以组成一串,若是则按串的顺序输出。颜色由数字表示,且范围在1到50之间。原创 2016-11-08 14:19:37 · 403 阅读 · 0 评论 -
最短路水题
最短路水题hdu 1596 求边权乘积的最大值,Dijkstra修改下松弛操作即可#include<bits/stdc++.h>using namespace std;const int maxn = 1005;const int INF = 0x3f3f3f3f;double f[maxn][maxn];double d[maxn];bool vis[maxn];int main(){原创 2016-09-29 09:28:23 · 307 阅读 · 0 评论 -
hdu 1533 最小费用最大流模板题
这一题虽然说是模板题,但作为学习了最小费用最大流过程之后的第一题,模型的建立还是一脸懵比,之后通过见识相关的变形再来磨练建模的能力吧 如下是网上题解中关于本题中网络流的建模: 1.所有人到所有的房子均建容量为1,费用为人到房子的曼哈顿距离的流 2.建立超级源点s,s到所有人均建容量为1,费用为0的流 3.建立超级汇点t,所有房子到t均建容量为1,费用为0的流#include<bits/std原创 2016-10-13 18:16:58 · 417 阅读 · 0 评论 -
HDU 3790 又是一道最短路水题
题意:在最短路模板题的基础上,每条边除了长度还存在花费,在满足长度优先最短的情况下,找到最小的花费 解法:适当更改松弛操作即可,同时用Dijkstra写的时候要注意去重边的方式(通过长度来判断而不能通过花费)#include<bits/stdc++.h>using namespace std;typedef long long LL;typedef unsigned long long UL原创 2016-10-12 15:07:56 · 352 阅读 · 0 评论 -
HDU 2544 SPFA+前向星模板题
学习了一下SPFA和前向星 SPFA 复杂度为O(k*e) (k为所有顶点进队的平均次数且k<=2) ,可处理负权边,判负环 前向星是一种静态邻接表,写起来很方便#include<bits/stdc++.h>using namespace std;int n,m,cnt;struct Edge{ int to,next,w;}edge[10005*2];int head[105*原创 2016-10-12 12:15:39 · 383 阅读 · 0 评论 -
POJ 1469 二分图最大匹配
思路:裸的二分图最大匹配 1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<algorithm> 5 #include<cmath> 6 #include<cstdlib> 7 #include<sstream>原创 2018-03-06 15:11:14 · 311 阅读 · 0 评论