• UVA


    传送门:UVA - 10129

    题意:输入n个单词问能否把所有单词串起来(每个单词只能用一遍),要求前一个单词的末字母与后一个单词的首字母相同

    题解:可以把一个单词的末字母和首字母看成是节点,把中间的字母看成是一条路径,那么题目就转变成求一条欧拉#include <iostream>

    #include <vector>
    #define pb push_back
    #define fio ios::sync_with_stdio(false);cin.tie(0)
    using namespace std;
    vector<int>vec[30];
    int n;
    int in[30];
    int out[30];
    int vis[30];void DFS(int u){
        vis[u]=0;
        for(int i=0;i<vec[u].size();i++){
            int v=vec[u][i];
            if(vis[v])DFS(v);
        }
    }
    int main(){
        fio;
        int t;
        cin>>t;
        while(t--){
            for(int i=0;i<30;i++)vec[i].clear(),in[i]=0,out[i]=0,vis[i]=0;
            cin>>n;
            int num=-1;
            for(int i=0;i<n;i++){
                string str;
                cin>>str;
                int u=str[0]-'a';
                int v=str[str.length()-1]-'a';
                vis[u]=1;
                vis[v]=1;
                out[u]++;
                in[v]++;
                vec[u].pb(v);
                num=u;
            }
            int flag=0;
            int l=0;
            int r=0;
            for(int i=0;i<30;i++){//判断是否满足有向图欧拉道路出入度的关系
                if(in[i]!=out[i]){
                    if(in[i]-out[i]==1)l++;
                    if(out[i]-in[i]==1)r++,num=i;
                    if(abs(in[i]-out[i])>1)flag=1;
                }
            }
            if(flag==0&&((l==1&&r==1)||(l+r==0))){
                DFS(num);
                for(int i=0;i<30;i++){
                    flag+=vis[i];
                }
            }
            if(flag){
                cout<<"The door cannot be opened.
    ";
            }
            else {
                cout<<"Ordering is possible.
    ";
            }
        }
        return 0;
    }
  • 相关阅读:
    IfcFeatureElementAddition
    IfcOpeningElement
    IfcRelNests
    IfcElementAssemblyType
    IfcProjectionElement
    IfcFeatureElement
    IfcRelDefines
    Win10 Anaconda配置tensorflow
    Anaconda升级
    Anaconda 台式机环境
  • 原文地址:https://www.cnblogs.com/Mrleon/p/8577367.html
Copyright © 2020-2023  润新知