最短路径–dijkstra–Til the Cows Come Home

Description
贝西在田里,想回到谷仓,在农夫约翰叫醒她早上挤奶之前,尽可能多地睡一觉。贝茜需要她的美容睡眠,所以她想尽快回来。

农夫约翰的田里有N个地标(2<=N<=1000),唯一编号为1。地标1是谷仓;贝西整天站在的苹果树林是地标性的。奶牛在田野里行走时使用T(1<=T<=2000)双向牛径–在地标之间有不同长度的牛径。贝茜对自己的导航能力没有信心,所以一旦她开始航行,她就会一直保持从一开始到最后的轨迹。

考虑到地标之间的小径,确定贝西必须步行的最小距离才能回到谷仓。保证存在这样的路线。

Input
*第1行:两个整数:T和N
*第2行…T+1:每一行将一条轨迹描述为三个空格分隔的整数。前两个整数是轨迹之间的标志。第三个整数是轨迹的长度,范围为1…100。

Output
*第1行:一个整数,贝西从地标N到地标1的最小行程。

Sample Input
5 5
1 2 20
2 3 30
3 4 20
4 5 20
1 5 100
Sample Output
90
用dijkstra,此题我使用sum数组来表示点到起始位置的距离,套用dijsktra模板,注意处理此题有两点间路径长度不同的问题,应该选择小的距离存储

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <math.h>
#include <string.h>
#include <string>
#include <stack>
#include <queue>
#include <map>using namespace std;
const int inf=0x3f3f3f3f;
const int MAX=1e3+5;
const int inf=1<<29;
int m[MAX][MAX];
int t,N,sum[MAX],T=0;
bool p[MAX];
void dijkstra()
{fill(p,p+N+1,false);fill(sum,sum+N+1,inf);sum[N]=0;while(true){int v=-1;for(int i=N;i>=1;i--)if(!p[i]&&(v==-1||sum[v]>sum[i])) v=i;if(v==-1)    break;p[v]=true;for(int i=N;i>=1;i--){sum[i]=min(sum[i],sum[v]+m[v][i]);}}
}
int main()
{for(int i=0;i<MAX;i++)for(int j=0;j<MAX;j++){m[i][j]=inf;}cin>>t>>N;while(t--){int a,b,c,temp;cin>>a>>b>>c;m[a][b]=min(m[a][b],c);m[b][a]=min(m[b][a],c);}dijkstra();cout<<sum[1]<<endl;return 0;
}

最短路径--dijkstra--Til the Cows Come Home相关推荐

  1. POJ 2387 Til the Cows Come Home (最短路径 模版题 三种解法)

    原题链接:Til the Cows Come Home 题目大意:有  个点,给出从  点到  点的距离并且  和  是互相可以抵达的,问从  到  的最短距离. 题目分析:这是一道典型的最短路径模版 ...

  2. Til the Cows Come Home(dijkstra)

    题目连接: Til the Cows Come Home 题目: Bessie is out in the field and wants to get back to the barn to get ...

  3. Til the Cows Come Home(最短路-Dijkstra)

    Til the Cows Come Home(最短路-Dijkstra) judge:https://vjudge.net/contest/297882#problem/A Time limit:10 ...

  4. A - Til the Cows Come Home POJ - 2387

    A - Til the Cows Come Home POJ - 2387 最短路 #include<iostream> #include<cstdio> #include&l ...

  5. Poj 2387 Til the Cows Come Home 迪杰斯特拉(普通+优化)

    Til the Cows Come Home 迪杰斯特拉(普通+优化) 贝西在田里,想在农夫约翰叫醒她早上挤奶之前回到谷仓尽可能多地睡一觉.贝西需要她的美梦,所以她想尽快回来. 农场主约翰的田里有n( ...

  6. 最短路径-Dijkstra算法与Floyd算法

    最短路径-Dijkstra算法与Floyd算法 原文:https://www.cnblogs.com/smile233/p/8303673.html 一.最短路径 ①在非网图中,最短路径是指两顶点之间 ...

  7. 分支限界法:单源最短路径--dijkstra算法

    单源最短路径–dijkstra算法 前面已经多次介绍过dijkstra算法是贪心算法,是动态规划,实际上可以从分支限界的角度来理解: 分支限界法 分支限界法,实际上就是回溯法,一般意义的回溯法是基于深 ...

  8. 最短路径——Dijkstra算法以及二叉堆优化(含证明)

    一般最短路径算法习惯性的分为两种:单源最短路径算法和全顶点之间最短路径.前者是计算出从一个点出发,到达所有其余可到达顶点的距离.后者是计算出图中所有点之间的路径距离. 单源最短路径 Dijkstra算 ...

  9. 数据结构----单源最短路径Dijkstra

    数据结构----单源最短路径Dijkstra 原理:参考趣学数据结构 代码: stack.h 栈代码 #pragma once #include<stdio.h> #define maxS ...

  10. 最短路径Dijkstra算法和Floyd算法整理、

    转载自:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.html 最短路径-Dijkstra算法和Floyd算法 Dijks ...

最新文章

  1. 【每日一算法】最常见的单词
  2. 流利说统一可观察性平台实践
  3. 哈佛、MIT学者联手,创下矩阵乘法运算最快纪录
  4. HDU 6354 Everything Has Changed(余弦定理)多校题解
  5. Pycharm出现out of memory 的终极解决方法
  6. C++继承时的对象内存位置(一)有成员变量遮蔽时的内存分布
  7. 光流 | 基于Matlab实现Lucas-Kanade方法:方法2(附源代码)
  8. 为什么我们需要Maven
  9. Know more about Cache Buffer Handle
  10. 用php 用拼出一个菱形_这可是我没来过的杭州呀!远在开封的他,用一种特殊的方式,拼出一个彩色杭州...
  11. 需要额外端口信息_二端口网络及算例
  12. 测试上路2年,你处于什么阶段了?不醒着拼,你连应届生都比不过...
  13. python零基础自学教材-零基础的小白怎么学python?
  14. good nice fine well区别
  15. 【安装包】XMind-ZEN-Update-2019-for-Windows-64bit-9.2.1
  16. Python NLP完整项目实战教程(1)
  17. My Job Exceptation
  18. 史上最牛最全android开发知识汇总
  19. 无法正常显示计算机,电脑Office Word文档图标无法正常显示怎么办
  20. 计算机组成原理中动态RAM与静态RAM的比较

热门文章

  1. win2008r2用户账户控制什么意思_敏感信息泄露+IDOR+密码确认绕过=账户劫持
  2. 华为中兴表清白!愿向印度政府公布所有源代码
  3. dw站点和服务器,了解 Dreamweaver 站点
  4. CocosCreator 源码-CCAssetManager.js详解
  5. 结对编程——保龄球实验分析
  6. php中文网线上视频,看php中文网视频课程的正确姿势!
  7. 阅读替换净化规则_阅读:追书用它一个就够了(内附几千个书源)
  8. iOS 屏幕尺寸、分辨率、适配、UI规范
  9. 三星Android手机助力泰姆凯迪幼儿活动
  10. 朱贵便唤小喽罗分付 水浒