[bzoj4956][最短路][Floyd]Secret Chamber at Mount Rushmore

9人阅读 评论(0) 收藏 举报
分类:

Description

你现在可能已经听说过Rushmore山上有一个壮观的石雕刻画了四位著名的美国总统。然而,很少有人知道这个纪念
雕刻暗藏一个秘密的房间。这听起来像是一部好莱坞电影的情节,但是这个房间是真实存在的。它藏在Abraham Lin
coln的头后面,它被设计成一个档案库,用来存放美国历史上重要的文件与文物。历史学家声称这个档案库的建造在
1939年被中断,直到20世纪90年代末才能被访问,但这不是全部的真相。在1982年,著名的考古学家S. Dakota Jones
秘密地访问了这座纪念雕刻,发现房间已经完成建造,但不对外公开。这似乎有些可疑,经过一些开凿,她发现一个隐
藏的地下室和一些文件。不幸的是,这些文件没什么有效信息,都是很无聊的内容。她猜测这些内容被加密了,但是
她费尽心机还是无法解密。在这周的前些时候, Jones博士在当地参加ACM-ICPC世界总决赛, 她终于在South Dakot
aSchool of Mines and Technology的Connolly
Hall发现了破译这些文件的密钥。她发现文件包含了一系列字母转
换规则。一些字母可以经过多次转换,但一些字母没有转换规则。经过对那份无聊的文件中的单词多次转换之后,她
似乎能把内容破译成美国历史上的文件,例如独立宣言和美国宪法。她需要你的帮助。你将得到字母可能的转换规
则和一系列原始单词与解密单词。你的任务是验证每对单词是否匹配。如果两个单词具有相同的长度,且第一个单
词的每个字母可以用转换规则多次转换后变成第二个单词中对应位置的字母,则两个单词匹配。

Input

第一行包含两个整数m(1≤m≤500)和n(1≤n≤50),其中m表示字母转换规则的数量,n表示单词对的数量。
接下来m行,每行包含两个不同的字母a和b,表示字母a可以转换成字母b。每个有序对(a,b)只会出现至多一次。 接下来n
行,每行包含一对需要检查的单词。 转换规则和单词只会使用小写字母’a’到’z’,且每个单词包含至少1个字母,至多50个字母。

Output

对于每对单词,如果两个单词可以匹配,输出yes,否则输出no。

Sample Input

样例1

9 5

c t

i r

k p

o c

r o

t e

t f

u h

w p

we we

can the

work people

it of

out the

样例2

3 3

a c

b a

a b

aaa abc

abc aaa

acm bcm

Sample Output

样例1

yes

no

no

yes

yes

样例2

yes

no

yes

题解

有向图的询问一个节点能否到达另一个节点的问题
由于这张图的大小不会超过26*26,所以可以直接floyd预处理,然后On判
无向图就更简单直接并查集就好了。。

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
int mp[30][30];
int n,m;
char cx[60],cy[60];
int main()
{
    memset(mp,63,sizeof(mp));
    scanf("%d%d",&m,&n);
    for(int i=1;i<=26;i++)mp[i][i]=1;
    for(int i=1;i<=m;i++)
    {
        scanf("%s%s",cx+1,cy+1);
        mp[cx[1]-'a'+1][cy[1]-'a'+1]=1;
    }
    for(int k=1;k<=26;k++)
        for(int i=1;i<=26;i++)if(k!=i)
            for(int j=1;j<=26;j++)if(i!=j && k!=j)
                mp[i][j]=min(mp[i][j],mp[i][k]+mp[k][j]);
    while(n--)
    {
        scanf("%s%s",cx+1,cy+1);
        int lx=strlen(cx+1),ly=strlen(cy+1);
        if(lx!=ly){printf("no\n");continue;}
        bool bk=false;
        for(int i=1;i<=lx;i++)if(mp[cx[i]-'a'+1][cy[i]-'a'+1]==1061109567){bk=true;break;}
        if(bk==false)printf("yes\n");
        else printf("no\n");
    }
    return 0;
}
查看评论

bzoj 4956: [Wf2017]Secret Chamber at Mount Rushmore(最短路)

4956: [Wf2017]Secret Chamber at Mount Rushmore Time Limit: 1 Sec  Memory Limit: 1024 MB Submit: 14...
  • Jaihk662
  • Jaihk662
  • 2017-10-02 11:44:04
  • 207

2017 ICPC WF I Secret Chamber at Mount Rushmore【基础/签到】

题目链接:2017 WF I Secret Chamber at Mount Rushmore Description: By now you have probably heard that t...
  • Young_12138
  • Young_12138
  • 2017-06-02 23:26:03
  • 288

2017 word finnal i Secret Chamber at Mount Rushmore

By now you have probably heard that there is a spectacular stone sculpture featuring four famous U.S...
  • tianyuhang123
  • tianyuhang123
  • 2017-05-26 07:54:59
  • 243

[bzoj4956]Secret Chamber at Mount Rushmore floyd

Problem I. Secret Chamber at Mount Rushmore 你现在可能已经听说过Rushmore 山上有一个壮观的石雕刻画了四位著名的美国总统。然而,很少      有人...
  • youhavepeople
  • youhavepeople
  • 2017-07-30 11:05:11
  • 169

bzoj4956: [Wf2017]Secret Chamber at Mount Rushmore(floyd)

题目传送门 。 解法: 有向边判连通性。 floyd 代码实现: #include&amp;lt;cstdio&amp;gt; #include&amp;lt;cstring&amp;...
  • Hanks_o
  • Hanks_o
  • 2018-04-18 08:08:58
  • 2

[最短路floyd] bzoj4956: [Wf2017]Secret Chamber at Mount Rushmore

bzoj4956: [Wf2017]Secret Chamber at Mount Rushmore https://www.lydsy.com/JudgeOnline/problem.php?id=...
  • qq_36038511
  • qq_36038511
  • 2018-04-17 19:59:10
  • 8

Secret Chamber at Mount Rushmore

By now you have probably heard that there is a spectacular stone sculpture featuring four famous U.S...
  • Mr___jie
  • Mr___jie
  • 2018-04-12 23:00:21
  • 15

Mount Kattis - secretchamber Secret Chamber at Mount Rushmore

点击打开链接这个题 我表示不想说点什么了 说实话 有点水 但是 英文  !! 英文  读题读的我心态爆炸 很爆炸 说实话  我最后看样例读懂了题意  然后 大概 题意就是 给几行  字母 第一行的 可...
  • qq_41071646
  • qq_41071646
  • 2018-04-13 10:48:07
  • 3

bzoj 4956: Secret Chamber at Mount Rushmore

题意:给出m条字母变换规则,判断第一个单词能不能转换为第二个单词。 跑个Floyd然后扫一遍就好了吧。。 #include #includebool mp[27][27]; int n,m;cha...
  • herobrine_tkj
  • herobrine_tkj
  • 2017-07-30 10:59:55
  • 172

最短路 dijsktra + floyd 详解

原文链接 最短路径—Dijkstra算法和Floyd算法   注意:以下代码 只是描述思路,没有测试过!!   Dijkstra算法 1.定义概览 Dijkstra(迪杰斯特拉)算法是典型的单源...
  • hlg1995
  • hlg1995
  • 2017-04-19 08:21:29
  • 426
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 3万+
    积分: 3400
    排名: 1万+
    博客专栏
    最新评论