题目:求出一棵树上任意一点能到的最远距离,然后若干询问,问区间内最大最小距离只差小于q的区间最长有多长。思路:最远距离通过两次dfs树形dp求得,询问需要先用st表处理一下,然后线性扫。基本是参考kuangbin的。ps:可能是我写挫了。。用vector做邻接表是1996ms过了一次,然后就是无限t...
分类:
其他好文 时间:
2015-08-04 02:02:41
阅读次数:
741
题目描述:
两个人从同一出发点去不同的地方,路的距离会造成花费的多少,所以两个人走的越短越好,并且两个人同乘一辆车可以使花费更低,给出每条路所连接的两个城市及该线路的花费以及两个人的出发点和他们各自的目的地,求他们需要的最小花费是多少
分析:
先同乘一段距离,再分开走,形走路线是一个Y形路线,找出一个点,使他到出发点以及他们各自的目的地三个地方的最短距离的和最小,这三个距离的和就是他们所需的...
分类:
其他好文 时间:
2015-08-02 13:47:31
阅读次数:
110
最近我在读 Robert Sedgewick 和 Kevin Wayne 的经典著作《算法(第4版)》:
这本书第4章第1节讨论无向图,下面就是无向图的 API(英文版第522页):
对于非稠密的无向图,标准表示是使用邻接表,将无向图的每个顶点的所有相邻顶点都保存在该顶点对应的元素所指向的一张链表中。所有的顶点保存在一个数组中,使用这个数组就可以快速访问给定顶点...
分类:
其他好文 时间:
2015-08-01 14:22:46
阅读次数:
217
一、最短生成路的2种存图方法(邻接矩阵和邻接表):
1)邻接矩阵(适合稠密图即边远远多于点):
1、时间复杂度一般在n^2;
2、可以解决重边情况;map[i][j] = min( map[i][j] , input);
3、初始化;a[i][j] = INF; a[i][i] = 0;
4、邻接矩阵点的最大极限在3000左右
5、图示:
2)邻接表(适合疏密图即边...
分类:
其他好文 时间:
2015-07-31 18:38:13
阅读次数:
210
hdu 3549 网络流//邻接表
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include using n...
分类:
其他好文 时间:
2015-07-31 13:05:15
阅读次数:
94
今天学习到了一种新姿势,用邻接表+优先队列优化Dijkstra,这样时间复杂度就由O(N^2+E)变为O(NlogN+E),妈妈再也不用担心我超时了!~\(^o^)/CandiesTime Limit:1500MSMemory Limit:131072KTotal Submissions:25077...
分类:
其他好文 时间:
2015-07-27 22:29:17
阅读次数:
131
上一篇我们了解了图的基本概念、术语以及存储结构,还对邻接表结构进行了模拟实现。本篇我们来了解一下图的遍历,和树的遍历类似,从图的某一顶点出发访问图中其余顶点,并且使每一个顶点仅被访问一次,这一过程就叫做图的遍历(Traversing Graph)。如果只访问图的顶点而不关注边的信息,那么图的遍历十分...
分类:
其他好文 时间:
2015-07-27 01:45:54
阅读次数:
316
感觉解决图的问题一般都是转化为,树的问题来解决,所以本质上还是递归,队列,栈。在数据结构上图的表示方式就是邻接矩阵或者邻接表。还有什么十字链表什么不去记了,也不用。图的基本操作代码:class ANode { int data; ANode next ; } class...
分类:
其他好文 时间:
2015-07-26 20:38:18
阅读次数:
237
问题描述请大家登陆蓝桥杯官网看吧。在这里就不贴了。起初我用的是邻接矩阵存储图。最后一个数据n为10000,致使内存超标,运行错误。用邻接表存储图可解决此类问题。(可是到比赛时我们无法知道内存是否超标,那该怎么处理呢)。若你对从每个结点对树进行深度优先搜索的话,那么将会运行超时。看了别人的代码提示,我...
分类:
其他好文 时间:
2015-07-26 18:47:35
阅读次数:
547
仅谈谈个人对dijkstra的理解,dijkstra算法是基于邻接表实现的,用于处理单源最短路径问题(顺便再提一下,处理单源最短路径问题的还有bellman算法)。开辟一个结构体,其变量为边的终点和边权,这时候还需要一个这个结构体类型的数组,数组的下标则为边的始点,我们都知道在图中,一个始点连出去的...
分类:
编程语言 时间:
2015-07-26 10:57:05
阅读次数:
116