
图论
Giggle1929
这个作者很懒,什么都没留下…
展开
-
第十八天PAT-A1142 Maximal Clique图论极大团判断模拟题
A1142Description:clique:团,一个无向图的完全子图;Maximal Clique:极大团,如果一个团不被其他任一团所包含,即它不是其他任一团的真子集,则称该图为图G的极大团;给出一个无向图,判断所给序列是不是团、极大团;思路:拿到题思路十分凌乱,经柳神点拨,可以先确定是不是团,然后根据团外的点判断是不是最大团;判断是不是团即判断是不是完全图,对于团内的任意两点确定之间是否存在边相连;判断是不是最大,即遍历团外的所有点,若存在一点使得团内所有点与之都有边相连,则当前团非原创 2020-09-02 17:47:06 · 271 阅读 · 0 评论 -
第十五天PAT-A1126 Eulerian Path欧拉图判断并查集
A1126Description:给出节点数和边数并给出所有边,判断该图是否为欧拉图,若为欧拉图并构成环输出"Eulerian"、不能构成环输出"Semi-Eulerian",非欧拉图输出"Non-Eulerian";思路:规则题目描述得挺清楚,不再赘述,注意判断该图是否为强连通图,非强连通图则非欧拉图,比如对于测试:9 135 71 21 32 32 43 45 27 66 34 56 45 68 9应该输出:2 4 4 4 4 4 2 1 1Non-E原创 2020-08-29 18:47:24 · 114 阅读 · 0 评论 -
第十天PAT-A1154 Vertex Coloring邻接表做法
A1154Description:求所给颜色序列是否为所给图的合适着色,即相邻两点颜色不同。注意边数为零的情况邻接表存储法模板见A1003 Emergency "总结记忆"部分#include<iostream>#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>#include<algorithm>#include<m原创 2020-08-24 17:34:17 · 131 阅读 · 0 评论 -
第八天PAT-A1087 All Roads Lead to Rome算法描述
A1087Description:从我们的城市到罗马有许多条路,求一条花费最小且获得最多快乐的路径。Input:每个测试点一个样例;首行有两个正整数:城市数N[2,200],两城市间的路径最条数K,然后是起点的城市名;接下来N-1行给出了城市名和可以从这个城市获得的幸福值,除了最开始的城市;接下来K行每行描述了连接两个城市的道路及其花费,城市名是三个大写英语字母,终点是ROM代表了罗马;6 7 HZHROM 100PKN 40GDN 55PRS 95BLN 80ROM GD原创 2020-08-22 14:09:44 · 230 阅读 · 0 评论 -
第七天PAT-A1072 Gas Station最短路算法+第四组测试报错解析
A1072Description:加油站必须建立在如下地方:距离居民楼的最小距离应越远越好。而且要保证所有的居民楼要在它的服务范围内。现给出该城市的地图和几个加油站的侯选位置,求出最佳推荐位置。如果有多解,输出与所有居民楼的平均距离最小的那个,若仍有多解,输出下标最小的那个。Input:每个测试一个样例首行给出四个正整数:总房子数N<=1e3,1-N,总加油站候选位置M<=10,G1-GM,连接加油站和居民楼的道路数K<=1e4,加油站的最大服务距离DS。接下来K行描述道路原创 2020-08-22 12:24:02 · 261 阅读 · 0 评论 -
第七天PAT-A1030 Travel Plan小根堆邻接表Dijkstra + DFS
A1030Description:旅行者地图给出了两个城市沿着高速路的距离及每条高速路的费用。求起始城市至终止城市的最短路径,若最短路径不唯一,则输出具有最小花费的路径。Input:每个输入一组样例首行给出四个正整数:城市数目N<=500,[0,N-1],高速路条数M,起点S和终点D接下来M行给出两个城市的距离及花销所有数字不超过500Output:对于每个测试,将最短路上从起点到终点的所有城市依次打印出,最后给出总距离以及总花销。每个数字间用空格隔开。不想说了,模板题Di原创 2020-08-21 21:37:54 · 140 阅读 · 0 评论 -
第五天PAT-A1076 Forwards on Weibo算法解析及详细注释
A1076Description:众所周知,微博是中国版的推特。用户在微博上可能有许多粉丝,也可能粉许多人。因此就构建起了一个社交网络。当一个用户发一条微博时,他的所有粉丝可以看到并转发他的微博,也可以被这些粉丝再次转发。现在给出一个社交网络,请计算对于一个用户而言,其潜在的最大可能转发量,假设只有N层间接粉丝会被计算。Input:每组测试一个测试样例;对于每个测试,首行给出两个正数:用户数N<=1000,可被计算到的简介粉丝层数L<=6。假设所有用户被编号为1-N;然后N行分别给原创 2020-08-19 22:10:44 · 242 阅读 · 0 评论 -
第四天PAT-A1021 Deepest Root(难)详细代码注解
A1021Description:给出一个图,求可以得到最大深度树的根节点。详细推导证明过程见“《算法笔记上级实战训练》P344,证明过程如下“,实际遇到这样难以证明正确性的题,还是很难受的,不专注导致一道题写了两个多小时没写出来,反思一下,明天加油。#include<iostream>#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>#inc原创 2020-08-18 23:57:55 · 178 阅读 · 0 评论 -
计蒜客-修建大桥-并查集做法-图的连通性
题目链接又是等前女友回消息的一天大概是要用最少的边构建一个无向连通图吧想了一下用并查集竟然过了,AC如下#include<bits/stdc++.h>using namespace std;int cnt, n, m;int fa[1005], size[1005];void init(){ cnt = n - 1; for(int i = 0; i <...原创 2019-07-10 17:23:59 · 126 阅读 · 0 评论 -
计蒜客-蒜头君回家-bfs
题目链接bfs广搜,从S到P+从T到P的所有求最小值输出就好,需要注意的地方采用了STL的map,map默认按key值排序,故当使用自定义结构体时,应当在结构体内重构比较运算符,一开始只是简单比较了point的x值,后来插入有误,检查后发现当x值相等时便覆盖了相同x值的映射采用的point结构体的cnt值变化后,作为映射的key值也会变化AC代码如下:#include<bits...原创 2019-07-09 23:24:14 · 456 阅读 · 0 评论 -
计蒜客-穿越雷区-Kruscal最小生成树
题目链接水题做多了有害身体健康?AC代码#include<bits/stdc++.h>using namespace std;const int maxn = 30005;const int maxm = 50005;int n, m, fa[maxn], ans, cnt;struct edge{ int u, v, w; edge(int uu, int v...原创 2019-07-12 22:55:07 · 137 阅读 · 0 评论 -
计蒜客-连线问题-Krucal-并查集
题目链接无坑,AC代码#include<bits/stdc++.h>using namespace std;const int maxn = 105;const int inf = 0x3f3f3f3f;struct point{ int x, y; point(){ } point(int xx, int yy){ x = xx; y = yy; }...原创 2019-07-12 22:23:45 · 129 阅读 · 0 评论