图论
文章平均质量分 50
王猛旗
在读研究僧
展开
-
最短路<dijk>
题意:有n个城市,有m条路,给出每条路的出发和结束的城市及长度,求从第一个城市到最后一个城市的最短路。按格式输出。 power oj 2443题解:标准dijk算法。 #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> using namespace std; const int INF=0x3f3f3f原创 2016-06-13 18:42:03 · 344 阅读 · 0 评论 -
最短路径问题/Spfa
题目链接题目描述给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。 输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p。最后一行是两个数 s,t;起点s,终点。n和m为0时输入结束。(1<n<=1000, 0<m<100000, s !=原创 2016-07-31 20:43:49 · 274 阅读 · 0 评论 -
最小点集覆盖/HDU2119
题目连接先试一下题/?/ 最小点集覆盖=最大匹配/*根据i、j建图,跑一边最大匹配 */ #include<cstdio> #include<cstring> using namespace std; const int maxn=100+5; int maze[maxn][maxn]; int f[maxn]; bool vis[maxn]; int n,m,ans=0; bool machin原创 2016-08-04 15:16:03 · 582 阅读 · 0 评论 -
拓扑排序<反向拓扑+有向环的判断>
题目链接#include <set> #include <map> #include <cmath> #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> typedef long long LL; using namespace std; const int i原创 2016-08-02 20:53:57 · 894 阅读 · 0 评论 -
最小点集覆盖=最大匹配<二分图>/证明
最小点集覆盖==最大匹配。首先,最小点集覆盖一定>=最大匹配,因为假设最大匹配为n,那么我们就得到了n条互不相邻的边,光覆盖这些边就要用到n个点。 现在我们来思考为什么最小点击覆盖一定<=最大匹配。任何一种n个点的最小点集覆盖,一定可以转化成一个n的最大匹配。因为最小点集覆盖中的每个点都能找到至少一条只有一个端点在点集中的边。 如果找不到则说明该点所有的边的另外一个端点都被覆盖,所以该点则没必要被覆转载 2016-08-04 14:41:10 · 644 阅读 · 0 评论 -
最小点覆盖
题目连接/* 最小点覆盖为:在一个二分图中,选取最少的点可以把所有的变覆盖, 点的最少个数就是最小点覆盖。 最小点覆盖=最大二分匹配。 克鲁斯卡尔算法。 关于本题: £:把从零开始,转化成从一开始。 £:起点不用加入E[],因为机器的起始状态就是1,或者加入E[]但是不参加计算,(我采用的是第二种。) */ #include<cstdio> #原创 2016-08-07 19:47:23 · 2224 阅读 · 3 评论 -
HDU1492/The number of divisors(约数) about Humble Numbers
题目连接The number of divisors(约数) about Humble NumbersTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3416 Accepted Submission(s): 1676Problem原创 2016-08-08 14:51:58 · 326 阅读 · 0 评论