zoukankan      html  css  js  c++  java
  • UVA1610 PartyGame 聚会游戏(细节题)

    给出一组字符串D,要找一个字符串S使得D中一半小于等于S,另外一半大于S。输入保证一定有解。长度要尽量短,在此基础上字典序尽量小。

    分类谈论,细节挺多的,比如'Z'。

    其实直接暴就过了,没分类辣么麻烦。

    #include<bits/stdc++.h>
    using namespace std;
    
    vector<string> vec;
    
    int main()
    {
       // freopen("in.txt","r",stdin);
        int n;
        char s[142];
        while(scanf("%d",&n),n){
            vec.resize(n);
            for(int i = 0; i < n; i++){
                scanf("%s",s);
                vec[i] = s;
            }
            sort(vec.begin(),vec.end());
            int mid = n>>1;
            string &a = vec[mid-1] ,&b = vec[mid];
            int i;
            int len1 = a.size()-1, len2 = b.size()-1;
            if(len1 < len2){
                for(i = 0; i < len1; i++){
                    if(b[i] != a[i]) { s[i] = a[i]+1; s[i+1] = ''; break; }
                    s[i] = a[i];
                }
                if(i == len1) {
                    s[i] = a[i]; s[i+1] = '';
                }
            }else if(len1>len2){
                for(i = 0; i < len2; i++){
                    if(b[i] != a[i]) { s[i] = a[i]+1; s[i+1] = ''; break; }
                    s[i] = a[i];
                }
                if(i == len2) {
                    if(b[i] != a[i]+1) { s[i] = a[i]+1; s[i+1] = ''; }
                    else {
                        s[i] = a[i];
                        for(i++; i < len1; i++){
                            if(a[i] != 'Z'){
                                s[i] = a[i] + 1; s[i+1] = ''; break;
                            }
                            s[i] = a[i];
                        }
                        if(i == len1) { s[i] = a[i]; s[i+1] = ''; }
                    }
                }
            }else {
                for(i = 0; i < len2; i++) {
                    if(b[i] != a[i]) { s[i] = a[i]+1; s[i+1] = ''; break; }
                    s[i] = a[i];
                }
                if(i == len2) { s[i] = a[i]; s[i+1] = '';  }
            }
            printf("%s
    ",s);
        }
        return 0;
    }
  • 相关阅读:
    Mysql数据库--自学笔记--2
    Mysql数据库--自学笔记--1
    Python--作业3--模拟ATM程序的流程
    Python--数据存储:json模块的使用讲解
    如果我能成功,你也能
    有意注意到底有多重要
    没有人喜欢听废话——讲重点
    回顾你的一天是多么的重要
    思考的力量
    多问为什么,肯定不会错
  • 原文地址:https://www.cnblogs.com/jerryRey/p/4695723.html
Copyright © 2011-2022 走看看