图论
Are_you_ready
这个作者很懒,什么都没留下…
展开
-
受欢迎的牛(有向图的强连通分量)
题目:https://www.acwing.com/problem/content/1176/ 题意:如果A–》B,B–》C,那么A–》C,问在这个有向图中有多少个这样的A,除了A个点外的所有点都能有路走到A。 题解:暴力做法,就是枚举每一个点,看一下其他所有点是否都能到这个点,这个时间复杂度是n方级别的,肯定不行。 如果这个图有拓扑序列的话,那么按照这个拓扑序列走一遍,看看有一个出度为0的点,如果有一个出度为0的点,那么其它所有点就一定能走到这个点,但是这个图可能有环,所以它不一定有拓扑序列。 但是又可以原创 2021-08-04 10:32:51 · 127 阅读 · 0 评论 -
7-14 直捣黄龙 (30 分)(最短路径+城市数量最多+val最大 & 输出路径和路径条数)
题目:https://pintia.cn/problem-sets/1378712428033638400/problems/1378712837397708813 #include <algorithm> #include <bitset> #include <cmath> #include <cstdio> #include <cstdlib> #include <cstring> #include <deque> #i原创 2021-04-05 20:30:26 · 587 阅读 · 0 评论 -
sdut 数据结构实验之图论六:村村通公路(最小生成树Kruskal--加入边 )
更加详细请点击 #include <iostream> #include<algorithm> #include<cstdio> using namespace std; struct node { int x,y; int menoy; } ma[2000]; //用来存边 int far[2000]; //并查集的数组 bool cmp(struct node a,struct node b)//排序 { return a.menoy<原创 2020-11-20 09:39:30 · 250 阅读 · 0 评论 -
SDUT--数据结构实验之图论九:最小生成树(prim算法)
#include <iostream> #include<bits/stdc++.h> using namespace std; const int inf=0x3f3f3f3f; int main() { int m,n; while(~scanf("%d%d",&n,&m)) { int ma[120][120]= {0}; int dis[120]; bool vis[120]= {0};原创 2020-11-27 20:21:38 · 203 阅读 · 0 评论 -
pta 紧急救援 (25分)(记录路径和最短路径条数)
作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候,你的任务是带领你的救援队尽快赶往事发地,同时,一路上召集尽可能多的救援队。 输入格式: 输入第一行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0 ~ (N−1);M是快速道路的条数;S是出发地的城市编号;D是目的地的城市编号。 第二行给出N个正整数,原创 2020-11-30 17:05:51 · 678 阅读 · 0 评论 -
floyed 闭包传递
不能弄错顺序,一定是中间那个for循环到第一个for循环,然后第一个for循环到第三个for循环,这样访问全部 for (int k = 0; k < n; k++) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { a[i][j] = a[i][j]||(a[i][k]&&a[k][j]);原创 2020-09-25 19:37:53 · 87 阅读 · 0 评论