题目地址:http://poj.org/problem?id=2391
这个题WA了一晚上,原因是数组开小了,然后又TLE了一天,原因是数组改的过大了。。。。不多说什么了。。。
思路不难,建图也不难,二分时间,然后把每个田地之间的最短距离用floyd最短路求出来。然后建立一个源点与汇点,将田地拆分成两个点,在距离之内的进行连边,要单向连边。然后将源点与田地相连,权值为每个田地的牛的数目,再把另...
分类:
其他好文 时间:
2014-06-30 08:23:24
阅读次数:
245
通过做这题,发现了自己的问题很大,做题不是贴代码,而是要了解思想;这题考的是有一个起点的集合,求起点集合到一个终点的最短距离,本来想用Floy的但一看map[1000][1000]超时,有向图,逆序建邻接矩阵,这样就成了一个终点到所有点的最短路了。 1 #include 2 #include ...
分类:
其他好文 时间:
2014-06-29 18:40:11
阅读次数:
170
题目链接:http://poj.org/problem?id=3311
解法:标准的状压dp类型,先floyd获得两两之间最短距离。然后dp[i][j]表示剩下集合i没走,已经走到j的最短距离;
代码:/******************************************************
* @author:xiefubao
******************...
分类:
其他好文 时间:
2014-06-27 10:11:29
阅读次数:
282
题目真是不好读,大意如下(知道题意就很好解了)
大致题意:
一条河长度为 L,河的起点(Start)和终点(End)分别有2块石头,S到E的距离就是L。
河中有n块石头,每块石头到S都有唯一的距离
问现在要移除m块石头(S和E除外),每次移除的是与当前最短距离相关联的石头,要求移除m块石头后,使得那时的最短距离尽可能大,输出那个最短距离。
//Memory Time
//420K ...
分类:
其他好文 时间:
2014-06-27 08:48:34
阅读次数:
212
在计算最短路径之前,往往会先计算最短路径树,也就是计算从一个顶点出发,到其余所有顶点的最短距离。
有了最短路径树之后,路径和距离就非常容易实现了:
public double distTo(int v) {
return distTo[v];
}
public Iterable pathTo(int v) {
Stack result = new Sta...
分类:
其他好文 时间:
2014-06-25 08:16:29
阅读次数:
246
3169差分约束的是满足多组形如xi-yj=d[v] d[u]+dd=d[v]
建边(u,vdl)对于d[u]+dde的最短距离 1 #include 2 #include 3 #include 4 #include 5 #include
6 #include 7 #include...
分类:
其他好文 时间:
2014-06-16 06:46:23
阅读次数:
313
1 /* 2 Dijkstra算法用优先队列来实现,实现了每一条边最多遍历一次。
要知道,我们从队列头部找到的都是到 3 已经"建好树"的最短距离以及该节点编号, 并由该节点去更新 树根 到其他点(被更新的节点可以在队列中 4
,也可以是非队列中的节点)的距离 。 5 6 ////队列中的节点都.....
分类:
其他好文 时间:
2014-06-12 19:37:39
阅读次数:
303
弗洛伊德(Floyd)算法过程:1、用D[v][w]记录每一对顶点的最短距离。2、依次扫描每个点,并以其为基点再遍历全部每一对顶点D[][]的值,看看是否可用过该基点让这对顶点间的距离更小。算法理解:最短距离有三种情况:1、两点的直达距离最短。(例如以下图)2、两点间仅仅通过一个中间点而距离最短。(...
分类:
其他好文 时间:
2014-06-02 15:59:32
阅读次数:
217
http://acm.hdu.edu.cn/showproblem.php?pid=3790有两个条件:距离和花费。首先要求距离最短,距离相等的条件下花费最小。dijkstra,仅仅是在推断条件时多考虑了花费。注意重边。#include
#include #include #include #inc...
分类:
其他好文 时间:
2014-06-02 08:33:36
阅读次数:
326