2018 蓝桥杯省赛 B 组模拟赛(一)H.封印之门 最短路
蒜头君被暗黑军团包围在一座岛上,所有通往近卫军团的路都有暗黑军团把手。幸运的是,小岛上有一扇上古之神打造的封印之门,可以通往近卫军团,传闻至今没有人能解除封印。
封印之门上有一串文字,只包含小写字母,有 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.封印之门 最短路相关推荐
- 2018 蓝桥杯省赛 B 组模拟赛(一)--封印之门
题目链接:https://nanti.jisuanke.com/t/A1594 蒜头君被暗黑军团包围在一座岛上,所有通往近卫军团的路都有暗黑军团把手.幸运的是,小岛上有一扇上古之神打造的封印之门,可以 ...
- 52-2018 蓝桥杯省赛 B 组模拟赛(一)java
最近蒜头君喜欢上了U型数字,所谓U型数字,就是这个数字的每一位先严格单调递减,后严格单调递增.比如 212212 就是一个U型数字,但是 333333, 9898, 567567, 313133131 ...
- 2019 蓝桥杯省赛 B 组模拟赛(一)蒜厂年会
2019 蓝桥杯省赛 B 组模拟赛(一)蒜厂年会 这题有两种情况 1.最大的和是在0~n-1 2.最大的和越过了首尾 这时候只要用n个数的和 - 0~n-1 的连续的最小和 这是求连续子集最大.最小 ...
- 2019 蓝桥杯省赛 B 组模拟赛(一)——计蒜客(未完待续)
比赛链接: 2019 蓝桥杯省赛 B 组模拟赛(一) 友情提示: 蓝桥杯的头文件,如果不是都记得,可以直接万能头文件 #include <bits/stdc++.h>, 不过有的时候,这样 ...
- 2020年 第11届 蓝桥杯 C/C++ B组 省赛真题详解及小结【第1场省赛2020.7.5】【Java版】
蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...
- 2015年第六届蓝桥杯C/C++B组省赛题目解析
1.奖券数目 有些人很迷信数字,比如带"4"的数字,认为和"死"谐音,就觉得不吉利. 虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求.某抽奖活动的奖券号码是 ...
- 第一届『Citric杯』NOIP提高组模拟赛 题解
[官方题解]第一届『Citric杯』NOIP提高组模拟赛 题解 第一题 柠檬超市 这题是本次模拟赛的送分题.做法显然. 但是注意此题有一个陷阱: 注意W和C的规模都是10^9,所以如果直接用doubl ...
- python解答蓝桥杯真题3 省模拟赛 计算机存储中有多少字节
python解答蓝桥杯真题3 省模拟赛 计算机存储中有多少字节 题目 问题描述 在计算机存储中,12.5MB是多少字节? 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整 ...
- 计蒜客2018蓝桥杯省赛B组模拟赛(一)题目及解析(未完待续)
一.题目列表 A. 结果填空:年龄 分值: 3 B. 结果填空:开关灯 分值: 7 C. 结果填空:U型数字 分值: 9 D. 代码填空:LIS 分值: 11 ...
- 计蒜客2018蓝桥杯省赛B组模拟赛(一)题目及解析
转载自: https://blog.csdn.net/nihaopeng521/article/details/79470326 一.题目列表 A. 结果填空:年龄 分值: 3 B. ...
最新文章
- python 同步 互斥 信号量 锁 简介
- 三层交换机能传递路由吗?_华为ensp三层交换机VLAN配置静态路由互通
- 一个基于Microsoft Azure、ASP.NET Core和Docker的博客系统
- swoole开发 php爬虫,PHP使用swoole实现多线程爬虫
- mariadb安装_MariaDB CentOS 安装的时候如何确定 Repo 地址
- jquery 拖动改变div 容器大小
- Levenberg-Marquardt算法简介和C++实现
- fastjson safemode_Fastjson远程代码执行漏洞安全通告
- AVR PIC单片机视频教程
- python数学符号读法大全_数学符号读法大全
- RL真的很简单 手把手带你入门强化学习
- laravel8+jwt+邮箱注册验证
- win10内存满载测试软件,Win10自带的内存检测工具怎么用
- 全屏的微粒子3D动画特效
- (三篇长文让你玩6Pandas)数据分析入门_PART2常用工具包_CH02数据分析工具:Pandas__Part03(统计分析基础)
- ids for this class must be manually assigned before calling save()报错解决方法
- 孙源的Runloop视频整理
- JavaSE——Day12
- 单片机——IIC协议与24C02
- 蓝桥杯第十三届大赛web大学组题目及答案解析
热门文章
- 推荐20款基于 jQuery CSS 的文本效果插件
- jquery中邮箱地址 URL网站地址正则验证实例代码
- WPF自定义控件 —— 装饰器
- fatal: unable to access ‘https://github.comxxxxxxxxxxx‘: Failed to connect to xxxxxxxxxxxxx
- error: style attribute '@android:attr/windowEnterAnimation' not found
- mac mongodb 安装
- 关于Loadrunner 错误解决
- python脚本监控mysql数据库_Python脚本监控mysql数据库,Python脚本监控mongo数据库
- Spring Cloud Gateway Predicate.Path过滤分析
- windows彻底删除php,windows如何删除php