Dijkstra算法
aozil_yang
这个作者很懒,什么都没留下…
展开
-
HDU 2066 一个人的旅行(Dijkstra算法)
一个人的旅行Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 30069 Accepted Submission(s): 10339Problem Description虽然草儿是个路痴(就是在杭电待了一年多,居原创 2016-06-08 21:25:51 · 477 阅读 · 0 评论 -
HDU 6166 Senior Pan (2017多校9 - Dijkstra + 二进制枚举 [神题])
题意:给你一个有向图, 告诉你选择的K个点, 问这K个点中最近点对 的最短路是多少?思路:大开脑洞一个题目。。。假设我们能够把K个点分成两个集合的话, 我们一遍Dijkstra 就可以求出两个集合的最近距离。求完这两个集合后, 那么两个集合中除了最近点对外, 其余点对都不用在算了, 因为都不如这个最近点对最优。因此 如和合理的划分集合是关键。因为每一个点的数值都是不同的原创 2017-08-22 21:44:44 · 1260 阅读 · 0 评论 -
HDU 6007 Mr. Panda and Crystal (最短路 + 完全背包)
题意:你生活在一个魔法大陆上,你有n 魔力, 这个大陆上有m 种魔法水晶,还有n 种合成水晶的方式,每种水晶价格告诉你,并且告诉你哪些水晶你能直接造出来,哪些你必须合成才能造出来,问你n魔力最多能卖多少钱的水晶?思路:很复杂的一道题目。但是分析后,很简单:整体思路:我们求出每种水晶的最小消耗魔力,那么问题就转换为 求在不超过魔力n 的情况下,让你选择尽可能多水晶来卖更多的钱原创 2017-04-02 00:39:38 · 1664 阅读 · 0 评论 -
HDU 6005 Pandaland(dijkstra + 剪枝)
题意:给你一个m 个边的无向图,要求在图上找一个最小的环(边权)。思路:好暴力的一道题目。一个环的话 肯定要经过一个边,我们直接暴力枚举哪一个边。把这个边的权值设成inf。然后跑这两个点的最短路即可。加上这个边原权值 即是这个最小环。注意加个剪枝:当优先队列中的最小值大于等于ans 时 直接不跑了#include #include #include #原创 2017-04-01 18:08:17 · 1720 阅读 · 1 评论 -
CCF习题 201703-4 地铁修建(dijkstra 或者 最小生成树)
题意:很水很水的一道题目, 但自己也很水, 没得全分= = ~~~求使得1和n 连通得一条路中最大路权最小值。思路:多个思路:1. 修改dijkstra,把判断距离改成判断 最大路权即可。2. 最小生成树,直接按照最小生成树做,当1和n 连通时就找到答案了,因为这时候肯定是边最小的。迪杰斯特拉版本代码:#include #include #include原创 2017-03-23 18:15:17 · 4278 阅读 · 6 评论 -
团体程序设计天梯赛-练习集 -- L3-014. 周游世界(dijkstra)
题意:给你一些边,每个边都属于一个确定的公司,告诉你q 个询问,每个询问让你输出两点之间的最短路,并且打印解,连续属于一个公司的线路,只打印收尾。思路:这个题赛场上过样例后,只得到了一分。= =其实就是个很水的dijkstra。只不过要求的最通畅路线是 要求节点数最小,节点数相同要求换公司线路最小。这个题wa了好久,原因是 优先队列优先级写反了。我们只需要简单的修改一下原创 2017-03-29 10:43:21 · 1503 阅读 · 0 评论 -
UVA 12661 Funny Car Racing (Dijkstra最短路)
题意:在一个赛车比赛中,有n 个交叉点和m 个单向道路,每条道路周期性的开启a秒,关闭b秒,通过时间是t秒, 求从S到T 的最短时间?思路:和正常的迪杰斯特拉一样,存的是时间,优先时间小的先弹出。只不过在压入队列中 分情况讨论:1.如果现在的时间能进入这条道路,并且能在道路关闭之前出来,就进入队列。2.否则就等这条道路在开启时 在进入队列。吐槽:会有重边的存在,写成原创 2017-03-11 13:08:52 · 314 阅读 · 0 评论 -
CCF习题 201612-4 交通规划 (Dijkstra + 贪心)
大体题意:提议不说了 中文的= =思路:既然要求到1的最短距离要存在,我们先用dijkstra算法求出每一个点到1位置的最短距离,然后在看要哪一些边!既然要求路最短 并且包括最短距离,那么我们可以枚举每一条边{u,v,w}当这条路就是v到1位置的最短路之一时,我们就把这条边的权值和已经保存的最小权值进行比较!这样的贪心方法想一想 是很合理的!我们贪心的要 每一个点最短路上的原创 2016-10-17 20:23:34 · 3752 阅读 · 1 评论 -
HDU 5889 Barricade (单源最短路 + 最小割(最大流))
大体题意:给你一个无向图,告诉你敌人在点n,我方在点1,敌人要从n 走到1,他们一定会选择最短路,你可以向一些路放一些木头来阻碍敌人,放木头的代价为路的权值,求最小权值使得敌人一定会经过一个木头?思路:比赛没有出,借鉴了学长们的博客!因为敌人一定会走最短路,那么我们可以先构造出所有的最短路!因为要找一些权值最小的和,想一想可以知道 ,这是找最小割!因为一定要走到1点吗,最小原创 2016-09-19 11:48:49 · 758 阅读 · 0 评论 -
HDU HDU - 3416 (单源最短路 + 最大流)
大体题意:给你一个有向图,告诉你起点S和终点T,要求找出不同的路径来,满足路径是最短路,并且每个路只能用一次!思路:方法很巧妙:可以转换到最大流先正着求一边单源最短路,在倒着求一边,把在最短路上的边加入到网络中,权值为1,直接求最大流即可!(想一想就知道!)判断是否在最短路也很简单:直接看这个边的一个点到S的最短距离和另一个点到T的最短距离之和 加上权值 如果是最短路的原创 2016-09-19 00:32:13 · 555 阅读 · 0 评论 -
Codeforces Round #372 (Div. 2) -- D. Complete The Graph(Dijkstra单源最短路)
大体题意:给你一个无向图,有n 个顶点和m 个边,一些边的权重是正数,一些边的权重是0,表示已经删除,告诉你起始位置和终止位置和最短路L,要求把已经删除的边(权值为0)重建,自己赋值,使得最短路依然是L。思路:单源最短路,其实想清楚了还是很简单的!先求一遍最短路,当发现最短路L2 小于L时,那么肯定是无解的,因为你此时最短路已经小于L了,在加入一些重建的边,只能会越来越小,因此不原创 2016-09-18 19:43:08 · 1149 阅读 · 0 评论 -
HDU 3790 最短路径问题 (Dijkstra算法)
最短路径问题Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 21166 Accepted Submission(s): 6321Problem Description给你n个点,m条无向边,每条边都有长原创 2016-06-09 15:06:13 · 3179 阅读 · 1 评论 -
HDU 1874 畅通工程续 (Dijkstra算法)
畅通工程续Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 43267 Accepted Submission(s): 16054Problem Description某省自从实行了很多年的畅通工程计划后原创 2016-06-09 14:24:13 · 390 阅读 · 0 评论 -
HDU 2680 Choose the best route(Dijkstra算法)
Choose the best routeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 12523 Accepted Submission(s): 4072Problem DescriptionOne原创 2016-06-09 14:17:13 · 373 阅读 · 0 评论 -
HDU 1595 find the longest of the shortest (Dijkstra算法)
find the longest of the shortestTime Limit: 1000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2759 Accepted Submission(s): 995Problem Description原创 2016-06-08 23:58:50 · 698 阅读 · 0 评论 -
HDU 2544 最短路(Dijkstra算法)
最短路Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 52000 Accepted Submission(s): 22872Problem Description在每年的校赛里,所有进入决赛的同学都会获得一件很原创 2016-06-08 21:37:49 · 423 阅读 · 0 评论 -
HDU 6201 transaction transaction transaction (2017沈阳网络赛 - spfa最长路)
题意:给你一棵树, 树上有点权, 要求选择起点S和终点T, 要求T-S-sum 最大, sum为S到T的边权。思路:根据题意就可以建图建立源点和汇点。源点连所有的树上点, 边权为 a[i], 所有树上点在连接 汇点, 边权为-a[i]. 然后在根据树建图。 spfa跑个最长路即可。#include #include #include #include #incl原创 2017-09-11 09:35:56 · 1180 阅读 · 1 评论