★☆   输入文件:djs.in   输出文件:djs.out   简单对比

时间限制:3 s   内存限制:128 MB

过暑假了,阿杜准备出行旅游,他已经查到了某些城市的两两之间的距离及可行路线(可行路线有方向),如下图所示。请你编程计算从阿杜所住城市到其它城市的最短路径以帮助阿杜制定旅行计划。

【输入格式】

输入由若干行组成,第一行有三个整数,n(1≤n≤100)、m(1≤m≤n2)、v(1≤m≤n);城市数,m城市间道路数,v是阿杜所住城市。第2至m+1行是每条路的信息,每行三个整数,为道路的起点、终点和两城市间距离。(城市从0开始编号)

【输出格式】

n组(按城市编号由小至大),每组三行

第一行:城市编号及一个冒号

第二行:path及一个冒号,后面是最短路径节点编号序列(编号间用一个空格隔开)

第三行:cost及一个冒号,后面是一个整数,表示路径距离

如果没有通路则输出 no

【输入样例】

6 8 0
0 2 10
0 4 30
0 5 100
1 2 5
2 3 50
3 5 10
4 3 20
4 5 60

【输出样例】

0:
no
1:
no
2:
path:0 2
cost:10
3:
path:0 4 3
cost:50
4:
path:0 4
cost:30
5:
path:0 4 3 5
cost:60

spfa+路径输出(要求的前驱结点,在路程小的情况下编号最小):
#include<iostream>
#include<cstdio>
#include<queue>using namespace std;
const int N=110;
const int Maxn=9999999;int dis[N],pre[N],fitpre[N],head[N];
bool vis[N];
int n,m,start,now=1,js;
queue<int>q;
struct node{int u,v,w,nxt;
}E[N*N];inline int read()
{int x=0;char c=getchar();while(c<'0'||c>'9')c=getchar();while(c>='0'&&c<='9')x=x*10+c-'0',c=getchar();return x;
}inline void add(int u,int v,int w)
{E[now].v=v;E[now].w=w;E[now].nxt=head[u];head[u]=now++;
}inline int spfa(int start,int endd)
{for(int i=0;i<n;i++)dis[i]=Maxn,pre[i]=0;dis[start]=0;vis[start]=1;q.push(start);while(!q.empty()){int top=q.front();q.pop();vis[top]=0;for(int i=head[top];~i;i=E[i].nxt){if(dis[E[i].v]>dis[top]+E[i].w){dis[E[i].v]=dis[top]+E[i].w;pre[E[i].v]=top;if(!vis[E[i].v])q.push(E[i].v),vis[E[i].v]=1;}if(dis[E[i].v]==dis[top]+E[i].w)pre[E[i].v]=min(pre[E[i].v],top);}    }return dis[endd];
}int main()
{freopen("djs.in","r",stdin);freopen("djs.out","w",stdout);n=read(),m=read(),start=read();for(int i=0;i<n;i++)head[i]=-1;for(;m;m--){int u=read(),v=read(),w=read();add(u,v,w);}for(int i=0;i<n;i++)if(i==start)printf("%d:\nno\n",i);else{int diss=spfa(start,i);if(diss==Maxn)printf("%d:\nno\n",i);else{printf("%d:\n",i);printf("path:");js=0;int ii=i;while(ii!=start){fitpre[++js]=ii;ii=pre[ii];}fitpre[++js]=start;for(int j=js;j>0;j--)printf("%d ",fitpre[j]);printf("\ncost:%d\n",diss);}    }return 0;
}


转载于:https://www.cnblogs.com/lyqlyq/p/7137535.html

cogs 2. 旅行计划相关推荐

  1. COGS 2. 旅行计划

    2. 旅行计划 ★☆   输入文件: djs.in   输出文件: djs.out   简单对比 时间限制:3 s   内存限制:128 MB 过暑假了,阿杜准备出行旅游,他已经查到了某些城市的两两之 ...

  2. 牛客ACM赛 B [小a的旅行计划 ]

    链接 B 小a的旅行计划 把\(n\)个数中选任意数分成\(a,b\)两个集合,集合无区别,要求不包含且有交,求方案数.\(n\leq 10^{13}\) 首先讨论\(a,b\)并集是否为全集: 若是 ...

  3. 【拓扑排序】【DP】旅行计划(luogu 1137)

    旅行计划 luogu 1137 题目大意: 有一堆点,之间连接着一些边(有向),保证无环,现在要求出从任意地方出发到所有点的最长路(出发点不一定相同) 原题: 题目描述 小明要去一个国家旅游.这个国家 ...

  4. 51nod 1273 旅行计划——思维题

    某个国家有N个城市,编号0 至 N-1,他们之间用N - 1条道路连接,道路是双向行驶的,沿着道路你可以到达任何一个城市.你有一个旅行计划,这个计划是从编号K的城市出发,每天到达一个你没有去过的城市, ...

  5. 丽思卡尔顿游轮正式加入万豪旅享家旅行计划

    上海2021年12月9日 /美通社/ -- 万豪国际集团旗下享誉盛名的的旅行计划万豪旅享家(Marriott Bonvoy®)近日宣布,丽思卡尔顿游轮于2021年11月9日起正式加入该计划.丽思卡尔顿 ...

  6. 动态规划+vector解旅行计划问题

    动态规划+vector解旅行计划问题 题目描述 小明要去一个国家旅游.这个国家有#N个城市,编号为1至N,并且有M条道路连接着,小明准备从其中一个城市出发,并只往东走到城市i停止. 所以他就需要选择最 ...

  7. 2023北京旅行计划 2023带父母北京旅行计划

    2023北京旅行计划 2023带父母北京旅行计划 一.概述 2023年开始啦,疫情也差不多告别一段落. 准备安排父母来我工作的城市 --- 北京,旅行一番,逛一逛,看一看. 大致的事项:1. 体检 : ...

  8. 从零开始学微信小程序开发:6 旅行计划调查

    小程序对HTML5表单及表单元素进行了封装,提供了丰富的表单组件. 6.1 用form组件收集信息 form(表单)也是前端视图层与后端服务层交互过程中最重要的信息来源. 小程序的form组件具有一些 ...

  9. 【洛谷】P1137旅行计划

    [洛谷]P1137旅行计划 题目描述 小明要去一个国家旅游.这个国家有N个城市,编号为1至N,并且有M条道路连接着,小明准备从其中一个城市出发,并只往东走到城市i停止. 所以他就需要选择最先到达的城市 ...

  10. C++ P0002 旅行计划

    题目:旅行计划 第一次搞输出多个最短路径,搞了有一会儿,方法不太好,有更好的方法可以教me! # include <iostream> # include <cstdio> # ...

最新文章

  1. Javascript小括号“()”的多义性
  2. py库: django (web框架)
  3. vue插槽的使用(slot)
  4. 关于用VS写C程序运行时出现烫字以及乱码的问题的原因
  5. 历史上知名的反转现场
  6. 华为麦芒9正式亮相:6400万三摄,2199元起
  7. 创建和分享你的Visual Studio color
  8. 如何从tomcat官网下载自己需要的版本
  9. 计算机毕业设计Python+uniapp鲸落图书商城小程序LW(小程序+源码+LW)
  10. Ubuntu 16G内存在android系统 10/11/12/13编译 framework时候经常oom内存不足,电脑卡死解决办法stubs-docs-non-updatable metalava
  11. 可扩展java游戏框架实践之java飞机大战
  12. 使用 Android Studio 搭建安卓开发环境
  13. C/C++编程学习 - 第9周 ③ 整理药名
  14. latex 行间公式大小(批量设置)
  15. 老调重弹--自建blog网站
  16. MySQL 8.0.23免安装版配置步骤
  17. raspberry树莓派 -- CAN收发 - waveshare微雪
  18. AD PCB板布线高亮解决方法
  19. 从加密硬件开始,三未信安想在云时代转型云加密服务商
  20. Zemax操作13--光纤耦合输出光束整形设计条形光斑

热门文章

  1. linux 命令 aft,AFT整理出来的NPC检测命令大全
  2. 解决 login.live.com onedrive.live.com 等微软国外网站打不开问题
  3. @ResponseBody详解
  4. 数字序号的级别与文章层次结构的关系
  5. excel高级筛选怎么用_Excel高级筛选使用
  6. 蓝牙耳机无法与计算机连接,蓝牙耳机与电脑无法配对、或者连接不上
  7. Arduino使用火焰传感器
  8. python安装以及插件安装
  9. 一文搞懂天使轮、A轮、B轮、C轮、D轮融资
  10. 联想微型计算机不支持xp,联想台式机不能装xp怎么办