上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 75 下一页
摘要: 原题链接 考察:floyd+枚举 相差了...想的是直径端点作为加的路左右端点之一...但实际是全部枚举. 思路: 暴力枚举所有没有连通的点,然后对于加的那条路,求左端点的最远距离+右端点的最远距离+加的路线的距离 最后再与剩下的直径求最小值. 1 #include <iostream> 2 #in 阅读全文
posted @ 2021-05-01 01:41 acmloser 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:最短路+dp md最短路计数变个形我就不会了,我是fw 思路: 首先明确当前u点的次短路 = u的最短路+road[i].w 或 u的次短路 +road[i].w .这道题实际不需要先求一遍最短路,然后再求一遍次短路及其条数.像求树的直径一样,次短路和最短路可以一次性求完. 只需要像 阅读全文
posted @ 2021-04-30 17:10 acmloser 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:双端队列+BFS+拆点 错误思路: 一开始想的是普通的BFS,但是用st数组记录有了哪些钥匙,但本蒟蒻脑子短路将st数组定义成全局变量.实际上是每一个点定义一个数存储该点有哪些钥匙.然后存储边想的是mp[x][y][i]表示x,y的i方向需要第几把钥匙.题解有类似写法,这种写法就是普 阅读全文
posted @ 2021-04-29 19:11 acmloser 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:最短路 思路: 类似多源BFS,建立超级源点S,该源点到达所有起点的距离为0.求超级源点到达终点的最短距离. 这题可以扩展到多起点多终点问题,都是建立超级源点S求解 1 #include <iostream> 2 #include <cstring> 3 #include <vect 阅读全文
posted @ 2021-04-28 22:45 acmloser 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:最短路+dp 写这道题的时候脑子很乱...没想多久就看了题解...忏悔 写题效率真的太低了... 引入: dp是基于拓扑序的图论最短(最小值)或最长(最大值)的问题.dp的每一个状态都能推导它后面的一个状态,这种有顺序的遍历就是拓扑序.但是对于不是拓扑序的dp问题应该如何求解? 思路 阅读全文
posted @ 2021-04-28 21:01 acmloser 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:最短路+拓扑排序 完全不会,fw本f 错误思路: 一看题,这不spfa裸题吗,结果代码上去TLE. 正确思路: 有负权边求最短路,又卡SPFA.不考虑SPFA优化的话,似乎是没有办法了.但这道题特地说明了两种边的特性,所以可以从边入手. 已知双向边无负权边,如果不考虑单向边可以考虑用 阅读全文
posted @ 2021-04-28 01:41 acmloser 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:最短路(双端队列)+二分 想到了二分,结果我是用dfs+二分,跑了6个数据TLE. 思路: 由题可知,题目是要求最大的第k+1条路径.我们除去k条路径后,就是求剩下的最大值最小.这很容易想到二分.关键是check函数怎么写.本蒟蒻的思路是dfs(当前点,二分值,k). 如果当前路径> 阅读全文
posted @ 2021-04-27 19:57 acmloser 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:最短路+dfs 本题的正解思路想到了...但是感觉不可能放弃了....以后要戒掉感觉不可能的这个词 思路: 由于五个点都要到达.当我们从起点到达其中一个点后,剩下的就是求点与点之间的最短距离.这里直接预处理点与点之间的最短距离.再枚举到达点的顺序.不必担心到达某个点的途中去过了另一个 阅读全文
posted @ 2021-04-27 14:46 acmloser 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:最短路+思维 洛谷普及题,本蒟蒻没想出来,我是fw. 思路: 在同一路线上的车站,只要是在当前点后面就可以不耗费到达.由此可以想到一个建图思路:在一条路上的,只要是在当前点后面的,就建立一条权值为w的有向边.很容易想到设w =0.但是这样不同路线就较难处理.由此设w = 1,答案是在 阅读全文
posted @ 2021-04-27 01:56 acmloser 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 最短路算法整理 1.Dijkstra 算法 先讲讲朴素的Dijkstra算法的思路.朴素的Dijkstra算法先将起点入队.然后找到一个起点距离最近的点.再用这个点去更新其他所有的点.一共有多少个点就进行多少次迭代.因为每次找到一个用于更新距离的点.它的最短距离就已经确定了. 核心代码: #incl 阅读全文
posted @ 2021-04-26 20:18 acmloser 阅读(42) 评论(0) 推荐(0) 编辑
上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 75 下一页