最短路径(dij+floyd)
文章平均质量分 78
Polya_Xue
这个作者很懒,什么都没留下…
展开
-
hdu2112dijkstra
这是我见过的最奇怪的超时了, for(int i=0; i for(int j=0; j { if(i==j) map[i][j]=0; else map[i][j]=105;原创 2017-05-21 22:00:32 · 173 阅读 · 0 评论 -
p3615_floyd
求最短距中最大的那个边 把map[i][j]=map[i][k]+map[k][j]改成map[i][j]=max(map[i][k],map[k][j]) 因为要求的是最大的那个边 #include #include #define INF 1e9 using namespace std; const int maxn = 300+10; int n,m,t; int转载 2017-05-08 23:10:03 · 170 阅读 · 0 评论 -
p1125_floyd
挺水的题,不过解题蛮巧妙,如果没这样想的话可能会挺麻烦 用floyd求出两个点之间的最小距后,判断从每一个点i到所有其他的点的最大值,这个值就是从i开始所需要的时间,判断哪个点时间最短就可以了 #include #include #include #define inf 10000 using namespace std; int n,maxend,iend;原创 2017-05-07 20:52:47 · 154 阅读 · 0 评论 -
spfa最短距
以p1847为例 spfa算法。。。。 还是复制一下吧 算法思想:我们用数组d记录每个结点的最短路径估计值,用邻接表来存储图G。我们采取的方法是动态逼近法:设立一个先进先出的队列用来保存待优化的结点,优化时每次取出队首结点u,并且用u点当前的最短路径估计值对离开u点所指向的结点v进行松弛操作,如果v点的最短路径估计值有所调整,且v点不在当前的队列中,就将v点放入队尾。转载 2017-05-04 22:24:06 · 187 阅读 · 0 评论 -
p1847_floyd最短距
好久没写最短距,有点忘了。。。 #include #include #include #include #define inf 1000005 using namespace std; int n,st,ed; int map[110][110]; void floyd() { for(int i=1;i { for(int j=原创 2017-05-02 21:38:04 · 172 阅读 · 0 评论 -
最短路dijkstra,floyd
两点之间的最小距离,dijkstra是计算某个点到其余点的最短路径,而floyd计算任意两点间最短路 感觉两个差不多,对于某两个点a,b之间 的距离,找到一个点c,比较原距离是否大于ac的距离加cb的距离之和,我感觉我还没有深刻的理解,总是觉得会出什么疏漏,然而也找不到解决的方法,摊手,以后再多加理解 两道题输入格式是一样的,参考了hdu2112 /*********************原创 2017-01-18 22:40:04 · 208 阅读 · 0 评论 -
hdu1142(最短路+DFS)
题目大意:寻找一共有多少条符合题意的路。能够从点A走到点B的要求是:点A到终点的最短路 > 点B到终点的最短路。 也就是说:从终点出发,求每一个点的最短路,然后那些最短路的值记录起来,作为能否通过的判断条件。最后用记忆化搜索来搜索出一共多少条符合要求的路。普通的dfs是超时的,bfs是超内存的。 #include #include #include转载 2017-08-08 21:35:49 · 386 阅读 · 0 评论 -
poj1502spfa(模板)
就是一道最短路,只要输出的是到每个点的最短路中的最大值 #include #include #include #include #define inf (1 #define m 1000 using namespace std; int map[m][m],vis[m],d[m],n; void dijkstra() { memset(vis,0,si原创 2017-05-20 18:19:36 · 189 阅读 · 0 评论