7-4 一笔画 (25 分)

小丁最近迷恋上一个游戏,传说中的“一笔画”游戏。
那么什么是一笔画?如下图,顾名思义就是一笔可以完成的图。一笔画最基本的要求是在画图的过程中,笔不能离开纸,且笔所画过的线不能重复,最后画完所有的线便算完成。

虽然小丁喜欢玩这个游戏,但有时候花费半天也找不到答案。小丁听说写一个计算机程序便能判断是否可以一笔画图,所以他希望善良可爱的你来帮帮他的忙。

快来帮帮弱小,可怜,又无助的小丁。

输入格式:

给出图中的节点数N(1<=N<=1000,编号1-N)和边数M;随后M行给出存在边的两个节点的编号。

输出格式:

能够一笔画的图输出Y,否则输出N。

输入样例1:
3 2
1 2
2 3
输出样例1:
Y

输入样例2:
4 3
1 2
1 3
1 4
输出样例2:
N

从题目中看出,点可以多次遍历,但是边只能遍历一次,所以我们要存边,通过dfs能经过的边数来判断是否“一笔画”;

#include <iostream>
#include <algorithm>
using namespace std;
const int maxn=1e3+5;
int n,m,vis[maxn],cnt,ans,flag;
struct node{int u,v;
}edge[maxn]; //边
void dfs(int st){for(int i=0;i<cnt;++i){if(flag) return;if(!vis[i]&&edge[i].u==st){vis[i]=1; ans++;if(ans==cnt){//类似于全排列的判断flag=1;cout<<"Y"; return;}dfs(edge[i].v);vis[i]=0; ans--;}}
}
int main(){cin>>n>>m;if(n==1){ //特判只有一个点的情况cout<<"Y"; return 0;}for(int i=1,u,v;i<=m;++i){cin>>u>>v;  //建边edge[cnt].u=u;edge[cnt++].v=v;}for(int i=1;i<=n;++i){dfs(i); //以每个点为起点搜索}if(!flag) cout<<"N";return 0;
}

year!

7-4 一笔画 (25 分)相关推荐

  1. 一笔画 (25 分)

    小丁最近迷恋上一个游戏,传说中的"一笔画"游戏. 那么什么是一笔画?如下图,顾名思义就是一笔可以完成的图.一笔画最基本的要求是在画图的过程中,笔不能离开纸,且笔所画过的线不能重复, ...

  2. 12门课100分直博清华!这份成绩单冲上热搜,但学霸小伙也曾考过25分

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 金磊 明敏 发自 凹非寺 量子位 报道 | 公众号 QbitAI 一 ...

  3. PTA 7-3 旅游规划 (25分)(双权值Dijkstra最短路)

    7-3 旅游规划 (25分) 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干条路 ...

  4. PTA 03-树1 树的同构 (25分)

    题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/711 5-3 树的同构   (25分) 给定两棵树T1和T2.如果T1可以通过若干次左右 ...

  5. 【PAT (Advanced Level) Practice】1051 Pop Sequence (25 分)

    1051 Pop Sequence (25 分) Given a stack which can keep M numbers at most. Push N numbers in the order ...

  6. 【PAT (Advanced Level) Practice】1093 Count PAT‘s (25 分)

    1093 Count PAT's (25 分) The string APPAPT contains two PAT's as substrings. The first one is formed ...

  7. 【PAT (Advanced Level) Practice】1149 Dangerous Goods Packaging (25 分)

    1149 Dangerous Goods Packaging (25 分) When shipping goods with containers, we have to be careful not ...

  8. 7-29 修理牧场 (25 分)

    7-29 修理牧场 (25 分) 农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数L ​i ​​ 个长度单位,于是他购买了一条很长的.能锯成N块的木头,即该木头的长度是L ...

  9. 7-18 银行业务队列简单模拟 (25 分)

    7-18 银行业务队列简单模拟 (25 分) 设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 -- 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客.给定到达 ...

最新文章

  1. 如何使用 Spring 实现策略模式+工厂模式
  2. Python3多线程threading介绍(转载)
  3. bzoj 2435: [Noi2011]道路修建 树上 dp
  4. pythonweb开发面试_python 高级岗位面试要求
  5. 用稳压管保护单片机引脚_一步一步,全程揭开单片机的原理,让做电子变得轻松自如!...
  6. ASP.Net Jquery 随机验证码 文本框判断
  7. web安全day24:一文读懂Linux系统安装软件的几种方法
  8. Mac本配置adb环境,通过adb安装apk。
  9. 【机器学习】机器学习笔记(吴恩达)
  10. 支付宝接口http请求及sign加密
  11. 通过css布局实现去掉window.print()打印界面的页眉页脚
  12. 移动web开发+前端框架bootstrap相关笔记(二)
  13. Python的数据分析中交叉验证
  14. 对软件工程课程的初步认知
  15. alios下载_AliOS Studio(阿里编程工具)下载_AliOS Studio(阿里编程工具)官方下载-太平洋下载中心...
  16. 2022你不容错过的软件测试项目实战(APP项目实战)免费版
  17. 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目
  18. 从前慢-深入理解JVM-篇章2
  19. 电脑技术员联盟 Ghost XP Sp3 装机版 V5.8下载 .
  20. tomcat 启用https协议

热门文章

  1. Mybatis-动态SQL-trim-choose-foreach
  2. librtmp获取视频流和音频流1
  3. linux中shell是什么
  4. scrollHeight
  5. ZT: 回顾2007:新兴网络服务汇总(完整篇)
  6. 局域网共享软件开发python_Python+flask 实现的局域网文件共享服务器
  7. 【c++】无符号类型与负数的比较
  8. python-爬虫-woff静态字体-映射方法之一(大众点评字形与编码的对应关系)
  9. 程序员段子:等我敲完这行代码,就和你离婚!
  10. [机缘参悟-60]:《兵者,诡道也》-1-开篇:“死“与“生“都是天道