HDU 变形课[通俗易懂]

HDU 变形课[通俗易懂]HDU 变形课

大家好,又见面了,我是你们的朋友全栈君。

变形课

Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other)
Total Submission(s) : 4   Accepted Submission(s) : 3

Font: Times New Roman | Verdana | Georgia

Font Size:  

Problem Description

呃……变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个统一规律:如果咒语是以a开头b结尾的一个单词,那么它的作用就恰好是使A物体变成B物体.
  Harry已经将他所会的所有咒语都列成了一个表,他想让你帮忙计算一下他是否能完成老师的作业,将一个B(ball)变成一个M(Mouse),你知道,如果他自己不能完成的话,他就只好向Hermione请教,并且被迫听一大堆好好学习的道理.

Input

测试数据有多组。每组有多行,每行一个单词,仅包括小写字母,是Harry所会的所有咒语.数字0表示一组输入结束.

Output

如果Harry可以完成他的作业,就输出”Yes.”,否则就输出”No.”(不要忽略了句号)

Sample Input

so
soon
river
goes
them
got
moon
begin
big
0

Sample Output

Yes.

Hint

Hint Harry 可以念这个咒语:”big-got-them”.

Source

Gardon-DYGG Contest 1
 
 
#include<stdio.h>
#include<string.h>

struct node{
    char x,y;
}str[10010];

int cnt,flag,visited[10010];

void DFS(int cur){
    if(flag || str[cur].y=='m'){
        flag=1;
        return ;
    }
    for(int i=0;i<cnt;i++)
        if(!visited[i] && str[cur].y==str[i].x){
            visited[i]=1;
            DFS(i);
            visited[i]=0;
        }
}

int main(){

    //freopen("input.txt","r",stdin);

    int len;
    char word[1010];
    while(scanf("%s",word)!=EOF){
        if(word[0]=='0'){
            printf("No.\n");
            continue;
        }
        len=strlen(word);
        cnt=0;
        str[cnt].x=word[0];
        str[cnt++].y=word[len-1];
        while(scanf("%s",word)){
            if(word[0]=='0')
                break;
            len=strlen(word);
            str[cnt].x=word[0];
            str[cnt++].y=word[len-1];
        }
        flag=0;
        for(int i=0;i<cnt;i++)
            if(str[i].x=='b'){
                memset(visited,0,sizeof(visited));
                visited[i]=1;
                DFS(i);
            }
        if(flag)
            printf("Yes.\n");
        else
            printf("No.\n");
    }
    return 0;
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107095.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月21日 上午10:00
下一篇 2022年4月21日 上午10:20


相关推荐

  • STM32-定时器详解

    STM32-定时器详解定时器作为微控制器不可缺少的外设 在 STM32 中也是如此 相信不少初学者学到定时器的时候对 STM32 的学习热情就大打折扣甚至想要放弃了 因为这一部分知识确实比较复杂 但是 如果你在之前对 GPIO 串口通信 外部中断的学习中把这些外设掌握了的话 学习这个新知识并不难 例本章共计 1 万余字 从 STM32 定时器的原理 寄存器介绍 定时器配置以及定时器的几个常用的功能 如定时器中断 定时器输出比较 PWM 波形 定时器输入捕获测电平长度 定时器编码器模式应用等 的使用方法来教大家掌握定时器这一外设

    2026年3月18日
    3
  • Idea激活码最新教程2021.3版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2021.3版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2021 3 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2021 3 成功激活

    2025年5月22日
    5
  • C#MQTTNET服务端使用说明

    C#MQTTNET服务端使用说明C#MQTTNET服务端使用说明1.安装MQTTNet两种方式Shell可视化安装2.当前我的项目安装的依赖如下3.如何使用1.我想启动MQTT服务器,我该怎么做?2.我想知道MQTT服务器是否启动成功,我该怎么做?3.我想知道MQTT服务器是否停止允许,我该怎么做?4.我想知道有那些设备连接上了服务器,我该怎么做?5.我想知道有那些设备断开连接,我该怎么做?6.我想监听消息,我该怎么做?7.我想连接的客户端校验身份信息后才允许收发消息,我该怎么做?8.我想知道客户端订阅主题与取消订阅主题,我该怎么做?1.

    2022年6月25日
    317
  • 无盘服务器chkdsk *: /f)修复命令,巧用CHKDSK命令修复U盘文件或目录损坏问题

    无盘服务器chkdsk *: /f)修复命令,巧用CHKDSK命令修复U盘文件或目录损坏问题巧用 CHKDSK 命令修复 U 盘文件或目录损坏问题 U 盘是我们常用的随身移动存储工具 我们平时在使用 U 盘时难免会出现那么几次 直接拔出 U 盘 结果导致 U 盘的文件或目录损坏且无法读取 U 盘里的任何内容都无法打开了 有些朋友认为是磁盘出现坏道直接舍弃了 U 盘 其实这只是小小的存储问题 我们只要使用 CHKDSK 来修复这些损坏的文件或目录 修复方法 开始运行输入 cmd 输入 chkdsk 盘符 f

    2026年3月16日
    2
  • linux查看udp端口占用命令,详解Linux查看端口占用「建议收藏」

    linux查看udp端口占用命令,详解Linux查看端口占用「建议收藏」在使用计算机的过程中,有时会碰到端口被占用的情况,这时候需要查看端口占用情况进行问题排查。在linux系统中,端口占用的情况也时有发生,一般情况下可以使用lsof和netstat两个命令来查看端口占用情况。下面我们就分别介绍Linux查看端口占用用到的lsof和netstat命令:1、lsof命令lsof(listopenfiles)命令功能:列出当前系统打开文件。在linux系统中,一切皆文…

    2022年7月27日
    10
  • 别在 OpenClaw 上花冤枉钱了,这份小白指南手把手教你 1 分钟搞定

    别在 OpenClaw 上花冤枉钱了,这份小白指南手把手教你 1 分钟搞定

    2026年3月13日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号