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;
    }
  • 相关阅读:
    usage of tmux docker
    mac. mysql
    使用ssh远程编辑
    systemd-udevadm
    iperf
    brctl
    NAT
    Linux 网络配置
    Linux 命令行快捷键
    sed 参数分析
  • 原文地址:https://www.cnblogs.com/8023spz/p/8665883.html
Copyright © 2011-2022 走看看