UVa 1610 Party Games(思维)

Posted dwtfukgv

tags:

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

题意: 给出一系列字符串,构造出一个最短字符串(可以不在集合中)大于等于其中的一半,小于另一半。

析:首先找出中间的两个字符串,然后暴力找出最短的字符串,满足题意。

 1 #include <iostream>
 2 #include <string>
 3 #include <vector>
 4 #include <algorithm>
 5 #include <cstdio>
 6 
 7 using namespace std;
 8 vector<string> v;
 9 
10 int main(){
11 //    freopen("in.txt", "r", stdin);
12     int n;
13     while(scanf("%d", &n) && n){
14         v.clear();
15         string s;
16         for(int i = 0; i < n; ++i){
17             cin >> s;
18             v.push_back(s);
19         }
20 
21         sort(v.begin(), v.end());
22         int len = v.size();
23         string s1 = v[len/2 - 1];//找出中间的两个
24         string s2 = v[len/2];
25 
26         len = s1.size();
27         int p = 0;
28         string ans = "A";
29         while(p < len){//暴力求解最短的
30             while(ans[p] <= Z && ans < s1)  ++ans[p];
31             if(ans[p] <= Z && ans >= s1 && ans < s2)  break;
32             if(ans[p] != s1[p]) --ans[p];
33             ans += A;
34             ++p;
35         }
36         cout << ans << endl;
37     }
38     return 0;
39 }

 

以上是关于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 (字符串比较)