摘要: 这道题在洛谷上的链接:https://www.luogu.org/problemnew/show/P1522 真心很无语,怎么会有这么奇怪的题。。。呃呃,题解。大家的做法几乎是一样的,我都不能理解,只有一个人的做法和我想的一样,可是很麻烦。 大家基本都是用Floyd求出每个点所能到达的最远的最短路, 阅读全文
posted @ 2018-09-01 22:51 Mr^Kevin 阅读(400) 评论(0) 推荐(0) 编辑
摘要: 水题链接:https://www.luogu.org/problemnew/show/P1144 这道题就是很水啊,水到我居然不用最短路算法就做了出来。因为每条边的权值都为1,最短路计数,无异于遍历整张图,记录有多少个结点可以到达这个点,且路径长度为最小的那个。用BFS,保证第一次访问到结点时的路径 阅读全文
posted @ 2018-08-29 19:19 Mr^Kevin 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.luogu.org/problemnew/show/P1119 暴力的做法很容易想到,对于每次询问,将修好的点加到图上,复杂度可以是O(mlogn*q),粗略算一下会炸。看到N<=200,忽然想到了Floyd,又想将询问保存,倒序处理,也就是每次删边,毫无疑问这是错 阅读全文
posted @ 2018-08-29 12:02 Mr^Kevin 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.luogu.org/problemnew/show/P1346 题目不难,如果将切换开关次数看做边权,跑一遍最短路就是答案。因为数据范围很小,所以用最容易写的Floyd就可以。只不过初始化时需要注意,先将最短路全部设为inf,如果从一个点到另一个点之间有路径,那么最 阅读全文
posted @ 2018-08-27 21:49 Mr^Kevin 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 本题在洛谷上的链接:https://www.luogu.org/problem/show?pid=P1073 不得不说,这是道好(难)题。我确实没有秒掉他,还是看了别人的分析过的。大家的做法有很多,什么Tarjan、并查集之类的,因为最近在学最短路,所以选择了SPFA变形的做法。 就像刘汝佳(而不是 阅读全文
posted @ 2018-08-27 20:37 Mr^Kevin 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 放一下他在洛谷的链接:https://www.luogu.org/problemnew/show/UVA10048 第一次见到这道(坑)题是在刘汝佳的紫书(《算法竞赛入门经典》)上,为什么说这道题坑呢?因为这道题刘汝佳弄错了!!! 思路很简单,数据范围很小,所以可以使用Floyd算法的变形:对于从i 阅读全文
posted @ 2018-08-27 11:43 Mr^Kevin 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 题目的描述就很有意思,可以顺便去了解一下魔兽的背景故事。学习使我们快乐! 题目链接:https://www.luogu.org/problemnew/show/P1462 大清早上起来A掉一道题,好兴奋。看到题目要求收费最多的一次的最小值,想到用二分答案,二分这个最小值,然后去跑最短路,看是否可以, 阅读全文
posted @ 2018-08-27 05:40 Mr^Kevin 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 前缀和与差分比较常用,也算是必须掌握的方法。主要用于对区间数据的查询处理。 在一维当中,前缀和就是指从某个元素开始一直到首个元素的和,差分是指每个元素与前一元素的差(首个元素即为本身)。 在二维里面,设一个N*M的矩阵,起点(左上角)为(1,1),终点右下角为(N,M)。则(i,j)的前缀和为以(1 阅读全文
posted @ 2018-08-26 23:07 Mr^Kevin 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 链接:https://www.luogu.org/problemnew/show/P1083 虽然说这是二分答案的题,但我一开始还真没想到怎么用二分答案去做。 后来想到了,发现又碰了壁。一是二分什么(当然答案要求什么就二分什么呗,沙茶!),二是如何将每份订单的需求对应到每天上去。因为对二分答案不熟, 阅读全文
posted @ 2018-08-26 21:39 Mr^Kevin 阅读(136) 评论(0) 推荐(1) 编辑
摘要: 二分答案估计是我应该早就学会,但拖到现在才去好好看的套路吧! 二分答案是指在答案具有单调性的前提下,利用二分的思想枚举答案,将求解问题转化为验证结果。首先需要估计答案的上下界,然后不断取区间中点进行验证(这就要求答案的验证应当简单可行),并通过验证结果不断更新答案区间,最终得到答案。不难看出,朴素的 阅读全文
posted @ 2018-08-26 19:56 Mr^Kevin 阅读(213) 评论(0) 推荐(1) 编辑