图论
文章平均质量分 53
Guapifang
这个作者很懒,什么都没留下…
展开
-
LeetCode 802. 找到最终的安全状态--找环
找到最终的安全状态在有向图中,以某个节点为起始节点,从该点出发,每一步沿着图中的一条有向边行走。如果到达的节点是终点(即它没有连出的有向边),则停止。对于一个起始节点,如果从该节点出发,无论每一步选择沿哪条有向边行走,最后必然在有限步内到达终点,则将该起始节点称作是 安全 的。返回一个由图中所有安全的起始节点组成的数组作为答案。答案数组中的元素应当按 升序 排列。该有向图有 n 个节点,按 0 到 n - 1 编号,其中 n 是 graph 的节点数。图以下述形式给出:graph[i] 是编号 .原创 2021-08-05 15:31:21 · 79 阅读 · 0 评论 -
LeetCode 1584. 连接所有点的最小费用--最小生成树裸题
连接所有点的最小费用给你一个points 数组,表示 2D 平面上的一些点,其中 points[i] = [xi, yi] 。连接点 [xi, yi] 和点 [xj, yj] 的费用为它们之间的 曼哈顿距离 :|xi - xj| + |yi - yj| ,其中 |val| 表示 val 的绝对值。请你返回将所有点连接的最小总费用。只有任意两点之间 有且仅有 一条简单路径时,才认为所有点都已连接。示例 1:输入:points = [[0,0],[2,2],[3,10],[5,2],[7,0]].原创 2021-03-01 22:38:07 · 126 阅读 · 0 评论 -
LeetCode 1129. 颜色交替的最短路径--进行路径标记后BFS
颜色交替的最短路径在一个有向图中,节点分别标记为 0, 1, …, n-1。这个图中的每条边不是红色就是蓝色,且存在自环或平行边。red_edges 中的每一个 [i, j] 对表示从节点 i 到节点 j 的红色有向边。类似地,blue_edges 中的每一个 [i, j] 对表示从节点 i 到节点 j 的蓝色有向边。返回长度为 n 的数组 answer,其中 answer[X] 是从节点 0 到节点 X 的红色边和蓝色边交替出现的最短路径的长度。如果不存在这样的路径,那么 answer[x] =.原创 2020-11-20 09:32:47 · 210 阅读 · 0 评论 -
LeetCode 310. 最小高度树--树的直径
最小高度树树是一个无向图,其中任何两个顶点只通过一条路径连接。 换句话说,一个任何没有简单环路的连通图都是一棵树。给你一棵包含 n 个节点的数,标记为 0 到 n - 1 。给定数字 n 和一个有 n - 1 条无向边的 edges 列表(每一个边都是一对标签),其中 edges[i] = [ai, bi] 表示树中节点 ai 和 bi 之间存在一条无向边。可选择树中任何一个节点作为根。当选择节点 x 作为根节点时,设结果树的高度为 h 。在所有可能的树中,具有最小高度的树(即,min(h))被称.原创 2020-11-19 19:51:23 · 329 阅读 · 0 评论 -
PAT甲级 1131 Subway Map (30分)--堆优化迪杰斯特拉最短路+DFS(两种解法)
1131 Subway Map (30分)In the big cities, the subway systems always look so complex to the visitors. To give you some sense, the following figure shows the map of Beijing subway. Now you are supposed to help people with your computer skills! Given the start原创 2020-08-30 22:48:31 · 261 阅读 · 0 评论 -
PAT甲级 1066 Root of AVL Tree (25分)--平衡二叉树裸题模板题
**1066 Root of AVL Tree (25分)**An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child subtrees of any node differ by at most one; if at any time they differ by more than one, rebalancing is done to restore this原创 2020-08-28 23:48:02 · 175 阅读 · 0 评论 -
PAT甲级 1087 All Roads Lead to Rome (30分)--迪杰斯特拉最短路两种解法(DFS暴力搜索+最短路直接优化)
**1087 All Roads Lead to Rome (30分)**Indeed there are many different tourist routes from our city to Rome. You are supposed to find your clients the route with the least cost while gaining the most happiness.Input Specification:Each input file contain原创 2020-08-09 23:01:28 · 161 阅读 · 0 评论 -
洛谷P2149 [SDOI2009]Elaxia的路线--两对点间最短路的最长公共路径
题目描述最近,Elaxia和w**的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们 必须合理地安排两个人在一起的时间。Elaxia和w**每天都要奔波于宿舍和实验室之间,他们 希望在节约时间的前提下,一起走的时间尽可能的长。现在已知的是Elaxia和w**所在的宿舍和实验室的编号以及学校的地图:地图上有N个路 口,M条路,经过每条路都需要一定的时间。 具体地说,就是要求无向图中...原创 2019-11-11 19:19:50 · 428 阅读 · 0 评论 -
二分图最大权/最小权匹配
#include<bits/stdc++.h> using namespace std;const int maxn=1e3,INF=1e9;int W[maxn][maxn],n,m;int Lx[maxn],Ly[maxn];//顶标 int Left[maxn];//右边第i个点对应的左边的点的编号 bool S[maxn],T[maxn];//是否在增广路 ...原创 2019-10-31 10:43:56 · 640 阅读 · 0 评论 -
二分图最大匹配邻接表模板
#include<iostream>#include<cstring>#include<stdio.h>using namespace std;const int maxn=50010;//边数的最大值struct Edge{ int to,next;}edge[maxn];//to 是该边指向的点 next是这个点上次用的边的编号,用来...原创 2019-10-29 22:41:53 · 144 阅读 · 1 评论 -
LCA--最近公共祖先模板
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N=1e4;struct Node{ int v,next;}edge[N<< 1]; int head[N...原创 2019-10-29 22:38:06 · 103 阅读 · 0 评论 -
网络流最大流模板
#include<iostream>#include<string.h>#include<queue>#include<vector>#include<stdio.h>using namespace std;struct Node{ int v,next,w;}edge[200000];int head[20000...原创 2019-10-29 13:34:50 · 112 阅读 · 0 评论 -
洛谷P2341 [HAOI2006]受欢迎的牛|【模板】强连通分量--将强连通分量压缩成一个点
题目背景本题测试数据已修复。题目描述每头奶牛都梦想成为牛棚里的明星。被所有奶牛喜欢的奶牛就是一头明星奶牛。所有奶牛都是自恋狂,每头奶牛总是喜欢自己的。奶牛之间的“喜欢”是可以传递的——如果A喜欢B,B喜欢C,那么A也喜欢C。牛栏里共有N 头奶牛,给定一些奶牛之间的爱慕关系,请你算出有多少头奶牛可以当明星。输入格式 第一行:两个用空格分开的整数:N和M 第二行到第M + 1行:...原创 2019-08-29 21:14:56 · 139 阅读 · 0 评论 -
洛谷P1262 间谍网络--强连通分量压缩为点建图
题目描述由于外国间谍的大量渗入,国家安全正处于高度的危机之中。如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B。有些间谍收受贿赂,只要给他们一定数量的美元,他们就愿意交出手中掌握的全部情报。所以,如果我们能够收买一些间谍的话,我们就可能控制间谍网中的每一分子。因为一旦我们逮捕了一个间谍,他手中掌握的情报都将归我们所有,这样就有可能逮捕新的间谍,掌握新的情报。我们的反间谍机关提供了一份...原创 2019-08-29 21:53:38 · 188 阅读 · 0 评论 -
洛谷P2002 消息扩散--强连通分量压缩成点,判断入度
题目背景本场比赛第一题,给个简单的吧,这 100 分先拿着。题目描述有n个城市,中间有单向道路连接,消息会沿着道路扩散,现在给出n个城市及其之间的道路,问至少需要在几个城市发布消息才能让这所有n个城市都得到消息。输入格式第一行两个整数n,m表示n个城市,m条单向道路。以下m行,每行两个整数b,e表示有一条从b到e的道路,道路可以重复或存在自环。输出格式一行一个整数,表示至少要在几个...原创 2019-08-29 22:21:52 · 206 阅读 · 0 评论 -
P3469 [POI2008]BLO-Blockade--割点+累计上下子树和
题意翻译题目描述在Byteotia有n个城镇。 一些城镇之间由无向边连接。 在城镇外没有十字路口,尽管可能有桥,隧道或者高架公路(反正不考虑这些)。每两个城镇之间至多只有一条直接连接的道路。人们可以从任意一个城镇直接或间接到达另一个城镇。 每个城镇都有一个公民,他们被孤独所困扰。事实证明,每个公民都想拜访其他所有公民一次(在主人所在的城镇)。所以,一共会有n*(n-1)次拜访。不幸的是,一个...原创 2019-08-31 10:44:24 · 137 阅读 · 0 评论 -
洛谷P2746 [USACO5.3]校园网Network of Schools--强连通分量缩点判断出度入度
题目描述一些学校连入一个电脑网络。那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作“接受学校”)。注意即使 B 在 A 学校的分发列表中, A 也不一定在 B 学校的列表中。你要写一个程序计算,根据协议,为了让网络中所有的学校都用上新软件,必须接受新软件副本的最少学校数目(子任务 A)。更进一步,我们想要确定通过给任意一个学校发送新软件,这个软件就会分发到网络中的所有学校。为了...原创 2019-08-31 20:23:21 · 158 阅读 · 0 评论 -
2019ICPC南京网络赛H题--二分+判断负环
As the current heir of a wizarding family with a long history,unfortunately, you find yourself forced to participate in the cruel Holy Grail War which has a reincarnation of sixty years.However,fortun...原创 2019-09-01 19:35:08 · 221 阅读 · 0 评论 -
判断负环模板
#include<bits/stdc++.h>#define INF 0x3f3f3f3fusing namespace std;const int N=100000;struct V{int u,v;int w;}edge[N];int dis[N];int n,m;bool bellman_ford(){memset(dis,INF,sizeof(dis));...原创 2019-09-04 21:45:53 · 153 阅读 · 0 评论 -
图论基本知识
双连通分量双连通分量又分点双连通分量和边双连通分量两种。若一个无向图中的去掉任意一个节点(一条边)都不会改变此图的连通性,即不存在割点(桥),则称作点(边)双连通图。一个无向图中的每一个极大点(边)双连通子图称作此无向图的点(边)双连通分量。求双连通分量可用Tarjan算法。...原创 2019-09-09 20:20:01 · 146 阅读 · 0 评论 -
洛谷P1726 上白泽慧音-最大强连通分量
题目描述在幻想乡,上白泽慧音是以知识渊博闻名的老师。春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄。因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点。人间之里由N个村庄(编号为1…N)和M条道路组成,道路分为两种一种为单向通行的,一种为双向通行的,分别用1和2来标记。如果存在由村庄A到达村庄B的通路,那么我们认为可以从村庄A到达村庄B,记为(A,B)。...原创 2019-08-29 18:56:54 · 115 阅读 · 0 评论