UVa 1610 - Party Games

Posted Ctfes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVa 1610 - Party Games相关的知识,希望对你有一定的参考价值。

链接:

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4485

 

题意:

输入一个n(2≤n≤1000,n是偶数)个字符串的集合D,找一个长度最短的字符串(不一定在D中出现)S,
使得D中恰好一半串小于等于S,另一半串大于S。如果有多解,输出字典序最小的解。
例如,对于{JOSEPHINE, JERRY},输出JF;对于{FRED, FREDDIE},输出FRED。

 

分析:

细节处理一下即可。
本题容易想复杂,或者把细节想错。我看到网上很多人的代码都比较复杂,其实不用那么复杂。。。

 

代码:

 1 #include <iostream>
 2 #include <string>
 3 #include <algorithm>
 4 using namespace std;
 5 
 6 int main(){
 7     int n;
 8     string s[1000+5];
 9     while(cin >> n && n){
10         for(int i = 0; i < n; i++) cin >> s[i];
11         sort(s, s + n);
12 
13         string f = s[n/2-1], b = s[n/2], j;
14         for(int i = 0; f[i]; i++){
15             j += f[i];
16             if(f <= j && j < b) break;
17             if(j[i] < Z){
18                 j[i]++;
19                 if(b > j) break;
20                 else j[i]--;
21             }
22         }
23         cout << j << endl;
24     }
25     return 0;
26 }

 

以上是关于UVa 1610 - Party Games的主要内容,如果未能解决你的问题,请参考以下文章

UVa 1610 - Party Games

UVA 1610 Party Games

Party Games UVA - 1610

UVa1610 Party Games (字符串)

uva 1610Party Games(算法效率--构造 dfs)

UVA - 1610 Party Games (字符串比较)