题目:

蒜头君被暗黑军团包围在一座岛上,所有通往近卫军团的路都有暗黑军团把手。幸运的是,小岛上有一扇上古之神打造的封印之门,可以通往近卫军团,传闻至今没有人能解除封印。

封印之门上有一串文字,只包含小写字母,有 k 种操作规则,每个规则可以把一个字符变换成另外一个字符。经过任意多次操作以后,最后如果能把封印之门上的文字变换成解开封印之门的文字,封印之门将会开启。

蒜头君战斗力超强,但是不擅计算,请你帮忙蒜头君计算至少需要操作多少次才能解开封印之门。

输入格式

输入第一行一个字符串,长度不大于 1000,只包含小写字母,表示封印之门上的文字。

输入第二行一个字符串,只包含小写字母,保证长度和第一个字符串相等,表示能解开封印之门的文字。

输入第三行一个整数 k(0≤k≤676)。

接下来 k 行,每行输出两个空格隔开的字符 a, b,表示一次操作能把字符 a 变换成字符 b。

输出格式

如果蒜头君能开启封印之门,输出最少的操作次数。否则输出一行−1。

样例输入

abcd
dddd
3
a b
b c
c d

样例输出

6

分析:

这仅仅只是涉及最短路径的算法,是个水题,但是我写完老是过不去,原因是我用的Floyd算法写的有问题,三个for循环,第一层for循环必须是中间变量,放在别的位置,则就改变了这个算法的思想,导致错误,记录一下吧,害

AC代码:

#include<bits/stdc++.h>
using namespace std;
const int inf=0x3f3f3f3f3f;
string u,v;
int t;
int book[110][110];
int main(){cin>>u>>v;cin>>t;int sum=0,flag=0;memset(book,inf,sizeof(book));for(int i=0;i<=26;i++) book[i][i]=0;for(int i=0;i<t;i++){char a,b;cin>>a>>b;if(a!=b)book[a-'a'][b-'a']=1;}for(int k=0;k<26;k++)for(int i=0;i<26;i++)for(int j=0;j<26;j++)book[i][j]=min(book[i][j],book[i][k]+book[k][j]);for(int i=0;i<u.size();i++){if(book[u[i]-'a'][v[i]-'a']>=inf){flag=1;break;}else sum+=book[u[i]-'a'][v[i]-'a'];}flag==1?cout<<"-1"<<endl:cout<<sum<<endl;return 0;
}

2018 蓝桥杯省赛 B 组模拟赛(一) 封印之门+最短路径之Floyd相关推荐

  1. 2018 蓝桥杯省赛 B 组模拟赛(一)--封印之门

    题目链接:https://nanti.jisuanke.com/t/A1594 蒜头君被暗黑军团包围在一座岛上,所有通往近卫军团的路都有暗黑军团把手.幸运的是,小岛上有一扇上古之神打造的封印之门,可以 ...

  2. 52-2018 蓝桥杯省赛 B 组模拟赛(一)java

    最近蒜头君喜欢上了U型数字,所谓U型数字,就是这个数字的每一位先严格单调递减,后严格单调递增.比如 212212 就是一个U型数字,但是 333333, 9898, 567567, 313133131 ...

  3. 2019 蓝桥杯省赛 B 组模拟赛(一)蒜厂年会

    2019 蓝桥杯省赛 B 组模拟赛(一)蒜厂年会 这题有两种情况 1.最大的和是在0~n-1 2.最大的和越过了首尾 这时候只要用n个数的和 - 0~n-1 的连续的最小和 这是求连续子集最大.最小 ...

  4. 2019 蓝桥杯省赛 B 组模拟赛(一)——计蒜客(未完待续)

    比赛链接: 2019 蓝桥杯省赛 B 组模拟赛(一) 友情提示: 蓝桥杯的头文件,如果不是都记得,可以直接万能头文件 #include <bits/stdc++.h>, 不过有的时候,这样 ...

  5. 2020年 第11届 蓝桥杯 C/C++ B组 省赛真题详解及小结【第1场省赛2020.7.5】【Java版】

    蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...

  6. 2015年第六届蓝桥杯C/C++B组省赛题目解析

    1.奖券数目 有些人很迷信数字,比如带"4"的数字,认为和"死"谐音,就觉得不吉利. 虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求.某抽奖活动的奖券号码是 ...

  7. 第一届『Citric杯』NOIP提高组模拟赛 题解

    [官方题解]第一届『Citric杯』NOIP提高组模拟赛 题解 第一题 柠檬超市 这题是本次模拟赛的送分题.做法显然. 但是注意此题有一个陷阱: 注意W和C的规模都是10^9,所以如果直接用doubl ...

  8. python解答蓝桥杯真题3 省模拟赛 计算机存储中有多少字节

    python解答蓝桥杯真题3 省模拟赛 计算机存储中有多少字节 题目 问题描述 在计算机存储中,12.5MB是多少字节? 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整 ...

  9. 2018 蓝桥杯省赛 B 组模拟赛(一)

    A 题目 今天蒜头君带着花椰妹和朋友们一起聚会,当朋友们问起年龄的时候,蒜头君打了一个哑谜(毕竟年龄是女孩子的隐私)说:"我的年龄是花椰妹年龄个位数和十位数之和的二倍". 花椰妹看 ...

  10. 计蒜客2018蓝桥杯省赛B组模拟赛(一)题目及解析(未完待续)

    一.题目列表 A. 结果填空:年龄         分值: 3 B. 结果填空:开关灯     分值: 7 C. 结果填空:U型数字  分值: 9 D. 代码填空:LIS         分值: 11 ...

最新文章

  1. [Linux] 批量添加用户
  2. SQL Server 数据库崩溃后的恢复之法
  3. java输出五行菱形_Java打印一个菱形
  4. idea 拉取分支代码
  5. 牛客网_PAT乙级_1019旧键盘 (20)
  6. 在ABAP debugger里手动trigger DB commit
  7. Pycharm使用black作为Python代码格式化外部工具
  8. Elasticsearch SQL
  9. Mysql union和union all用法
  10. 【数据结构笔记38】桶排序、基数排序、多关键字排序、排序算法汇总比较
  11. xv6源码阅读——进程切换
  12. 上下文无关输入与输出java_正则表达式与上下文无关文法
  13. Linux epoll 实现封装
  14. Sublime Text设置中文
  15. 编辑器下运行exe或bat run exe or bat in editor
  16. Word如何交叉引用以及交叉引用参考文献后使用逗号分隔
  17. 复习中国近现代史纲要--“政治编年史”
  18. Tsinsen1295 necklace
  19. 蓝桥杯单片机CT107D_03_数码管动态显示
  20. JS+COOKIES实现健壮的购物车

热门文章

  1. Android之升级OkHttp编译提示错误如下Using ‘body(): ResponseBody?’ is an error. moved to val
  2. Git撤销文件的修改(git checkout -- file)(git reset HEAD file)(git reset HEAD~)
  3. C和指针之删除字符串第一次出现的子串
  4. Android插件化开发之动态加载技术简单易懂的介绍方式
  5. Android之startService与bindService的区别
  6. 一篇文学会商用可编辑问卷表单制作【iVX 十二】
  7. eos操作系统_EOS相机统一的用户界面
  8. 供销大集长期持有_谁是下一个供销大集?(附股)
  9. 套套原来是这样装袋的,40个机械动图看懂好像并不容易。。。
  10. 16个让你烧脑让你晕的悖论