zoukankan      html  css  js  c++  java
  • 计蒜客 蓝桥模拟 H. 封印之门

     Floyd算法,最短路,判断a,b是否相等。

    代码:

    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    #include <iomanip>
    using namespace std;
    int k;
    int mp[26][26];
    int main()
    {
        string a,b,c,d;
        cin>>a>>b;
        cin>>k;
        for(int i = 0;i < 26;i ++)
        {
            for(int j = 0;j < 26;j ++)
            {
                mp[i][j] = 1000;
            }
            mp[i][i] = 0;
        }
        for(int i = 0;i < k;i ++)
        {
            cin>>c>>d;
            if(c != d)mp[c[0] - 'a'][d[0] - 'a'] = 1;
        }
        for(int k = 0;k < 26;k ++)
        {
            for(int i = 0;i < 26;i ++)
            {
                for(int j = 0;j < 26;j ++)
                {
                    if(mp[i][k] + mp[k][j] < mp[i][j])mp[i][j] = mp[i][k] + mp[k][j];
                }
            }
        }
        int cc = 0;
        for(int i = 0;i < a.size();i ++)
        {
            if(mp[a[i] - 'a'][b[i] - 'a'] == 1000)
            {
                cc = -1;
                break;
            }
            else cc += mp[a[i] - 'a'][b[i] - 'a'];
        }
        cout<<cc;
    }
  • 相关阅读:
    MySQL 实训篇
    MySQL 操作部分
    MySQL 数据库设计部分
    Python Excel及setuptool安装
    泛型? extents super
    js中立即执行
    js的闭包
    js作用域与作用域链
    js编译和执行顺序
    文件下载
  • 原文地址:https://www.cnblogs.com/8023spz/p/8665883.html
Copyright © 2011-2022 走看看