• luogu_1341 无序字母对


    #include <cstring>
    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <vector>
    using namespace std;
    int n,ans[100010],cnt,in[60];
    vector<int> G[60];
    bool vis[60],answer,dis[60][60],oula;
    char word[]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
    'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
    
    char getc(){
        char c;
        c=getchar();
        while(1){
            if('a'<=c && c<='z' || ('A'<=c && c<='Z'))return c;
            c=getchar();
        }
    }
    
    void make(){
        for(int i=1;i<=n;i++){
            char u,v;
            int u1,v1;
            u=getc(); v=getc();
            if('A'<=u && u<='Z')u1=u-'A';
            else u1=u-'a'+26;
            if('A'<=v && v<='Z')v1=v-'A';
            else v1=v-'a'+26;
            in[u1]++; in[v1]++;
    		vis[u1]=vis[v1]=1;
            G[u1].push_back(v1); G[v1].push_back(u1);
        }
    }
    
    bool check(){
    	int sum=0;
    	for(int i=0;i<52;i++)if(in[i]%2==1)sum++;
    	if(sum!=2 && sum)return false;
    	return true;
    }
    
    void dfs(int u){
    	ans[++cnt]=u;
    	for(int i=0;i<G[u].size();i++){
    		int v=G[u][i];
    		if(cnt==n+1)return;
    		if(!dis[u][v]){
    			dis[u][v]=1; dis[v][u]=1;
    			dfs(v);
    			dis[u][v]=0; dis[v][u]=1;
    		}
    	}
    	if(cnt!=n+1)cnt--;
    }
    
    int main(){
        scanf("%d",&n);  
        make();
    	if(!check()){puts("No Solution"); return 0;}
    	for(int i=0;i<52;i++)sort(G[i].begin(),G[i].end());
    	int start=0;
        for(int i=0;i<52;i++)
    		if(vis[i]){start=i; break;}
        for(int i=0;i<52;i++)
        	if(in[i]%2==1){start=i; break;}
    	dfs(start);
    	for(int i=1;i<=cnt;i++)putchar(word[ans[i]]);
    	puts("");
        return 0;
    }
    

      

  • 相关阅读:
    Spark2.0机器学习系列之12: 线性回归及L1、L2正则化区别与稀疏解
    Spark2.0机器学习系列之11: 聚类(幂迭代聚类, power iteration clustering, PIC)
    mysql 5.7.16多源复制
    Windows版 mysql 5.7.16安装
    一分钟经理人
    转 spring官方文档中文版
    MySQL执行计划 EXPLAIN参数
    sql 转 markdown
    Linux下安装MySQL5.6
    MyBatis完全使用指南
  • 原文地址:https://www.cnblogs.com/codetogether/p/7570648.html
Copyright © 2020-2023  润新知