![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论训练
文章平均质量分 57
樱落二瓣七里香
我是fw
展开
-
7-14 愿天下的有情人终成眷属(最短路+反向图)
【代码】7-14 愿天下的有情人终成眷属(最短路+反向图)原创 2023-04-21 13:59:37 · 66 阅读 · 0 评论 -
2023天梯分组赛 L2-4(最短路)
【代码】2023天梯分组赛 L2-4(最短路)原创 2023-03-28 20:26:40 · 161 阅读 · 0 评论 -
AcWing 1135. 新年好(堆优化Dijkstra + dfs)
传送门大致题意 : 有n个站点, 和m条双向边, 起点为1, 有5个站点a,b,c,d,e, 问怎么走能是走完5个站点的时间最短思路 : 暴力做法为, 对起点和站点排序, dfs一遍所有顺序, 对每一种顺序求一遍两点间的最短路, 在求和取最小, 时间复杂度为5! * O(m)(spfa的复杂度), 加上spfa的常数k, 大概率会被卡掉, 换一种思路, 我们可以先预处理一下点对间的最短路, 再进行dfs, 这样的化话时间复杂度会有乘算优化为加算, 即O(m) + 5!, 这样就能过(但是数据加强后会原创 2022-05-08 15:04:04 · 122 阅读 · 0 评论 -
W - Cow Relays(倍增Floyd)
题目大意 : 给定无向图, 起点S, 终点E, 问恰好经过N条边的最短路思路 : 这是一道典型的Floyd倍增的题目(之前没见过, 完全没思路, 寄!), 就是通过对Floyd进行变形的一个dp做法Floyd算法:f[k][i][j] : i 到 j , 通过中转点k的最短路, f[i][j] = min(f[i][k] + f[j][k])类Floyd:f[k][i][j] : i到j, 通过k条边的最短路, f[a+b][i][k] = min(f[a][i][k] + ...原创 2022-04-30 17:33:16 · 249 阅读 · 0 评论 -
S - Layout(SPFA + 差分约束)
大致题意 : 有n个小朋友, 给定一些条件,条件分为两种 :第一种是A,B不超过一定距离第二种是A,B不小于一定距离通过这些条件给他们排列, 问1到n的最远距离.思路 : 由条件可以通过差分约束系统转化为最短路有关问题(这里是求最远路)第一类条件是 a-b<d可转化为d[a]<d[b]+d(注意是最远路的松弛操作)第二类条件是a-b>d可转化为 d[b]<d[a] + (-d)通过这两个转化建图, 用SPFA求最短路, 若出现负环则不能排列返回-1...原创 2022-04-29 19:15:38 · 94 阅读 · 0 评论 -
V - Sightseeing trip(Floyd求最小环)
大致题意 : 图中存在一个包含至少3个点的环, 如 i-->k-->j-->.....(若干点)-->i, 找到一个这样的最小环, 并输出路径思路 : 可以利用Floyd算法做两次最短路, 一次找到j->i的最短路, 另一次通过k来更新i->k->j找到最小环, 用一个数记录最小值判断最小环是否存在, 路径可以用一个数组pos[i][j], 来记录i->j的中转点k, 通过递归迭代求出环的路径AC代码如下:#include <io...原创 2022-04-29 16:59:05 · 165 阅读 · 0 评论 -
图论例题总结
DFS用dfs(递归)搜索每一种情况#include <iostream>using namespace std;const int N = 10;int n;int path[N];bool st[N];void dfs(int u){ cout<<u<<endl; if(u == n) { for(int i = 0; i<n; i++) printf("%d ",path[i]);原创 2022-02-20 19:22:40 · 436 阅读 · 0 评论 -
H - Cow Contest(Floyd传递闭包)
Cow ContestTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 13189 Accepted: 7337DescriptionN (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a programming contest. As we all know, some cows code better than others. Each c原创 2022-04-26 17:03:27 · 1032 阅读 · 0 评论 -
L - Subway(建图+dijkstra)
You have just moved from a quiet Waterloo neighbourhood to a big, noisy city. Instead of getting to ride your bike to school every day, you now get to walk and take the subway. Because you don't want to be late for class, you want to know how long it will原创 2022-04-27 14:55:46 · 91 阅读 · 0 评论 -
K - Candies(最短路 + 差分约束)
DescriptionDuring the kindergarten days, flymouse was the monitor of his class. Occasionally the head-teacher brought the kids of flymouse’s class a large bag of candies and had flymouse distribute them. All the kids loved candies very much and often comp原创 2022-04-27 15:11:27 · 227 阅读 · 0 评论 -
O - Extended Traffic(最短路+SPFA判负环+dfs找负环)
Dhaka city is getting crowded and noisy day by day. Certain roads always remain blocked in congestion. In order to convince people avoid shortest routes, and hence the crowded roads, to reach destination, the city authority has made a new plan. Each juncti原创 2022-04-28 20:08:50 · 209 阅读 · 0 评论 -
M - 昂贵的聘礼(最短路+思维)
年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用10000个金币作为聘礼才答应把女儿嫁给他。探险家拿不出这么多金币,便请求酋长降低要求。酋长说:“嗯,如果你能够替我弄到大祭司的皮袄,我可以只要8000金币。如果你能够弄来他的水晶球,那么只要5000金币就行了。“探险家就跑到大祭司那里,向他要求皮袄或水晶球,大祭司要他用金币来换,或者替他弄来其他的东西,他可以降低价格。探险家于是又跑到其他地方,其他人也提出了类似的要求,或者直接用金币换,或者找到其他东西就可以降低原创 2022-04-27 21:08:25 · 188 阅读 · 0 评论