最少换乘 之简化版
2016-03-14 10:49
148 查看
将题目中要的 需要换的车数 换成 需要走的站数
![](http://images2015.cnblogs.com/blog/829161/201603/829161-20160314104733240-1619558277.png)
![](http://images2015.cnblogs.com/blog/829161/201603/829161-20160314104742334-1075516561.png)
下面附上 本人的 渣渣代码
![](http://images2015.cnblogs.com/blog/829161/201603/829161-20160314104733240-1619558277.png)
![](http://images2015.cnblogs.com/blog/829161/201603/829161-20160314104742334-1075516561.png)
下面附上 本人的 渣渣代码
/*主要是因为 这个题按照要求写不出来 就先写了个这 等等补上 完整的*/ // 我的思路就是 用 vector去构建出来一个 有向图 然后开始广搜 #include<stdio.h> #include<vector> #include<queue> #include<string.h> using namespace std; struct station { int step,n; }e; vector<int>v[505]; // 用于 构造 单向图 queue<station>Q; // 用于储存公交站 int visited[505],mark,count,c; void map(int n) // 开始构图 { int q,i,j,a,b; // 多弄几个标记变量 a=b=0; char str[2000]; for(i=0;i<n;i++) { gets(str); // 开始 每一 行 收 集信息 c=strlen(str); for(q=j=0;j<c;q++,j++) { while(str[j]!=' '&&j<c) // 如果不是空格的话 就可以出去了 { a+=(str[j]-'0'); // j++; } if(q!=0) // 如果这是 第一次进来 { v[b].push_back(a); // 不是第一次进来 上一次算出来的值 给了b ,这次的值是 a 这样就是 b 可以到a 但是 a 不能到 b 形成了单程路线 } b=a; a=0; } } } void BFS(int n,int m)// 上面 map已经完成了 构图的 重任 下面就轮到 搜索了 再熟悉一下深搜和广搜的 区别 { // 在这里 要得就是最短路 所以直接去进行广搜 就对了 station q; int i; q.step=0; q.n=n; Q.push(q); while(!Q.empty()) { station q1; q1=Q.front(); for(i=0;i<v[q1.n].size()&&!visited[q1.n];i++) // 将可以从 n1 到达的 地方一个一个的压进去 已经做过大本营的 标记一下不再 做 { station q; q.n=v[q1.n][i]; q.step=q1.step+1; Q.push(q); } visited[q1.n]=1; Q.pop(); if(q1.n==m) { mark=q1.step; } if(mark!=0) break; ; } while(!Q.empty()) Q.pop(); } int main() { int t,n,m; scanf("%d",&t); while(t--) { memset(visited,0,sizeof(visited)); memset(v,0,sizeof(v)); scanf("%d%d",&n,&m); getchar(); map(n); BFS(1,m); //从第一站 开始 if(mark!=0) printf("%d\n",mark-1); else printf("NO\n"); mark=0; } return 0; }
相关文章推荐
- 3月9日作业
- 启动activity时,有个一闪而过界面
- memcached 源代码安装
- Merge Two Sorted Lists
- Druid连接池简单入门配置
- MediaPlayer
- 应用程序权限设计
- 10款流行的Markdown编辑器
- iOS程序内发短信
- MongoDB 3 + Windows 7 X64安装及配置
- MyBatis——基础
- 【poj1821】Fence 单调队列优化DP
- Session和Cookie的关系
- Problem E
- 第五天git学习记录
- Android 最火的快速开发框架XUtils
- php 数组 添加元素、删除元素
- 4296: [PA2015]Mistrzostwa|图的联通
- cmd中乱码暂时解决
- this bind apply call