7-4 一笔画 (25 分)
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 分)相关推荐
- 一笔画 (25 分)
小丁最近迷恋上一个游戏,传说中的"一笔画"游戏. 那么什么是一笔画?如下图,顾名思义就是一笔可以完成的图.一笔画最基本的要求是在画图的过程中,笔不能离开纸,且笔所画过的线不能重复, ...
- 12门课100分直博清华!这份成绩单冲上热搜,但学霸小伙也曾考过25分
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 金磊 明敏 发自 凹非寺 量子位 报道 | 公众号 QbitAI 一 ...
- PTA 7-3 旅游规划 (25分)(双权值Dijkstra最短路)
7-3 旅游规划 (25分) 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干条路 ...
- PTA 03-树1 树的同构 (25分)
题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/711 5-3 树的同构 (25分) 给定两棵树T1和T2.如果T1可以通过若干次左右 ...
- 【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 ...
- 【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 ...
- 【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 ...
- 7-29 修理牧场 (25 分)
7-29 修理牧场 (25 分) 农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数L i 个长度单位,于是他购买了一条很长的.能锯成N块的木头,即该木头的长度是L ...
- 7-18 银行业务队列简单模拟 (25 分)
7-18 银行业务队列简单模拟 (25 分) 设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 -- 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客.给定到达 ...
最新文章
- 如何使用 Spring 实现策略模式+工厂模式
- Python3多线程threading介绍(转载)
- bzoj 2435: [Noi2011]道路修建 树上 dp
- pythonweb开发面试_python 高级岗位面试要求
- 用稳压管保护单片机引脚_一步一步,全程揭开单片机的原理,让做电子变得轻松自如!...
- ASP.Net Jquery 随机验证码 文本框判断
- web安全day24:一文读懂Linux系统安装软件的几种方法
- Mac本配置adb环境,通过adb安装apk。
- 【机器学习】机器学习笔记(吴恩达)
- 支付宝接口http请求及sign加密
- 通过css布局实现去掉window.print()打印界面的页眉页脚
- 移动web开发+前端框架bootstrap相关笔记(二)
- Python的数据分析中交叉验证
- 对软件工程课程的初步认知
- alios下载_AliOS Studio(阿里编程工具)下载_AliOS Studio(阿里编程工具)官方下载-太平洋下载中心...
- 2022你不容错过的软件测试项目实战(APP项目实战)免费版
- 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目
- 从前慢-深入理解JVM-篇章2
- 电脑技术员联盟 Ghost XP Sp3 装机版 V5.8下载 .
- tomcat 启用https协议
热门文章
- Mybatis-动态SQL-trim-choose-foreach
- librtmp获取视频流和音频流1
- linux中shell是什么
- scrollHeight
- ZT: 回顾2007:新兴网络服务汇总(完整篇)
- 局域网共享软件开发python_Python+flask 实现的局域网文件共享服务器
- 【c++】无符号类型与负数的比较
- python-爬虫-woff静态字体-映射方法之一(大众点评字形与编码的对应关系)
- 程序员段子:等我敲完这行代码,就和你离婚!
- [机缘参悟-60]:《兵者,诡道也》-1-开篇:“死“与“生“都是天道