NYOJ-1238-最少换乘
来源:互联网 发布:sql查看创建表语句 编辑:程序博客网 时间:2024/05/07 21:26
ACM模版
描述
题解
和今年天梯赛 L3-2 题面很像,但是更加简单一些。这个题只是一个单纯的最短路,不过我们需要先对路线进行一个比较特殊的建图处理,比如说,
代码
#include <iostream>#include <cstdio>#include <vector>#include <queue>#include <cstring>using namespace std;const int MAXN = 505;const int INF = 0x3f3f3f3f;vector<int> vi[MAXN];int d[MAXN], vis[MAXN], a[MAXN];char s[100 * MAXN];void spfa(int s){ queue<int> q; q.push(s); vis[s] = 1; d[s] = -1; while (!q.empty()) { int u = q.front(); vis[u] = 0; q.pop(); for (int i = 0; i < vi[u].size(); i++) { int v = vi[u][i]; if (d[v] > d[u] + 1) { d[v] = d[u] + 1; if (!vis[v]) { vis[v] = 1; q.push(v); } } } }}int main(){ int T; cin >> T; int n, m; while (T--) { memset(vis, 0, sizeof(vis)); cin >> m >> n; getchar(); for (int i = 1; i <= n; i++) { d[i] = INF; vi[i].clear(); } for (int i = 0; i < m; i++) { fgets(s, 100 * MAXN, stdin); int len = (int)strlen(s); len--; int cnt = 0; for (int i = 0; i < len; i++) { while (s[i] == ' ') { i++; } int num = 0; while (s[i] >= '0' && s[i] <= '9') { num *= 10; num += s[i] - '0'; i++; } a[cnt++] = num; } for (int j = 0; j < cnt; j++) { for (int k = j + 1; k < cnt; k++) { vi[a[j]].push_back(a[k]); } } } spfa(1); if (d[n] == INF) { cout << "NO" << endl; } else { cout << d[n] << endl; } } return 0;}
0 0
- NYOJ 1238 最少换乘
- NYOJ 1238 最少换乘
- NYOJ-1238-最少换乘
- NYOJ 题目1238 最少换乘
- nyoj--1238--最少换乘(最短路)
- nyoj 1238 最少换乘(spfa)
- nyoj 1238 最少换乘 (河南省第八届acm程序设计大赛)
- 第八届河南省程序设计大赛-NYOJ-1238-最少换乘
- nyoj 1238 最少换乘 【最短路径-Dijksra】
- nyoj 1238最小换乘
- NYOJ 1238 最小换乘
- nyoj 1238 最少换乘 河南省ACM2015年省赛C题 《模拟+优先队列》
- 最少换乘
- 最少换乘
- 最少换乘 第八届
- 飞机最少换乘次数问题
- 飞机最少换乘次数问题
- NOJ_1049 飞机最少换乘次数
- 1059. C语言竞赛
- 互逆素数
- JDBC 更新数据结构集操作
- Shell 脚本简记 -- 测试网络主机执行某段程序
- 环信使用沉浸式菜单栏输入框问题
- NYOJ-1238-最少换乘
- [cocos2dx]网络请求httpClient
- Java集合之Hashtable
- 山东第六届省赛Circle of Friends(强联通缩点最短路)
- CentOS 设置DNS
- wordcount-使用eclipse插件中对文件路径的修改
- Android实现多图上传 QQ发说说图片上传 朋友圈图片上传
- java伊始
- linux系统的网络管理(2)TCP的三次握手和UDP