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

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

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

输入格式

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

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

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

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

输出格式

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

样例输入

abcd
dddd
3
a b
b c
c d

样例输出

6

题意就是给出我们从一个字符串走到另一个字符串的目标 然后给出某几个字符的单项路线

求每个字符转化的最短路径之和是多少

分析

可以用floyd求传递闭包的方法 对于图中给出的路径a->b 那么就表示e[a][b]=1 用flody跑最短路

复杂度也不高O(26*26*26)

注意输入数据中路径的两个点可能会相同

#include<bits/stdc++.h>
using namespace std;
const int maxd = 1e7;
int e[30][30];int main()
{ios::sync_with_stdio(0);string from,to;getline(cin,from);getline(cin,to);int k;cin>>k;while(k--){char ss,ee;cin>>ss>>ee;if(ss==ee)continue;e[ss-'a'][ee-'a']=1;}      for(int i=0;i<26;i++){for(int j=0;j<26;j++)if(i!=j&&e[i][j]==0)e[i][j] = maxd;}for(int k=0;k<26;k++){for(int i=0;i<26;i++){for(int j=0;j<26;j++)if(e[i][j]>e[i][k]+e[k][j])e[i][j] = e[i][k]+e[k][j];}}int ans=0;for(int i=0;i<from.length();i++){char a = from[i];char b = to[i];if(e[a-'a'][b-'a']!=maxd)ans+=e[a-'a'][b-'a'];else {ans=-1;break;}}cout<<ans<<endl;return 0;
} 

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

  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. 结果填空:年龄         分值: 3 B. 结果填空:开关灯     分值: 7 C. 结果填空:U型数字  分值: 9 D. 代码填空:LIS         分值: 11 ...

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

    转载自: https://blog.csdn.net/nihaopeng521/article/details/79470326 一.题目列表 A. 结果填空:年龄         分值: 3 B. ...

最新文章

  1. python 同步 互斥 信号量 锁 简介
  2. 三层交换机能传递路由吗?_华为ensp三层交换机VLAN配置静态路由互通
  3. 一个基于Microsoft Azure、ASP.NET Core和Docker的博客系统
  4. swoole开发 php爬虫,PHP使用swoole实现多线程爬虫
  5. mariadb安装_MariaDB CentOS 安装的时候如何确定 Repo 地址
  6. jquery 拖动改变div 容器大小
  7. Levenberg-Marquardt算法简介和C++实现
  8. fastjson safemode_Fastjson远程代码执行漏洞安全通告
  9. AVR PIC单片机视频教程
  10. python数学符号读法大全_数学符号读法大全
  11. RL真的很简单 手把手带你入门强化学习
  12. laravel8+jwt+邮箱注册验证
  13. win10内存满载测试软件,Win10自带的内存检测工具怎么用
  14. 全屏的微粒子3D动画特效
  15. (三篇长文让你玩6Pandas)数据分析入门_PART2常用工具包_CH02数据分析工具:Pandas__Part03(统计分析基础)
  16. ids for this class must be manually assigned before calling save()报错解决方法
  17. 孙源的Runloop视频整理
  18. JavaSE——Day12
  19. 单片机——IIC协议与24C02
  20. 蓝桥杯第十三届大赛web大学组题目及答案解析

热门文章

  1. 推荐20款基于 jQuery CSS 的文本效果插件
  2. jquery中邮箱地址 URL网站地址正则验证实例代码
  3. WPF自定义控件 —— 装饰器
  4. fatal: unable to access ‘https://github.comxxxxxxxxxxx‘: Failed to connect to xxxxxxxxxxxxx
  5. error: style attribute '@android:attr/windowEnterAnimation' not found
  6. mac mongodb 安装
  7. 关于Loadrunner 错误解决
  8. python脚本监控mysql数据库_Python脚本监控mysql数据库,Python脚本监控mongo数据库
  9. Spring Cloud Gateway Predicate.Path过滤分析
  10. windows彻底删除php,windows如何删除php