最短路
Bahuia
软件工程博士
展开
-
最短路+差分约束学习笔记
关于最短路和差分约束的写得很全面的一篇博客,转载自:http://www.cppblog.com/menjitianya/archive/2015/11/19/212292.html目录 一、引例 1、一类不等式组的解二、最短路 1、Dijkstra 2、图的存储 3、链式前向星转载 2017-02-11 21:02:03 · 827 阅读 · 0 评论 -
HDU - 1384 差分约束
题意:要求选取一个最小的集合,集合中的数满足n个条件,每个条件:在区间[ai,bi]内至少有ci个数备选在了集合里。思路:差分约束,设sum[i]表示在i-1中选取到集合中的数的个数,那么题目的要求就可以描述为如下的关系:sum[a] - sum[b+1] sum[i] - sum[i+1] sum[i+1] - sum[i] 这样就可以转化成关于查分约束的模式了,因为原创 2017-02-11 21:41:44 · 466 阅读 · 0 评论 -
HDU - 3666 差分约束 + 对数
题意:给出一个矩阵c以及L和U,判断出是否存在两个序列a1,a2...an和b1,b2,..bm,使得满足: a[i] / b[j] * c[i][j] = L思路:查分约束。根据题意可以列出如下的关系式:a[i] / b[j] b[j] / a[i] 这时候利用对数,将除法转化成减法,得到:log(a[i]) - log(b[j]) log(b[j]) - l原创 2017-02-12 10:10:37 · 372 阅读 · 0 评论 -
HDU - 4568 最短路 + 状压dp
题意:给出一个n*m的方格矩阵。其中某些点有宝藏,每个方格都有一个经过的代价,若为-1则不能经过,现在一个猎人需要将所有宝藏都拿走,他可以从矩阵边界任意的位置进入,也可以从边界上任意位置离开,(但是要注意只能进入和离开各一次),求把所有宝藏拿走的最小代价,如果不能拿走则输出-1。思路:这道题题意很坑,经过实践发现两个坑:1.猎人只能进入矩阵和离开矩阵各一次,否则第二个样例答案就是1原创 2017-02-13 11:43:26 · 535 阅读 · 0 评论 -
HDU - 5521 最短路 + 建图
题意:给出n个点的一个图,每个点属于一个块或者几个块,保证第i块内的点都可以用时间ti互相到达,现在A在点1,B在点n,他们要找一个点开会,会议必须要双方都到场才能开始,问会议最快能需要多长时间能开始,另外按升序输出保证时间最小的可选择的开会的点的序号。思路:主要是考建图,暴力建图是不行的,这里每个块建立一个中转点,让中转点和该块内的所有点都连上长度为t的边,这样每次从一个点到达块原创 2017-03-15 19:13:29 · 371 阅读 · 0 评论 -
HDU 5361 最短路+并查集优化
题意:题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5361 有n个点,每个点有一个可以到达点的范围[l,r],传送一次距离为c,问从点1到所有点的最短距离是多少。思路:注意到从点1开始,如果利用优先队列选出将要到达的最近的点,那么每个点最多只需要更新一次,如果用传统的最短路,会浪费大量的时间在扫描那些已经更新过的点上,因此需要利用并查集原创 2017-10-11 15:29:14 · 752 阅读 · 0 评论