TZOJ :2731: 存钱计划(二)
描述
在TZC,WY存了钱,现在他要去买东西了。店很多,标记为1,2,3,4,5,6....但有的店之间有大路相连,而有的没有路。现在要由一个店到另一个店买东西,中途最少要经过多少个其它的店铺呢?

如图例,如果他从1开始到5,那么至少要经过1个店铺,从1到4至少要经过2个店铺。
输入
输入数据有多组,每组的第一行是两个正整数n, k(1<=n<=1000, 1<=k<=2000),接下来有k行,每行有两个正整数a, b(1 <= a, b <= n),表示店铺a和b之间有路相连,接下来一行为两个正整数p和q分别代表起始店铺。当n, k输入都为0时结束。
输出
输出从店铺p到店铺q之间最少要经过的其它的店铺的数目。如果从p无法到达q,则输出"No solution"。
样例输入
6 6
1 4
1 2
2 3
3 4
5 4
5 6
1 6
0 0
样例输出
2
解题思路:BFS+记录步数
菜鸡的成长史 ^-^
#include <bits/stdc++.h>
using namespace std;
const int N=;
vector<int> G[N];
int n,m,vis[N];
struct Node
{
int B;
int S;
}p,q;
void bfs(int start,int ending)
{
int flag=;
queue<Node> que;
p.S=,p.B=start;
que.push(p);
while(!que.empty())
{
q=que.front(),que.pop();
int u=q.B,w=q.S;
if(vis[u]) continue;
vis[u]=;
for(auto X:G[u])
{
q.B=X,q.S=w+;
if(q.B==ending) {cout << q.S- << endl,flag=;break;}
que.push(q);
}
if(flag==) break;
}
if(flag==) cout << "No solution" << endl;
while(!que.empty()) que.pop();
}
int main()
{
ios::sync_with_stdio(false);
while(cin>>n>>m&&(n+m))
{
int d1,d2;
while(m--){
cin>>d1>>d2;
G[d1].push_back(d2),G[d2].push_back(d1);
} //建图
int start,ending;
cin>>start>>ending;
memset(vis,,sizeof(vis)); //标记
bfs(start,ending);
for(int i=;i<=n;i++) G[i].clear(); //注意清楚
}
return ;
}
TZOJ :2731: 存钱计划(二)的更多相关文章
- nyoj 54-小明的存钱计划
点击打开链接 小明的存钱计划 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 小明的零花钱一直都是自己管理.每个月的月初妈妈给小明300元钱,小明会预算这个月的花销,并且 ...
- TOJ 2732存钱计划(三)(单源最短路)
存钱计划(三) 时间限制(普通/Java):1000MS/30000MS 运行内存限制:65536KByte 总提交: 18 测试通过: 16 描述 TZC的店铺比较 ...
- 小明的存钱计划 南阳acm54
小明的存钱计划 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 小明的零花钱一直都是自己管理.每个月的月初妈妈给小明300元钱,小明会预算这个月的花销,并且总能做到实际花 ...
- nyoj 54-小明的存钱计划 (遍历 + 判断)
54-小明的存钱计划 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:5 submit:11 题目描述: 小明的零花钱一直都是自己管理.每个月的月初妈 ...
- 抖音很火的存钱计划,让python告诉你总共可以存到多少钱!
抖音上有个很火的存钱计划,说是第一天存1块钱,第二天存2块钱,第三天存3块钱.....依此类推存365天,总共可以存到多少钱,我们现在用python告诉你怎么做: #定个初始存入金额 money = ...
- Oracle - SPM固定执行计划(二)
一.前言 前面文章(https://www.cnblogs.com/ddzj01/p/11365541.html)给大家介绍了当一条sql有多个执行计划时,如何通过spm去绑定其中一条执行计划.本文将 ...
- SQL 执行计划(二)
最近总想整理下对MSSQL的一些理解与感悟,却一直没有心思和时间写,晚上无事便写了一篇探索MSSQL执行计划,本文讲执行计划但不仅限于讲执行计划. 网上的SQL优化的文章实在是很多,说实在的,我也曾经 ...
- TZOJ 2725 See you~(二维树状数组单点更新区间查询)
描述 Now I am leaving hust acm. In the past two and half years, I learned so many knowledge about Algo ...
- 通向码农的道路(enet开源翻译计划 二)
QQ 324186207群 enet交流技术,主要是为了研究tcp内部执行机制.欢迎大家增加探讨.小弟水平有限,翻译难免有误. . http://enet.bespin.org 解析enet 双向链表 ...
随机推荐
- Nload(CentOS网速的实时监控)
Nload(CentOS网速的实时监控)的安装和安装过程中的问题 I. 安装 Download the latest rpmforge-release rpm from wget ftp://ftp. ...
- maven手动安装本地jar到仓库
1.有时候IDE maven下载不到jar,这时候可以在官网下载对应jar后安装到maven仓库. 下面以jdbc jar为例子,安装命令: mvn install:install-file -Dgr ...
- Mysql Binlog三种格式详细介绍
一.MySQL Binlog格式介绍 mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 查看binlog的格式的脚本: 二.binlog 的不同模式有什么区别 ...
- 斐讯K1 K2 开启Telnet
官方V21.4.5.5前的ROM,直接打开下边这个链接就直接开telnet了,然后就可以随便搞了 http://192.168.2.1/goform/gra_NTPSyncWithLocal?text ...
- NO.2 安装配置
检测当前系统下的jdk安装情况: [root@Centos 桌面]# rpm -qa | grep java tzdata-java-2012j-1.el6.noarch java-1.7.0-ope ...
- Halcon 彩色图片通道分割处理
1.RGB通道:R红色,G绿色,B蓝色:R.G.B各占一个字节,取值范围在0—255:可代表的颜色数256*256*256==2^24 黑色区域是:R=G=B=0; 白色区域是:R=G=B=255 ...
- 释放锁标记只有在Synchronized代码结束或者调用wait()。
释放锁标记只有在Synchronized代码结束或者调用wait(). 注意锁标记是自己不会自动释放,必须有通知. 注意在程序中判定一个条件是否成立时要注意使用WHILE要比使用IF要严密. WHIL ...
- (原)ffmpeg过滤器开发和理解
最近学习了ffmpeg关于filter过滤器的开发,关于中间的几个相关概念,我们先放在简单介绍一下: AVFilterGraph:几乎完全等同与directShow中的fitlerGraph,代表一串 ...
- 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务
在Spring Cloud Netflix栈中,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端.我们可以使用JDK原生的URLConnection.Ap ...
- oracle 聚合函数 LISTAGG ,将多行结果合并成一行
LISTAGG( to_char(Item_Category_Name), ',') WITHIN GROUP(ORDER BY Item_Category_Name) -- 将 Item_Cate ...