题目描述

In Takahashi Kingdom, there is an archipelago of N islands, called Takahashi Islands. For convenience, we will call them Island 1, Island 2, ..., Island N.
There are M kinds of regular boat services between these islands. Each service connects two islands. The i-th service connects Island ai and Island bi.
Cat Snuke is on Island 1 now, and wants to go to Island N. However, it turned out that there is no boat service from Island 1 to Island N, so he wants to know whether it is possible to go to Island N by using two boat services.
Help him.

Constraints
3≤N≤200 000
1≤M≤200 000
1≤ai<bi≤N
(ai,bi)≠(1,N)
If i≠j, (ai,bi)≠(aj,bj).

输入

Input is given from Standard Input in the following format:
N M
a1 b1
a2 b2
:
aM bM

输出

If it is possible to go to Island N by using two boat services, print POSSIBLE; otherwise, print IMPOSSIBLE.

样例输入

3 2
1 2
2 3

样例输出

POSSIBLE

这个题之所以要写一下就是之前在打比赛的时候用了一个二维数组和两个嵌套的for循环,结果提交的时候老是超时,后来补提的时候参考了一下别人的代码,让自己算法优化了好多,写下来和大家分享一下

我的思路是这样的:首先开一个布尔数组,用来记录可能的中转站(存在一个岛屿可以从1号岛屿到达它或者是可以从它到达n号岛屿)的位置,如果这个中转站可以把1号和n号岛屿连接起来的话,那么答案就是可能的,否则就是不可能

#include<iostream>
using namespace std;
bool center[200001];//用来记录可能的中转站
bool flag=false;//代表是否可能,先默认为假,如果能找到沟通1和n号的中转站的话就是为真
int main(){int n,m;
cin>>n>>m;int start,end;//定义记录起点和终点的变量for(int i=1;i<=m;i++){cin>>start>>end;if(flag)continue;//如果在前面的几次数据中已经判断出可能的话,后边的数据就没有在判断的必要啦if(start==1){if(center[end]){/*如果看完整我的代码的话,就可以看出center【end】代表是否存在从end号岛屿到达n点的中转站,如果存在的话,那么这个中转站就把1号和n号连接了起来,那么就是可能的,flag设置为true*/flag=true;}elsecenter[end]=true;//如果没有存在的话就先把他记做可能的中转站}else if(end==n){if(center[start]){//这里刚好和上面反过来,我就不详细的解释啦flag=true;}elsecenter[start]=true;}}if(flag)cout<<"POSSIBLE"<<endl;elsecout<<"IMPOSSIBLE"<<endl;return 0;
}

Cat Snuke and a Voyage相关推荐

  1. 图论 —— 图的搜索

    [概述] 图的搜索问题,是给出一个抽象的字符矩阵代表一张图,根据根据题目要求,对图进行搜索,关于搜索算法:点击这里 根据搜索方法的不同,分为深度优先遍历(DFS).广度优先遍历(BFS),两者时间复杂 ...

  2. 矩阵拼接 cat padding_pytorch

    20201219 两个向量形成一个元素 aa=np.array([1,2]) bb=np.array([2,2]) cc=np.vstack((aa,bb)) dd=np.vstack((aa,bb) ...

  3. PyTorch的torch.cat

    字面理解:torch.cat是将两个张量(tensor)拼接在一起,cat是concatnate的意思,即拼接,联系在一起. 例子理解 import torch A=torch.ones(2,3) # ...

  4. 应用监控CAT之cat-client源码阅读(一)

    CAT 由大众点评开发的,基于 Java 的实时应用监控平台,包括实时应用监控,业务监控.对于及时发现线上问题非常有用.(不知道大家有没有在用) 应用自然是最初级的,用完之后,还想了解下其背后的原理, ...

  5. pytorch学习——torch.cat和torch.stack的区别

    合并tensors torch.cat 沿着特定维数连接一系列张量. torch.stack 沿新维度连接一系列张量. torch.cat 在给定维度中连接给定的 seq 个张量序列. 所有张量必须具 ...

  6. linux cat 查看文件内容 不带#号的,Linux下如何不用cat命令读取文件内容

    本文最后更新于2018年1月28日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢! =Start= 缘由: 在微信群里看到的一个讨论,觉得挺有启发意义的,所以在此整理一下,方便以后学习 ...

  7. 使用cat,awk和sort命令从nginx访问日志中统计user-agent类型

    业务场景描述如下: 我有一个Nginx的web服务器,需要从统计日志中统计有哪些类型的设备终端和浏览器访问了我的网站. 访问日志中的每条记录是这样的: 使用下面的命令得到user-agent所在的字段 ...

  8. 每天一个linux命令(10):cat 命令

    cat命令的用途是连接文件或标准输入并打印.这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用. 1.命令格式: cat [选项] [文件] ...

  9. 使用cat /proc/进程id/maps 查看进程内存映射

    proc/<PID>/maps 查看进程的虚拟地址空间是如何使用的. 该文件有6列,分别为: 地址:库在进程里地址范围 权限:虚拟内存的权限,r=读,w=写,x=,s=共享,p=私有: 偏 ...

  10. linux mv 环境变量,linux环境变量,cp,mv命令,more,less,cat,tail,head,的使用...

    linux环境变量,cp,mv命令,more,less,cat,tail,head,的使用 [email protected] ~]# cp /usr/bin/ls   /tmp/ [[email p ...

最新文章

  1. 物联网行业网络解决方案_2021物联网趋势:有望从物联网传感器网络中受益的5大行业...
  2. c++ 弧形面如何逆时针排序_这8种常见的Java排序算法,学算法必看!
  3. 刨根问底Objective-C Runtime(2)- Object Class Meta Class
  4. Oracle 11G 安装详解
  5. ISA禁止了symantec的LiveUpdate的使用
  6. jenkins 文件服务器,jenkins 部署文档
  7. winform 项目 发布后比本地运行慢_前端团队基于 GitLab CI/CD 的自动化构建、发布实践,快来学习吧...
  8. 【答辩问题】计算机专业本科毕业设计答辩需注意的内容
  9. 如何在服务器中安装mysql 以及安装禅道
  10. openGL之API学习(一四七)实时渲染、光线追踪渲染和栅格化渲染
  11. 【操作系统】结合哲学家进餐问题分析如何预防死锁
  12. Ubuntu系统打不开windows磁盘文件
  13. java仿制百度云盘_基于jsp的仿百度网盘-JavaEE实现仿百度网盘 - java项目源码
  14. 给Flutter中的Widget设置透明度
  15. php 触控精灵,背景控制,精灵图 3-12
  16. 使用osmconvert转换pbf文件至osm文件
  17. IDEA如何删除项目-小白实操记录
  18. KubeFed 集群联邦的演进和架构概览
  19. png图片压缩工具pngquant
  20. android安全模式

热门文章

  1. tp点一共有多少_dnf人家为什么比你多好几点tp点?原因终于找到啦
  2. openwrt-mt7628 wds配置
  3. Spring框架基础(中)
  4. java实现排列组合运算
  5. [CSP-S模拟测试]:Star Way To Heaven(最小生成树Prim)
  6. scroll-view实现下拉刷新(避免onload进入页面初始refresher-triggered为true触发下拉问题)
  7. informix常用时间运算和操作方法
  8. 超全NetLogo多主体仿真建模(小世界WWW+无标度网络+随机网)内含源码+界面设计+程序分析
  9. 饥荒控制台输入没用_饥荒控制台怎么使用?饥荒控制台代码应该怎么输入?_图文攻略_高分攻略_百度攻略...
  10. Python 将列表中的每个值都加一要怎么做?(列表解析式)