![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
k__opp
这个作者很懒,什么都没留下…
展开
-
最短网络——prim,kruskal算法简单应用
农夫约翰被选为他们镇的镇长! 他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。 约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。 约翰的农场的编号是1,其他农场的编号是 2∼n。 为了使花费最少,他希望用于连接所有的农场的光纤总长度尽可能短。 你将得到一份各农场之间连接距离的列表,你必须找出能连接所有农场并使所用光纤最短的方案。 输入格式 第一行包含一个整数 n,表示农场个数。 接下来 n 行,每行包含 n 个整数,输入一个对角线上全是0的对称矩阵。 其中第 x+1原创 2020-09-15 22:54:44 · 176 阅读 · 0 评论 -
牛站——bellmanford 不是正解
给定一张由T条边构成的无向图,点的编号为1~1000之间的整数。 求从起点S到终点E恰好经过N条边(可以重复经过)的最短路。 注意: 数据保证一定有解。 输入格式 第1行:包含四个整数N,T,S,E。 第2…T+1行:每行包含三个整数,描述一条边的边长以及构成边的两个点的编号。 输出格式 输出一个整数,表示最短路的长度。 数据范围 2≤T≤100, 2≤N≤106 输入样例: 2 6 6 4 11 4 6 4 4 8 8 4 9 6 6 8 2 6 9 3 8 9 输出样例: 10 心态炸裂,不知道是网站的原创 2020-09-12 18:35:35 · 169 阅读 · 0 评论 -
最短路计数--应用spfa算法
给出一个 N 个顶点 M 条边的无向无权图,顶点编号为 1 到 N。 问从顶点 1 开始,到其他每个点的最短路有几条。 输入格式 第一行包含 2 个正整数 N,M,为图的顶点数与边数。 接下来 M 行,每行两个正整数 x,y,表示有一条顶点 x 连向顶点 y 的边,请注意可能有自环与重边。 输出格式 输出 N 行,每行一个非负整数,第 i 行输出从顶点 1 到顶点 i 有多少条不同的最短路,由于答案有可能会很大,你只需要输出对 100003 取模后的结果即可。 如果无法到达顶点 i 则输出 0。 数据范围原创 2020-09-07 20:00:05 · 153 阅读 · 0 评论 -
新年好--spfa 应用
重庆城里有 n 个车站,m 条 双向 公路连接其中的某些车站。 每两个车站最多用一条公路连接,从任何一个车站出发都可以经过一条或者多条公路到达其他车站,但不同的路径需要花费的时间可能不同。 在一条路径上花费的时间等于路径上所有公路需要的时间之和。 佳佳的家在车站 1,他有五个亲戚,分别住在车站 a,b,c,d,e。 过年了,他需要从自己的家出发,拜访每个亲戚(顺序任意),给他们送去节日的祝福。 怎样走,才需要最少的时间? 输入格式 第一行:包含两个整数 n,m,分别表示车站数目和公路数目。 第二行:包含五个原创 2020-09-06 20:22:40 · 96 阅读 · 0 评论 -
通信道路-spfa应用
在郊区有 N 座通信基站,P 条 双向 电缆,第 i 条电缆连接基站Ai和Bi。 特别地,1 号基站是通信公司的总站,N 号基站位于一座农场中。 现在,农场主希望对通信线路进行升级,其中升级第 i 条电缆需要花费Li。 电话公司正在举行优惠活动。 农产主可以指定一条从 1 号基站到 N 号基站的路径,并指定路径上不超过 K 条电缆,由电话公司免费提供升级服务。 农场主只需要支付在该路径上剩余的电缆中,升级价格最贵的那条电缆的花费即可。 求至少用多少钱可以完成升级。 输入格式 第1行:三个整数N,P,K。 第原创 2020-09-06 20:10:46 · 99 阅读 · 0 评论 -
二分图 匈牙利算法——二分图的最大匹配
给定一个二分图,其中左半部包含n1个点(编号1-n1),右半部包含n2个点(编号1-n2),二分图共包含m条边。 数据保证任意一条边的两个端点都不可能在同一部分中。 请你求出二分图的最大匹配数。 二分图的匹配:给定一个二分图G,在G的一个子图M中,M的边集{E}中的任意两条边都不依附于同一个顶点,则称M是一个匹配。 二分图的最大匹配:所有匹配中包含边数最多的一组匹配被称为二分图的最大匹配,其边数即为最大匹配数。 输入格式 第一行包含三个整数 n1、 n2 和 m。 接下来m行,每行包含两个整数u和v,表示左原创 2020-09-05 16:39:01 · 118 阅读 · 0 评论 -
二分图——染色法判断二分图
给定一个n个点m条边的无向图,图中可能存在重边和自环。 请你判断这个图是否是二分图。 输入格式 第一行包含两个整数n和m。 接下来m行,每行包含两个整数u和v,表示点u和点v之间存在一条边。 输出格式 如果给定图是二分图,则输出“Yes”,否则输出“No”。 数据范围 1≤n,m≤105 输入样例: 4 4 1 3 1 4 2 3 2 4 输出样例: Yes 二分图 可以将所有点划分到两个集合中,且两个集合内部的点没有边连接。性质:二分图当且仅当图中不含有奇数环。 染色法 只要确定了一个点的颜色,所有点的颜原创 2020-09-04 23:45:42 · 316 阅读 · 0 评论 -
Kruskal(克鲁斯卡尔)算法求最小生成树 O(mlogm)
给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数。 求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible。 给定一张边带权的无向图G=(V, E),其中V表示图中点的集合,E表示图中边的集合,n=|V|,m=|E|。 由V中的全部n个顶点和E中n-1条边构成的无向连通子图被称为G的一棵生成树,其中边的权值之和最小的生成树被称为无向图G的最小生成树。 输入格式 第一行包含两个整数n和m。 接下来m行,每行包含三个整数u,v,w,表示点u和点v之间存在一条权值为w的边。原创 2020-09-04 21:33:27 · 212 阅读 · 2 评论 -
Prim(普利姆)算法求最小生成树 O(N^2)
给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数。 求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible。 给定一张边带权的无向图G=(V, E),其中V表示图中点的集合,E表示图中边的集合,n=|V|,m=|E|。 由V中的全部n个顶点和E中n-1条边构成的无向连通子图被称为G的一棵生成树,其中边的权值之和最小的生成树被称为无向图G的最小生成树。 输入格式 第一行包含两个整数n和m。 接下来m行,每行包含三个整数u,v,w,表示点u和点v之间存在一条权值为w的边。原创 2020-09-03 20:35:17 · 184 阅读 · 0 评论 -
floyd算法求最短路--多源汇最短路
给定一个n个点m条边的有向图,图中可能存在重边和自环,边权可能为负数。 再给定k个询问,每个询问包含两个整数x和y,表示查询从点x到点y的最短距离,如果路径不存在,则输出“impossible”。 数据保证图中不存在负权回路。 输入格式 第一行包含三个整数n,m,k 接下来m行,每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。 接下来k行,每行包含两个整数x,y,表示询问点x到点y的最短距离。 输出格式 共k行,每行输出一个整数,表示询问的结果,若询问两点间不存在路径,则输出“imp原创 2020-09-03 19:59:04 · 135 阅读 · 0 评论 -
spfa判断负环--常用的
给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数。 请你判断图中是否存在负权回路。 输入格式 第一行包含整数n和m。 接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。 输出格式 如果图中存在负权回路,则输出“Yes”,否则输出“No”。 数据范围 1≤n≤2000, 1≤m≤10000, 图中涉及边长绝对值均不超过10000。 输入样例: 3 3 1 2 -1 2 3 4 3 1 -4 输出样例: Yes #include<bits/stdc++原创 2020-09-03 19:45:28 · 115 阅读 · 0 评论 -
spfa求最短路--存在负权边
给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数。 请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出impossible。 数据保证不存在负权回路。 输入格式 第一行包含整数n和m。 接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。 输出格式 输出一个整数,表示1号点到n号点的最短距离。 如果路径不存在,则输出”impossible”。 数据范围 1≤n,m≤105, 图中涉及边长绝对值均不超过10000。 输入样例: 3 3 1原创 2020-09-02 23:46:42 · 244 阅读 · 0 评论