先上链接http://acm.nyist.net/JudgeOnline/problem.php?pid=1238

基本没难点,最基础的迪杰斯特拉。输入用字符串处理gets()和getline()都可以。记得用getchar()吃掉回车。但是我居然写了四天,残念~~最后被狗哥一句话点醒,输入有多位数啊,魂淡!!!不提了,我先静静。上代码

#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cstring>
#include<sstream>
#include<stack>
#include<queue>
#include<fstream>
#include<algorithm>                                                                                                                                 j
#include<map>
#include<set>
#include<vector>
#include<functional>
#include<cmath>using namespace std;
const double PI=acos(-1.0);
#define INF 0x3f3f3f3f
#define NINF 0xbfffffff
int m,n,t;
char str[2000];
int lim[510];
int map1[505][505];
int g;
void cleaner()
{for(int j=1; j<=n; j++)for(int i=1; i<=n; i++){if(i==j)map1[i][j]=0;elsemap1[i][j]=5000;}
}void dij()
{bool flag[505];int lowcost[505];int prev[505];for(int i=1; i<=n; i++){lowcost[i]=5000;flag[i]=false;prev[i]=-1;}lowcost[1]=0;//for(int i = 1; i <= n; i++)//lowcost[i] = map1[1][i];
//cout<<lowcost[7]<<endl;for(int j=1; j<=n; j++){int k=-1;int Min=5000;for(int i=1; i<=n; i++){if(!flag[i]&&lowcost[i]<Min){Min=lowcost[i];k=i;}}if(k==-1)break;flag[k]=true;for(int i=1; i<=n; i++){if(!flag[i]&&lowcost[k]+map1[k][i]<lowcost[i]){lowcost[i]=lowcost[k]+map1[k][i];prev[i]=k;//cout<<"kkk"<<endl;}}}if(lowcost[n]<5000)cout<<lowcost[n]-1<<endl;elsecout<<"NO"<<endl;
}int main()
{cin>>t;while(t--){cin>>m>>n;getchar();cleaner();for(int i=0; i<m; i++){gets(str);g=0;for(int j=0; j<strlen(str); j++){if(str[j]!=' '){int sum=0;while(str[j] != ' ' && j < strlen(str)){sum = sum*10 + (str[j] - '0');j++;}//处理多位数,比较坑lim[g++]=sum;}}for(int b=0; b<=g; b++){for(int k=b+1; k<=g; k++){map1[lim[b]][lim[k]]=1;}}}//处理字符串/*for(int i=1;i<n;i++){for(int j=1;j<n;j++){cout<<map1[j][i];}cout<<endl;}*/dij();}return 0;
}

tips:这道题prev【505】可以不要,我是为了方便找错。另外数据不大,弗洛伊德也是可以的

nyoj1238 最少换乘 最短路相关推荐

  1. 最少换乘(最短路+恶心的输入)acm寒假集训日记22/1/3 or 22/1/4

    题目如下: AC代码如下: #include<iostream> #include<cstring> #include<cstdio> using namespac ...

  2. 1049-飞机最少换乘次数问题

    描述 设有n个城市,编号为0-n-1,m条单向航线的起点和终点由输入提供,寻找一条换乘次数最少的线路方案. 输入 第一行为三个整数n.m.v,表示城市数.单向航线数和起点城市.以下m行每行两个整数,表 ...

  3. NYOJ 1238 最少换乘

    原题链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=1238 最少换乘 时间限制:2000 ms  |  内存限制:65535 KB 难度:3 ...

  4. LeetCode 815. 公交路线(最少换乘,BFS)

    1. 题目 我们有一系列公交路线.每一条路线 routes[i] 上都有一辆公交车在上面循环行驶. 例如,有一条路线 routes[0] = [1, 5, 7],表示第一辆 (下标为0) 公交车会一直 ...

  5. nyoj 1238 最少换乘(spfa)

    描述 欧洲某城是一个著名的旅游胜地,每年都有成千上万的人前来观光旅行.Dr. Kong决定利用暑假好好游览一番.. 年轻人旅游不怕辛苦,不怕劳累,只要费用低就行.但Dr. Kong年过半百,他希望乘坐 ...

  6. NYOJ1238 最小换乘

    传送门:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=1238 比赛的时候题目都没有看,以为是校赛的那道题(一直没有处理),赛后看了原来不是那 ...

  7. 南邮数据结构实验三---图的基本运算及飞机换乘次数最少问题

    一. 实验目的和要求 1.掌握在图的邻接矩阵和邻接表存储结构实现图的基本运算的算法.学习使用图算法解决应用问题的方法. (1). 验证教材中关于在邻接矩阵和邻接表两种不同存储结构上实现图的基本运算的算 ...

  8. 南京邮电大学数据结构实验三(图的基本运算及飞机换乘次数最少问题)

    文章目录 实验一.图的基本运算 1.邻接矩阵表示 (1)验证基本运算 (2)图的深度和宽度优先遍历(邻接矩阵) 2.邻接表表示 (1)验证基本运算 (2)图的深度和宽度优先遍历(邻接表) 实验二.飞机 ...

  9. acwing单源最短路的建图模式总结

    .根据边权的范围以及问题求解的需要,最短路问题可以分为以下 4 种情形,分别用不同的算法求解. • 单源最短路径(固定一个顶点为原点,求源点到其他每个顶点 的最短路径) • 1. 边权非负:Dijks ...

最新文章

  1. C语言编程技巧-signal(信号机制)
  2. ThreadLocal 变量和 与线程池配合使用时可能会出现的问题
  3. 【数据结构】之算法效率的度量
  4. SAP Customer Data Cloud(Gigya)的用户搜索实现 1
  5. asp.net request获取url各个部分
  6. [C++] - auto的使用、优点和缺点
  7. iec611313标准下载_IEC 61730-1-2016
  8. java三国策略手游_策略三国下载-策略三国手游官网版下载-Minecraft中文分享站
  9. 过去分词和现在分词作非谓语
  10. FPGA作为电力电子设备控制器的实践
  11. HLS、Smooth Streaming、HDS和Dash
  12. 电影《功夫熊猫1》中的管理知识
  13. python 词云(Word Cloud)设计
  14. 解决ubuntu 16.04 启动黑屏,出现dev/sda7: clean, xxx/xxx files, xxx/xxx blocks字样问题
  15. 中国大陆手机号码如何注册谷歌账号?解决手机收不到验证码
  16. 基于TCP协议网上聊天程序(python)带界面
  17. 使用pdf.js把PDF文件转图片
  18. Android Telephony
  19. 红米note4出厂系统版本_红米 Note 4 开始接收 MIUI 10 国际稳定版系统更新
  20. 《Python数据分析基础教程:NumPy学习指南(第2版)》笔记4:第二章 NumPy基础3——数组的组合、分割,数组转换为列表

热门文章

  1. 微信开发者小程序项目拉取与推送
  2. 一步一步教你将java代码打成jar包用bat批处理命令运行
  3. UNITY小白3D坦克大战制作学习笔记1
  4. 信息安全技术:健康医疗数据安全指南思维导图
  5. 从网页复制内容到富文本、或者富文本里自己加样式,当ajax传参时候,总是莫名其妙丢失变成无意义的html,究竟是为什么呢
  6. [完结]saliency filters精读之permutohedral lattice
  7. ebay架构师总结伸缩性要旨!!
  8. Linux修改静态IP
  9. 跟主页劫持的浏览器再见了,被恶意劫持修改方法!
  10. 360度全景标定方法_一种用于360°全景泊车辅助系统的标定布及标定场地_2015209958302_说明书_专利查询_专利网_钻瓜专利网...