当前位置: 首页 > wzjs >正文

织梦网暂时关闭网站潍坊做网站优化

织梦网暂时关闭网站,潍坊做网站优化,室内软装设计软件,常用软件开发平台题目描述 有n个城市m条道路&#xff08;n<1000, m<10000)&#xff0c;每条道路有个长度&#xff0c;请找到从起点s到终点t的最短距离和经过的城市名。 输入 输入包含多组测试数据。 每组第一行输入四个数&#xff0c;分别为n&#xff0c;m&#xff0c;s&#xff0c;t…
题目描述

有n个城市m条道路(n<1000, m<10000),每条道路有个长度,请找到从起点s到终点t的最短距离和经过的城市名。

输入

输入包含多组测试数据。

每组第一行输入四个数,分别为n,m,s,t。

接下来m行,每行三个数,分别为两个城市名和距离。

输出

每组输出占两行。

第一行输出起点到终点的最短距离。

第二行输出最短路径上经过的城市名,如果有多条最短路径,输出字典序最小的那条。若不存在从起点到终点的路径,则输出“can't arrive”。

样例输入
3 3 1 3
1 3 3
1 2 1
2 3 1
样例输出
2
1 2 3

分析:《算法笔记》上的 dijkstra + DFS 模板题。注意这道题给出的数据里,两点之间有多条边, 之后输入的边会覆盖前面的,每次读入边的时候要比较是否是最短的边。如果用邻接表,因为会把每条边都存,就不会有覆盖的情况。

#include<algorithm>
#include <iostream>
#include  <cstdlib>
#include  <cstring>
#include   <string>
#include   <vector>
#include   <cstdio>
#include    <queue>
#include    <stack>
#include    <ctime>
#include    <cmath>
#include      <map>
#include      <set>
#define INF 0x3fffffff
#define db1(x) cout<<#x<<"="<<(x)<<endl
#define db2(x,y) cout<<#x<<"="<<(x)<<", "<<#y<<"="<<(y)<<endl
#define db3(x,y,z) cout<<#x<<"="<<(x)<<", "<<#y<<"="<<(y)<<", "<<#z<<"="<<(z)<<endl
#define db4(x,y,z,r) cout<<#x<<"="<<(x)<<", "<<#y<<"="<<(y)<<", "<<#z<<"="<<(z)<<", "<<#r<<"="<<(r)<<endl
#define db5(x,y,z,r,w) cout<<#x<<"="<<(x)<<", "<<#y<<"="<<(y)<<", "<<#z<<"="<<(z)<<", "<<#r<<"="<<(r)<<", "<<#w<<"="<<(w)<<endl
using namespace std;int graph[1001][1001];void dijkstra(int n,int s,int t,int d[],vector<int>pre[])
{bool vis[n+5]={0};d[s]=0;for(int times=0;times<n;++times){int u=-1,mini=INF;for(int i=0;i<=n;++i){if(!vis[i]&&d[i]<mini)u=i,mini=d[i];}if(u==-1)return;vis[u]=1;for(int i=0;i<=n;++i){if(!vis[i]&&graph[u][i]!=INF){if(d[i]>d[u]+graph[u][i]){d[i]=d[u]+graph[u][i];pre[i].clear();pre[i].push_back(u);}else if(d[i]==d[u]+graph[u][i]){pre[i].push_back(u);}}}}
}
//用一个vector存储路径经过的点序列,保留字典序最小的
void dfs(vector<int>pre[],int s,int t,vector<int>&ans,vector<int>temp)
{temp.push_back(t);if(t==s){vector<int>rev;for(int i=temp.size()-1;i>=0;--i){rev.push_back(temp[i]);}if(ans.empty()||rev<ans)ans=rev;return;}for(int i=0;i<pre[t].size();++i){dfs(pre,s,pre[t][i],ans,temp);}
}int main(void)
{#ifdef testfreopen("in.txt","r",stdin);
//    freopen("out.txt","w",stdout);clock_t start=clock();#endif //testint n,m,s,t;while(~scanf("%d%d%d%d",&n,&m,&s,&t)){int d[n+5]={0};vector<int>pre[n+5];for(int i=0;i<=n;++i){d[i]=INF;for(int j=0;j<=n;++j)graph[i][j]=INF;}for(int i=0;i<m;++i){int a,b,c;scanf("%d%d%d",&a,&b,&c);if(graph[a][b]>c)graph[a][b]=graph[b][a]=c;}dijkstra(n,s,t,d,pre);if(d[t]==INF)printf("can't arrive\n");else{printf("%d\n",d[t]);vector<int>ans,temp;dfs(pre,s,t,ans,temp);for(int i=0;i<ans.size();++i)printf("%d ",ans[i]);printf("\n");}}#ifdef testclockid_t end=clock();double endtime=(double)(end-start)/CLOCKS_PER_SEC;printf("\n\n\n\n\n");cout<<"Total time:"<<endtime<<"s"<<endl;        //s为单位cout<<"Total time:"<<endtime*1000<<"ms"<<endl;    //ms为单位#endif //testreturn 0;
}


文章转载自:

http://KywaP0Bo.npbkx.cn
http://7OpqDqDU.npbkx.cn
http://wA7kBs3c.npbkx.cn
http://i4GX9D3e.npbkx.cn
http://R7MekU5O.npbkx.cn
http://3y3Anajt.npbkx.cn
http://yzue2yWN.npbkx.cn
http://iHIQrtx1.npbkx.cn
http://zMqjRYNF.npbkx.cn
http://WHAWsHuF.npbkx.cn
http://Gk6LrgbK.npbkx.cn
http://IpvXVXus.npbkx.cn
http://6Yqw2J90.npbkx.cn
http://ZhQudVSs.npbkx.cn
http://YmFTVrr8.npbkx.cn
http://Og8uh3tk.npbkx.cn
http://8YQqmDps.npbkx.cn
http://y92cEHhf.npbkx.cn
http://EFggysGK.npbkx.cn
http://KMzbBXh0.npbkx.cn
http://uSdhRR6G.npbkx.cn
http://i4NgNGuq.npbkx.cn
http://SHfgrZB2.npbkx.cn
http://EFj6Ebjn.npbkx.cn
http://XBfFwKAI.npbkx.cn
http://CF8zZXe0.npbkx.cn
http://ip6uOhw3.npbkx.cn
http://1Lig5Ud9.npbkx.cn
http://E353dJif.npbkx.cn
http://w1DO2ubN.npbkx.cn
http://www.dtcms.com/wzjs/648236.html

相关文章:

  • 网站创建桌面快捷方式众志seo
  • 图书馆评估定级关于网站建设标准wordpress爆破字典
  • 新网站域名备案流程天猫建设网站的目的
  • 注册一个公司网站需要多少钱网站打开很慢
  • 做一个网站团队需要哪些人员ui设计页面布局和功能
  • 网站有什么优势学校网站建设工作
  • 塑胶包装东莞网站建设中牟建设工程信息网站
  • 网站怎么做英语和中文的大连建站平台
  • 厦门seo广东seo推广贵不贵
  • 有那个网站做简历模板wordpress 文章排序插件
  • 上海建设部门网站哪建设网站
  • 做品牌形象网站wordpress 自定义内容类型 pan
  • 宝山品牌网站建设成都哪家公司做网站
  • 做网站用空间好还是服务器好网站建设方案论文1500
  • 网站建设收税网站死链是什么
  • 做网站的为什么那么多骗子怎么找wordpress模板代码
  • 无极网站网站石家庄住房城乡建设网站
  • 对新网站做seo大概需要多久网站计划任务怎么做
  • 江苏省建设执业资格注册中心网站网上注册公司app
  • 杭州住房和城乡建设局网站首页做程序网站需要什么代码吗
  • 天津企业网站制作夸克搜索入口
  • 建立收费网站手机网站二级域名
  • 创建购物网站多少钱太原seo网站管理
  • 网站策划的内容包含了什么?如何让网站自适应手机
  • 网站 逻辑结构小网站下载渠道有哪些
  • 企业网站建设存在的典型问题有哪些?门户网站开发工具
  • 美食网站首页怎么做做非洲国际贸易网站
  • 衡水做网站服务商武进建设局网站为何老是打不开
  • 广州市医院网站建设昆明移动互联网开发
  • 视频网站建站费用活动策划书模板范文