随笔分类 - 图论
摘要:要先判断是不是二分图。用黑白染色法。 遇到已经染过的跟当前的颜色相同时就说明不是二分图,也即出现了奇环
阅读全文
摘要:先跑一个二分图匹配,然后一一删去匹配上的边,看能不能达到最大匹配数,不能这条边就是重要边
阅读全文
摘要:把矩阵上的1建成边,把边建成点 然后跑一个二分图匹配,就找到了主对角线的元素,之后排个序就可以了
阅读全文
摘要:裸二分图匹配
阅读全文
摘要:二分图最大权值匹配问题。用KM算法。 最小权值的时候把权值设置成相反数
阅读全文
摘要:注意POJ数组越界可能返回TLE!!! 网络流的maxn大小要注意 其他没什么了 裸二分答案+isap乱搞 不过复杂度没搞懂 V=1e3 E = 1e5 那ISAP的O(V^2E)怎么算都不行啊
阅读全文
摘要:bfs的时候用bitset优化一下。 水题
阅读全文
摘要:此题有多种做法。 使用floyd算法预处理最短路,二分答案,对于每一个mid,如果距离比mid小就连边, 注意把每个机器分成m个点。这样跑一个最大匹配,如果都匹配上就可以减小mid值。 用的算法比较多但是条理很清晰 1 #include <cstdio> 2 #include <cstring> 3
阅读全文
摘要:裸生成树 #/*--------------------------------------------------------------------------------------*/ // Helica's header // Second Edition // 2015.11.7 //
阅读全文
摘要:裸最短路 /*--------------------------------------------------------------------------------------*/ // Helica's header // Second Edition // 2015.11.7 // #
阅读全文
摘要:最优比率环问题。二分答案,对于每一个mid,把节点的happy值归类到边上。 对于每条边,用mid×weight减去happy值,如果不存在负环,说明还可以更大。 1 /*----------------------------------------------------------------
阅读全文
摘要:题意:一个N*M的矩阵里有K个观测点,你必须放置天线覆盖所有观测点。每个雷达只能天线两个观测点,这两点必须相邻。计算最少天线数。 做法:将所有相邻的观测点连起来,建图。跑一遍匈牙利算法就计算出了最大的覆盖数,除以二就是天线数。还要加上落单的观测点,每个都需要一个天线。 1 /*-----------
阅读全文
摘要:题意:经典的二分图匹配问题。给出一个N*N矩阵,其中有K个障碍物。一发歼星炮可以清楚一行或者一列上的障碍物。求最少的开炮数。 做法:可以考虑最大点覆盖。建图左边顶点为行,右边顶点为列。若有障碍物则连边。此时最大点覆盖就是最小开炮数,也就是计算二分图最大匹配。使用匈牙利算法即可。 1 /*------
阅读全文
摘要:题意:给出一个图,每个节点都有权值,每条边也有费用。要求建立一颗树,使总花费最小。树上每连一条边的花费定义为孩子节点权值和×此边费用。 做法:分析可知,最终的答案为所有节点的权值×到根节点的距离。可以知道当距离最短时,花费最小。 于是用Dijkstra+优先队列优化就可以搞定了。这题有些卡时间。最后
阅读全文
摘要:两种货币的交换可以当成两条边,建图后跑Bellman_ford算法就好了。 Bellman_ford算法可以用来处理负边权,所以可以判断是否存在负环。反过来就可以判断是否存在正环。 1 /*-------------------------------------------------------
阅读全文
摘要:记忆化数组记录从这个点的最长下降序列,然后乘以这个点的度,就是ans,维护即可。 #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn = 1e5+10; const
阅读全文
摘要:裸网络流题。 1 #include <cstdio> 2 #include <algorithm> 3 #include <cstring> 4 #include <queue> 5 using namespace std; 6 7 const int maxn = 1200; 8 const in
阅读全文
摘要:树上每个元素有一个p,元素之间有距离d,计算一个元素u,使得sigma(d(i,u)*pi)最小。 两次dfs,第一次计算本节点以下的sigma(),第二次利用sump求解出ans。 1 #include <cstdio> 2 #include <algorithm> 3 #include <cst
阅读全文
摘要:有n个家庭,m个房间,一个房间只能两个家庭住。求最大匹配。 比较标准的二分图问题。先初始化把可能的家庭建边,然后跑一边匈牙利算法。 最后的答案是最大匹配数/2,因为建图时有重复。 #include <cstdio> #include <algorithm> #include <cstring> #i
阅读全文
摘要:给出一些球,球内的时间为零,球之间的速度为10每单位。给两个点,求最短时间。把每一个球当做点,球间的距离就是floyd的d数组。之后跑一遍floydwa了两发因为d数组定义成int了#include #include #include #include #include #include #incl...
阅读全文

浙公网安备 33010602011771号