题目链接:http://poj.org/problem?id=3159 题意:给n个人派糖果,给出m组数据,每组数据包含A,B,c 三个数,意思是A的糖果数比B少的个数不多于c,即B的糖果数 - A的糖果数<= c 。 最后求n比1最多多多少糖果。 可以从条件中的 B-A<=c及B<=A+c最后要达 ...
分类:
Web程序 时间:
2017-03-14 20:24:00
阅读次数:
176
题目链接:http://poj.org/problem?id=1511 题意:给出n个点和n条有向边,求所有点到源点1的来回最短路之和(保证每个点都可以往返源点1) 题目比较简单就是边和点的个数有点多所以可以用dijstra+优先队列这样复杂度就可以到v*logn ...
分类:
Web程序 时间:
2017-03-14 13:48:22
阅读次数:
262
题目很简单,, 但是wa了三次,, 用<vector>之前一定要记得clear()。。。简单说下 spfa的问题 和bell_forman有点类似 每次取出一个点 然后更新 并把更新了的节点入队(更新的值可能会影响到最优解) 当队列为空的时候算法结束(无法优化)这里的vis数组是为了防止重复入队 但 ...
分类:
Web程序 时间:
2017-03-07 22:55:20
阅读次数:
315
题意:求点权最大的最短路,输出最短路径条数、点权值、以及最大点权的路径。 做法:Dijstra求最短路,两步:1.找最小点;2.更新路径。这题的1不变,变的是2。在更新新路径的时候,如果找到更短的路径,那么更新点权、方案数;如果路径和最短路径一样,那么比较谁的点权大,更新为点权大的结果。 1 2 3 ...
分类:
其他好文 时间:
2017-03-07 00:15:39
阅读次数:
494
Description 一个图, \(n\) 个点 \(m\) 条边,求将一条边距离翻倍后使 \(1-n\) 最短路径增加的最大增量. Sol Dijstra. 先跑一边最短路,然后枚举最短路,将路径翻倍然后跑Dijstra... 因为不在最短路径上的边没用贡献,然后最短路径最长为 \(n-1\) ...
分类:
数据库 时间:
2016-11-16 22:05:49
阅读次数:
262
最短路 最短路有多种算法,常见的有一下几种:Dijstra、Floyd、Bellman-Ford,其中Dijstra和Bellman-Ford还有优化;Dijstra可以用优先队列(或者堆)优化,Bellman-Ford也可以用队列优化,通常称为spfa。下面分别对这几种算法进行说明。 Dijstr ...
分类:
其他好文 时间:
2016-09-26 19:44:34
阅读次数:
178
嗯 有广搜的意思 #include<cstdio> #include<iostream> #include<queue> #include<vector> #define maxn 1001 #define inf 9999999 using namespace std; struct vec // ...
分类:
Web程序 时间:
2016-08-24 17:26:29
阅读次数:
157
题意:有N个点,两个人,其中一个人住在点1,另一个人住在点n,有M个点集,集合内的数表示任意两点的距离为dis ,现在问,如果两个人要见面, 需要最短距离是多少,有哪几个点能被当成见面点。 析:分别对1和n进行最短路操作,这个题最让人别扭的就是边太多,如果你直接全部都存下来,那么一定会MLE,所以一 ...
分类:
Web程序 时间:
2016-08-14 11:41:33
阅读次数:
276
***两边dijstra,最后求出和最大,值得注意的是,单项路径一定要注意方向,不然就是错的。。*** ...
分类:
其他好文 时间:
2016-07-20 15:04:48
阅读次数:
122
Floyd算法,多源最短路,O(n^3)
所以时间很受限制……
主要注意细节,记住简单的三层for循环就好
1.初始化输入:
多样例,所以数组清空
注意重边情况,注意自己到自己是0
2.三层for
循环遍历每个点k, 循环计算map[i][j],看i->j最小还是i->k->j最小。
hdu1874
#include
#include
#d...
分类:
Web程序 时间:
2016-05-13 00:56:49
阅读次数:
288