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 双向链表 ...
随机推荐
- SNF快速开发平台成长史V4.5-Spring.Net.Framework-SNF软件开发机器人
SNF快速开发平台成长史 SNF框架CS\BS 视频教程 https://pan.baidu.com/s/1dFegFKX SNF开发机器人教程:链接:https://pan.baidu.com/s/ ...
- 谈谈tmpdir与innodb_tmpdir的区别和用处
[背景] innodb_tmpdir是在innodb online ddl中提到的一个参数:大致的意思是innodb在做online-ddl的时候会向临时目录写入“临时排序文件” 而这些文件的大小基本 ...
- oracle 函数 输入值,查询数据,返回相应处理结果
create or replace function FUN_SEARCH_ORDERBY ( INSTACEID in varchar2,TYE IN varchar2) return varcha ...
- UltraVNC 简体中文版 1.2.2.1
1.专门针对WinXP进行编译,同时适用XP之后的Windows版本(XP/Vista/8.1/10/2003/2008/2012): 2.配置低的计算机,Win8.1之前的系统,需要安装Mirror ...
- MySQL主从复制作用和原理
一.什么是主从复制?主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库:主数据库一般是准实时的业务数据库. 二.主从复制的作用1.做数据的热备,作为后备数据库,主数据库服务器故障后, ...
- 让Elasticsearch集群冷热分离、读写分离【转】
转自:https://blog.csdn.net/jiao_fuyou/article/details/50511255 根据Elasticsearch中文社区<ES冷热分离(读写分离) hot ...
- 双网卡双线路DNS解析分析
在企业网络维护过程中我们经常会遇到这样或那样的奇怪问题,而很多问题需要有深厚的理论知识才能解决.而随着网络的飞速发展越来越多的中小企业开始尝试通过多条线路来保证网络的畅通,一方面双网卡下的双线接入可以 ...
- Ubuntu下安装antlr-4.7.1
简介:antlr工具将语法文件转换成可以识别该语法文件所描述的语言的程序. 例如:给定一个识别json的语法,antlr工具将会根据该语法生成一个程序,该程序可以通过antlr运行库来识别输入的jso ...
- 安装svn客户端后,代码不能提交
转载:https://jingyan.baidu.com/article/e8cdb32b3312f637052badde.html
- count(1)、count(*)与count(列名)的执行区别
执行效果: 1. count(1) and count(*) 当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了! 从执行计划来看,count(1)和coun ...