一笔画问题

时间限制:3000 ms  |  内存限制:65535 KB
难度:4
 
描述

zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来。

规定,所有的边都只能画一次,不能重复画。

 
输入
第一行只有一个正整数N(N<=10)表示测试数据的组数。
每组测试数据的第一行有两个正整数P,Q(P<=1000,Q<=2000),分别表示这个画中有多少个顶点和多少条连线。(点的编号从1到P)
随后的Q行,每行有两个正整数A,B(0<A,B<P),表示编号为A和B的两点之间有连线。
输出
如果存在符合条件的连线,则输出"Yes",
如果不存在符合条件的连线,输出"No"。
样例输入
2
4 3
1 2
1 3
1 4
4 5
1 2
2 3
1 3
1 4
3 4
样例输出
No
Yes
来源
[张云聪]原创
上传者
张云聪
算法思想:刚看到这道题的时候就觉得可能会用到数据结构中的图或者深搜来做,但是想了一会发现不会。然后就按照自己的想法写,结果Accept了(哈哈哈)。我先把第一个点的左右赋值给l = s[0].x, r = s[0].y,然后向下面循环,找到等于l 或者 r 的数,然后重新赋值,一直这样直到每个点的经过(用k来计数,当k=0时,全部的点都经过了),具体看代码实现。
代码:

 #include<stdio.h>
#include<string.h>
struct node
{
int x,y;
}s[];
int main()
{
int i,n,p,q,l,r,k;
scanf("%d",&n);
while(n--){
memset(s,,sizeof(s));
scanf("%d%d",&p,&q);
for(i=; i<q; i++)
scanf("%d%d",&s[i].x,&s[i].y);
l = s[].x, r = s[].y, k = q-;
for(i=; i<q; i++){
if(l==s[i].x || l==s[i].y){
if(l==s[i].x) { l = -, r = s[i].y; } //当 l 等于下面的数时,说明这两个点通,然后重新赋值,l = -1,说明不要它了
else { l = -, r = s[i].x; }
s[i].x = , s[i].y = , i = , k--; //s[i].x = 0, s[i].y = 0,说也不要他们了,下面的 r 也一样。
continue;
}
if(r==s[i].x || r==s[i].y){
if(r==s[i].x) { r = -, l = s[i].y; }
else { r = -, l = s[i].x; }
s[i].x = , s[i].y = , i = , k--;
continue;
}
}
if(k == ) printf("Yes\n");
else printf("No\n");
}
return ;
}

一笔画问题 南阳acm42(貌似没用到什么算法)的更多相关文章

  1. nyoj-----42一笔画问题

    一笔画问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下 ...

  2. android studio sdk 不能更新

    网上看到好多sdk不能更新的,解决办法基本上一下,试了下大都没用,,有人说改hosts ,我试了 貌似没用 下面是我亲测可以更新的一种方法:使用镜像地址更新 步骤: 1. 打开 SDK Manager ...

  3. Android studio 项目的layout的文件打开,preview 视图无法显示,提示“no sdk found...”可能原因?

    1.安装android studio后启动,引导新的下载的sdk文件夹,不要默认在c:\users\你的用户名\appdata...下的sdk文件夹. 2.如果已经默认的,重新在settings/pr ...

  4. winform窗体之间通过 windows API SendMessage函数传值

    -----------------------------------------------------------‘接收窗体’代码.cs------------------------------ ...

  5. nginx入门

    1.   前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Ngi ...

  6. asp.net mvc route 中新发现的小技巧

    在发现这个小技巧之前,我经常被某些问题困扰,我们以博客园为例 1:是分类名称 2:是分类url 3:点击分类,进入的页面,要显示分类的名称 4:点击分类,进入的页面,要用分类相关参数 在日常web的开 ...

  7. android 数据存储的几种方式

    总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.其中文件和数据库可能用的稍多一些,文件用起来较为方便,程序可以自己定义格式:数据库用起稍烦锁一些,但它有它的优点,比如在海量数 ...

  8. Android开发笔记之: 数据存储方式详解

    无论是神马平台,神马开发环境,神马软件程序,数据都是核心.对于开发平台来讲,如果对数据的存储有良好的支持,那么对应用程序的开发将会有很大的促进作用.总体的来讲,数据存储方式有三种:一个是文件,一个是数 ...

  9. Opengl4.5 中文手册—E

    索引 A      B    C      D     E     F     G H      I     J      K     L     M     N O      P    Q      ...

随机推荐

  1. 【Leetcode】【Easy】Maximum Depth of Binary Tree

    Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...

  2. mysql 省市数据

    CREATE TABLE `province` ( `id` ) DEFAULT NULL, `name` ) DEFAULT NULL ) ENGINE=INNODB DEFAULT CHARSET ...

  3. how find a record import other database.

    question:how find a record import other database. answer: solution one:you user insert into table_na ...

  4. USB3.0驱动与2.0有什么区别

    安装好usb3.0驱动就可以驱动usb 3.0设备,能够适应于大部份主板,帮助用户解决usb3.0和电脑无法正常通讯的问题,并支持winxp,win7和win8系统,是目前网络上最好用的usb3.0万 ...

  5. 如何杀掉一个用户下的所有进程并drop掉这个用户

    如何杀掉一个用户下的所有进程并drop掉这个用户 Copy the sample code below into a file named kill_drop_user.sql.Open SQL*Pl ...

  6. June 08th 2017 Week 23rd Thursday

    Life is like a beautiful melody, only the lyrics are messed up. 生命是首美丽的曲子,虽然歌词有些纠结. Now that we get ...

  7. 确定浏览器是否支持某些DOM模块

    var supportDOM2Core = document.implementation.hasFeature("Core","2.0"); var supp ...

  8. Android(java)学习笔记24:自定义异常类

    1. 自定义异常: 考试成绩必须在0-100之间 很明显java没有对应的异常,需要我们自己来做一个异常 自定义异常 继承自Exception 继承自RuntimeException 下面是一个代码示 ...

  9. Softmax vs. Softmax-Loss: Numerical Stability

    http://freemind.pluskid.org/machine-learning/softmax-vs-softmax-loss-numerical-stability/ softmax 在 ...

  10. idea + maven + webapp 项目搭建

    1.File-> New -> Project