【ACM】那些年,我们挖(WA)过的最短路
不定时更新博客,该博客仅仅是一篇关于最短路的题集,题目顺序随机。
算法思想什么的,我就随便说(复)说(制)咯:
Dijkstra算法:以起始点为中心向外层层扩展,直到扩展到终点为止。有贪心的意思。
大部分题用Dij+队列优化都能解决。。但有负权边不行哦。
Bellman-Ford:反复对边集E中的每条边进行松弛操作。
求含负权图(有负环输出错误提示)的单源最短路径,效率很低,至于对多余松弛的优化就是设置个标记,还是很慢,不如写SPFA。
判断负环:在每次松弛时把每条边都更新一下,若在n-1次松弛后还能更新,则说明图中有负环。
SPFA算法:在Bellman-ford算法的基础上加上一个队列优化,减少了冗余的松弛操作,是一种高效的最短路算法。
好了,刷题刷题。。。
poj 2391 Til the Cows Come Home【dij裸题】 :求N到1的距离,双向图,有重边。【论入门的快乐,喵】
poj 2253 Frogger【变种dij】 :求一种从点1到点2的跳跃方案,使得一次跳跃的最大值尽量小,求最大边。将d[i]的意义变为从1到i的最大边,然后贪心思想。
poj 1797 Heavy Transportation【变种dij】:求最大的最小边权值,和上一题差不多。。或者,写prim。
poj 3268 Silver Cow Party【dij】:往返的最短路,边要再反建一次。
poj 1860 Currency Exchange【Bellman-Ford或 SPFA 判断是否有正环】裸 题。
poj 3259 Wormholes【Bellman-Ford或 SPFA判断是否有负环】 :这题数据弱,从1点开始走就能AC,但题没说是连通的哇。。。从各个点走,应为正确解法。或者,加个超级源点,连通一下。
poj 1502 MPI Maelstrom【dij裸题】 :好像这是第一次知道了这个函数atoi(s)
poj 3660 Cow Contest【floyd】 :给出牛之间的强弱关系,让你确定有多少头牛能够确定其排名。 用floyd去连边,然后点的出入度和为n-1就能确定该点排名。
poj 2240 Arbitrage 【floyd】:求自身到自身的最大转换率(求N种货币中是否有货币可以经过若干次兑换后,兑换成原来的货币可以使货币量增加)。 floyd求最大环。
poj 1511 Invitation Cards【SPFA】 :还是往返的最短路,边反建。。数据大,用邻接表存储。
poj 3159 Candies【差分约束+dij】:裸的差分约束。b比a多的糖果数目不超过c个,即d[b] – d[a] <= c,连边a->b。
hdu 5876 Sparse Graph【补图最短路bfs】:开两个set,一个放不邻接的点,一个放未扩展的点,更新一轮不邻接点的最短路后,将两集合交换,并清空未扩展点集合。
poj1122 FDNY to the Rescue!【dij+反向建图+输出路径】 :反向建图,从火警位置求一次最短路,求最短路时记录路径,按时间从小到大输出。
51nod 1445 变色DNA【dij】:其实,看出是最短路就是裸题了、、
POJ 2391 Ombrophobic Bovines【floyd+二分+最大流】:好像重点不在最短路了?二分答案,利用floyd求出的最短路建s-t割。
ZOJ2760 【floyd+最大流】:听说对角线上的数据不一定为0,数据坑?233
hdu 5669 Road【线段树+分层图+最短路】:裸的线段树、裸的分层图、裸的最短路。我最喜欢的题之一,喵喵喵?
CodeForces 787D. Legacy【线段树+最短路】:把上面那题复制一下,化简一下,就,完事啦......
hdu 5521 Meeting(dij+拆点):边太多了,给每个团加两个点,将团内点与该两点连边,减小建边数量,再进行两次dij。
BZOJ4152: [AMPPZ2014]The Captain【dij裸题】:xy排序后跑最短路。
BZOJ4289: PA2012 Tax(dij+技巧建图):真的是很神奇的一道题。化边为点,差值建边。[突然变咸.jpg]
hdu 5361In Touch(dij+并查集):用并查集优化,直接访问下个未访问点。
BZOJ2143: 飞飞侠 【分层图+最短路】:这题输入数据是反的233。边太多,不好写?写分层图吖(有装置就花钱直接飞到它能弹射距离的高度,往四周走就相当于走楼梯往下走一台阶,走到底层就不能走了,或者走到其他有装置的地方,又可以飞升了)、、还可以降个维再用并查集优化,能跑的更快,OTZ。
BZOJ2007 : [Noi2010]海拔(对偶图+最短路):把原图转换成对偶图,东北为起点,西南为终点,跑最短路。
UVALive - 4223(二分+最短路):二分高度,然后就是裸的最短路:)
【ACM】那些年,我们挖(WA)过的最短路的更多相关文章
- php获取汉字的拼音 拼音首字母
/***获取汉字的拼音*/function pinyin($s, $isfirst = false) { static $pinyins; $s = trim($s); $len = strlen($ ...
- POJ 模拟题集合
http://www.cppblog.com/Uriel/articles/101592.html 感觉这个暑假没有去年有激情啊,,,还没到状态就已经块上学了,,, 真是弱暴了,,,找几道模拟题刷刷. ...
- [C#] 汉字转拼音,支持多音字
这份代码大概不是严格意义上正确的,但是一般场景用用应该没问题. using System; using System.Collections.Generic; using System.Linq; u ...
- CSUFT 1002 Robot Navigation
1002: Robot Navigation Time Limit: 1 Sec Memory Limit: 128 MB Submit: 4 Solved: 2 Descript ...
- hdu 2544 最短路
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2544 最短路 Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shi ...
- HDU 5521 Meeting
2015 ACM / ICPC 沈阳站现场赛 M题 最短路 设置N+M个节点,前N个节点是Block,后M个节点是Set,每一组Set中的点向该Set连边,从1和n开始分别求最短路.注意爆int. # ...
- 最短路(spfa)
http://acm.hdu.edu.cn/showproblem.php?pid=2544 最短路 Time Limit: 5000/1000 MS (Java/Others) Memory ...
- HDU 4725 The Shortest Path in Nya Graph (最短路)
The Shortest Path in Nya Graph Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- HDU 2544最短路 (迪杰斯特拉算法)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2544 最短路 Time Limit: 5000/1000 MS (Java/Others) Me ...
- Codeforces C. Jzzhu and Cities(dijkstra最短路)
题目描述: Jzzhu and Cities time limit per test 2 seconds memory limit per test 256 megabytes input stand ...
随机推荐
- java中多线程中测试某个条件的变化用 if 还是用 while?
最近在研究wait和notify方法,发现有个地方要注意,但是网上又说得不是很明白的地方,就是经典的生产者和消费模式,使用wait和notify实现,判断list是否为空的这个为什么要用while而不 ...
- 深入理解JavaScript系列(43):设计模式之状态模式
介绍 状态模式(State)允许一个对象在其内部状态改变的时候改变它的行为,对象看起来似乎修改了它的类. 正文 举个例子,就比如我们平时在下载东西,通常就会有好几个状态,比如准备状态(ReadySta ...
- [转]weui-wxss WeUI for 小程序 为微信小程序量身设计
本文转自:https://github.com/weui/weui-wxss/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=tou ...
- 从 C#编写的Exe里面提取图标和图片
记得原来是可以通过PE直接提取Exe里面的图片的,不知道为什么不能用了,下面是通过加载程序集反射出Resources 里面的图片或者图标: 提取结果直接存放到编译目录了,不知道向左向右,自己又回到Wi ...
- Angular4 step by step.1
1.官网地址 :https://angular.cn/guide/quickstart 2.在线学习地址:https://embed.plnkr.co/?show=preview 3.效果截图哇哈哈
- Java--详解WebService技术
Java--详解WebService技术 一.什么是 webservice WebService是一种跨编程语言和跨操作系统平台的远程调用技术. 所谓跨编程语言和跨操作平台,就是说服务端程序采用jav ...
- java温故而知新(6)深入理解IO Stream
一.什么是IO Stream Stream 是在编程语言中对输入输出的总称 (一种比喻的称谓.Stream 为流水,输入输出实际上就是指数据的流动,数据由一个地方运动的另一个地方,就像流水一样,程序员 ...
- C为什么不能跨平台
如果大家能对我的文章推荐一下,关注一下本人博客,那就更开心了,我今后也会更多的写一些计算机系统/原理类的文章,以飨各位读者.再次谢谢.前段时间看了 周志明的那本 <深入理解java虚拟机> ...
- CSS3,3D效果轮播图
---恢复内容开始--- 大家还记得我昨天的3D拖拽立方体吗??我昨天还说过css还可以做轮播图,所以咱们今天就写一下,css的轮播图吧! ....这个轮播图主要是用CSS3里的transform的旋 ...
- AngularJS实现原理
个人觉得,要很好的理解AngularJS的运行机制,才能尽可能避免掉到坑里面去.在这篇文章中,我将根据网上的资料和自己的理解对AngularJS的在启动后,每一步都做了些什么,做一个比较清楚详细的解析 ...