![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
爱玲姐姐
大家好,我是计爱玲,英文名:Cathy,是一名前端开发工程师,热爱解锁各种前端新技术。我的爱豆是王一博,当然我也想认识更多同行的帅哥,
我的微信jal517486222,欢迎加我好友交流编程技术*^_^*
个人网站:https://jiailing.com
展开
-
PAT-Top-1003 Universal Travel Sites (35分)网络流最大流
1003 Universal Travel Sites (35分)题目传送门:1003 Universal Travel Sites (35分)一、题目大意二、解题思路网络流问题,第一次尝试,看了刘汝佳的《算法竞赛入门经典》上的例子和代码,理解了后自己写了出来,居然真的AC了,????????☺️三、AC代码#include<bits/stdc++.h>using namespace...原创 2020-02-15 16:36:43 · 1908 阅读 · 0 评论 -
nyist 230 彩色棒 (字典树+并查集+欧拉通路)
彩色棒 (nyist 230)解题思路: 考点 算法 数据结构:欧拉回路、并查集、字典树 这道题是一个很好的图论综合题,题目说的是求给出的m个棒子是否能够拼接成一个棒子,只有两个棒子的某一端颜色相同才能拼接。 1. 首先,我们要将输入的字符串转化为整型的数字,作为无向图的点,由于数据太大,所以不能用map,要用字典树来存储 2. 然后判断这个无向图是否连通,如果不连通...原创 2018-05-27 21:57:38 · 728 阅读 · 0 评论 -
nyist 237 游戏高手的烦恼(二分图最小覆盖==最大匹配---匈牙利算法)
游戏高手的烦恼(nyist 237)解题思路: 考点:二分图的最小覆盖 == 最大匹配 算法:匈牙利算法 题目分析:如果图上的第i行的第j列有敌人,则表示i与j有相连。求最少放多少个炸弹可以炸掉所有敌人,每个炸弹可以炸掉所在行或列的所有敌人,行和列可以看成二分图的左部和右部。即求选最少的点,其发出的边可以覆盖整个图,也就是求二分图的最小覆盖,最小覆盖在数值上等于最大匹...原创 2018-05-29 13:43:51 · 737 阅读 · 0 评论 -
nyist203 三国志 (最短路径-01背包)
三国志 (nyist 203) 解题思路请看代码块中的注释~JAVA版AC代码:package nyist.part8graph;import java.util.Arrays;import java.util.Scanner;/** * 考查算法:最短路,01背包 * 由于每个武将到达一个城池后,如果拿下宝藏,就得留下来镇守,即不能离开, * 所以可以使用Di...原创 2018-05-24 19:50:32 · 793 阅读 · 0 评论 -
Dijkstra算法 单源最短路 链式前向星存图的边 ---- 啊哈算法
// Dijkstra算法,链式前向星存图的边// Created by jal on 18-9-2.//#include <bits/stdc++.h>using namespace std;const int MAXN = 100;const int MAXM = 100*100;struct Edge{ int val, to, next;};int ...原创 2018-09-02 17:50:47 · 974 阅读 · 0 评论 -
Floyd算法_任意两点间最短路 ---- 啊哈算法
//// Created by jal on 18-9-3.//#include &lt;bits/stdc++.h&gt;using namespace std;int n,m;const int MAXN = 50,MAX = 99999;int dis[MAXN][MAXN];void init(){ for(int i = 1; i &lt;= n; i++){...原创 2018-09-03 08:34:18 · 872 阅读 · 0 评论 -
Bellman-Ford_解决负权边_单源最短路 ---- 啊哈算法
//// Created by jal on 18-9-3.//#include <bits/stdc++.h>using namespace std;const int MAXN = 50,MAXM = 10000, MAX = 99999;int u[MAXM], v[MAXM], w[MAXM], dis[MAXN];int n,m;void init(){ ...原创 2018-09-03 09:27:15 · 943 阅读 · 0 评论 -
Bellman-Ford_检测负权回路 ---- 啊哈算法
//// Created by jal on 18-9-3.//#include <bits/stdc++.h>using namespace std;const int MAXN = 50, MAXM = 10000, MAX = 99999;int u[MAXM], v[MAXM], w[MAXM], dis[MAXN];int n, m;void init(...原创 2018-09-03 13:47:56 · 954 阅读 · 0 评论 -
并查集 ---- 啊哈算法
//// Created by jal on 18-9-3.//#include <bits/stdc++.h>using namespace std;const int MAXN = 100;int n,m;int F[MAXN];int father(int u){ return F[u] == u ? u : F[u] = father(F[u]);...原创 2018-09-03 13:57:41 · 1111 阅读 · 0 评论 -
算法集训----图论 备课笔记
一、图的存储邻接矩阵 (顶点数&amp;lt;1000)邻接表 (vector存储相邻顶点)链式前向星 (head数组初始化-1 add函数添加边)二、图的遍历DFS 深度优先搜索 (栈)BFS 广度优先搜索 (队列)三、最短路径Dijkstra算法(迪杰斯特拉算法) 单源最短路径 贪心Floyd算法(佛洛依德算法)多源最短路算法 动态规划最小生成树prim算法(普里姆...原创 2018-10-04 20:14:02 · 846 阅读 · 0 评论 -
PAT-A-1003 图论Dijkstra算法+DFS打表(C++题解)
题目大意题目传送门:PAT-A-1003求最短路径的数量,和最短路径中的最大点权和解题思路Dijkstra算法求最大点权和的最短路径,+DFS(打表)求最短路径数量AC代码代码解析见文中注释部分#include <bits/stdc++.h>using namespace std;template <typename T = int>T read(){...原创 2019-07-24 00:38:27 · 913 阅读 · 0 评论 -
nyist120 校园网络 (Tarjan算法 / 强连通分量)
校园网络(nyist 120)解题思路请看代码块中的注释~import java.util.Scanner;import java.util.Stack;import java.util.Vector;/**考点:强连通分量 * 考查算法:Tarjan算法 * 解析: * 本题需要求给定的有向图中有多少个强连通分量, * 然后将强连通分量缩点, * 最后求缩点后的有向无...原创 2018-05-22 13:39:51 · 806 阅读 · 0 评论 -
nyist 211 POJ3660 Cow Contest(传递闭包、Floyd算法)
Cow Contest (nyist 211)解题思路: 考点:传递闭包 考查算法:Floyd算法 题目大意:有n头牛,有m条关系,每条关系指出了第一头牛能战胜第二头牛,这种战胜关系具有传递性。比如说A战胜B,B战胜C,则A战胜C 求有多少头牛的成绩能被确定。 解题关键:如果某头牛能战胜的数目与能战胜它的数目相加之和等于n-1,则说明该头牛的成绩能被确定...原创 2018-05-25 20:00:19 · 774 阅读 · 0 评论 -
链式前向星
本文为转载,点击此处查看原文我们首先来看一下什么是前向星.前向星是一种特殊的边集数组,我们把边集数组中的每一条边按照起点从小到大排序,如果起点相同就按照终点从小到大排序, 并记录下以某个点为起点的所有边在数组中的起始位置和存储长度,那么前向星就构造好了.用len[i]来记录所有以i为起点的边在数组中的存储长度. 用head[i]记录以i为边集在数组中的第一个存储位置.那么对...转载 2017-12-09 20:16:17 · 721 阅读 · 0 评论 -
HDU 3394 Railway (求割点,桥)
Railway(HDU3394)Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3188 Accepted Submission(s): 1086Problem Description There are some lo...原创 2018-02-18 22:44:39 · 747 阅读 · 0 评论 -
HDU 3749 Financial Crisis(双连通分量)
本题考察的是无向图的点双连通分量Financial Crisis(HDU3749)Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1000 Accepted Submission(s): 325Proble...原创 2018-02-18 22:29:53 · 754 阅读 · 0 评论 -
POJ1144 Network (Tarjan算法求无向图的割点)
NetworkTime Limit: 1000MS Memory Limit: 10000K Total Submissions: 15194 Accepted: 6906 DescriptionA Telephone Line Company (TLC) is establishing a new telephone cable network. They a...原创 2018-02-18 22:18:07 · 724 阅读 · 0 评论 -
POJ1523 SPF (求割点 Tarjan算法)
本题考察无向图的割点SPF(POJ 1523)Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9758 Accepted: 4395 DescriptionConsider the two networks shown below. Assuming that data moves ...原创 2018-02-18 22:15:23 · 765 阅读 · 0 评论 -
POJ 3352 Road Construction(双连通分量Tarjan算法)
本题考察的无向图的边双连通分量Road Construction(POJ 3352)Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 12831 Accepted: 6489 DescriptionIt’s almost summer time, and that means t...原创 2018-02-18 22:12:29 · 791 阅读 · 0 评论 -
POJ 3177 Redundant Paths (双连通分量Tarjan算法)
本题是求无向图的边双连通分量Redundant Paths(POJ 3177)Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16954 Accepted: 7075 DescriptionIn order to get from one of the F (1 <= F...原创 2018-02-18 21:54:51 · 741 阅读 · 0 评论 -
POJ 3311 Hie with the Pie (弗洛伊德/TSP/状态压缩)
Hie with the Pie (POJ3311)Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 8639 Accepted: 4722 DescriptionThe Pizazz Pizzeria prides itself in delivering pizzas to its custome...原创 2018-02-23 23:24:25 · 1221 阅读 · 0 评论 -
Tarjan三大算法
Robert Endre Tarjan是一个美国计算机学家,他传奇的一生中发明了无数算法,统称为Tarjan算法。其中最著名的有三个,分别用来求解 1)有向图的强连通分量 2) 无向图的双联通分量 3) 最近公共祖先问题 一:有向图的强连通分量算法介绍(摘自百度百科) 如果两个顶点可以相互通达,则称两个顶点强连通(strongly connected)。如...原创 2018-03-31 21:25:36 · 3461 阅读 · 0 评论 -
POJ3615(Cow Hurdles)图论-Floyd算法JAVA高速IO外挂!
POJ3615(Cow Hurdles)图论-Floyd算法JAVA高速IO外挂!package classical_algorithm.graph.FloydWarshall;//http://poj.org/problem?id=3615/** * Created by jal on 2018/4/13 0013. */import static java.util....原创 2018-04-13 22:08:35 · 821 阅读 · 0 评论 -
图中连通块的个数:并查集
图的连通性问题 本文为转载,点击查看原文在地图上有若干城镇(点),已知所有有道路直接相连的城镇对。要解决整幅图的连通性问题。比如,随意给你两个点,让你判断它们是否连通;或者问你整幅图一共有几个连通块,也就是被分成了几个互相独立的块。 修路工程问题会问还需要修几条路才能将所有城镇连通起来,实质就是求有几个连通块。如果只有1个连通块,说明整幅图上的点都连起来了,不用再修路了;如果是2...转载 2018-01-18 12:02:59 · 1909 阅读 · 1 评论