【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 ...
随机推荐
- Bash编程(1) 基础
1. 基本知识 (1) $HOME: 当前用户的家目录 (2) `pwd`或$PWD:当前目录 (3) 脚本命名避免使用test,通过type -a test,可以查看所有匹配test的命令 gas@ ...
- find ip from hostname or find hostname from ip
1. find ip from hostname ping <hostname> 2.fin hostname from ip nslookup <ip>
- SQL 除去回车符 除去空格符
update table set fa=replace(fa,chr(13),'') ; --- 除去回车符 update table set fa=replace(fa,' ','') ; --- ...
- sqlserver 自增ID插入指定数据(转)
set identity_insert 表名 ON --允许对自增列Id插入指定数据 insert into table_name(Id,Name) values(1,'test') set iden ...
- Expression Blend实例中文教程(6) - 项目控件和用户交互控件快速入门
前文我们曾经描述过,微软把Silverlight控件大致分为三类: 第一类: Layout Controls(布局控件) 第二类: Item Controls (项目控件) 第三类: User Int ...
- git flow强制重新初始化
Gitflow工作流定义了一个围绕项目发布的严格分支模型. git flow初始化命令: git flow init 关于各个分支的命名一路回车就可以了,如果不小心修改了默认的分支命名,后来又觉得不爽 ...
- java泛型使用
泛型的解释 现在感觉泛型是一个值得学习的地方,就抽出时间来学习和总结一下泛型的使用. Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允 ...
- MD5加密+加盐
了解: MD5加密,是属于不可逆的.我们知道正常使用MD5加密技术,同一字符,加密后的16进制数是不变的,自从出现彩虹表,对于公司内部员工来说,可以反查数据,获取不可能的权限,所以出现了salt算法. ...
- FLASK日志记录
from flask import Flask from flask_restful import Resource, Api import logging app = Flask(__name__) ...
- 小白学flask之静态文件
引入css的方式有两种 1 那在flask中,如何处理静态文件? 做法很简单,只要在你的包或模块旁边创建一个名为 static 的文件夹就行了. flask的静态文件是位于应用的 /static 中的