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

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

代码如下:

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cstdio> using namespace std;
vector<string> v; int main(){
// freopen("in.txt", "r", stdin);
int n;
while(scanf("%d", &n) && n){
v.clear();
string s;
for(int i = 0; i < n; ++i){
cin >> s;
v.push_back(s);
} sort(v.begin(), v.end());
int len = v.size();
string s1 = v[len/2 - 1];
string s2 = v[len/2]; len = s1.size();
int p = 0;
string ans = "A";
while(p < len){
while(ans[p] <= 'Z' && ans < s1) ++ans[p];
if(ans[p] <= 'Z' && ans >= s1 && ans < s2) break;
if(ans[p] != s1[p]) --ans[p];
ans += 'A';
++p;
}
cout << ans << endl;
}
return 0;
}

UVa 1610 Party Games(思维)的更多相关文章

  1. UVA 1610 Party Games

    题意: 给出一系列字符串,构造出一个字符串大于等于其中的一半,小于另一半. 分析: 取大小为中间的两个a,b(a<b).实际上就是找出第一个小于b的同时大于等于a的字符串,直接构造即可. 代码: ...

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

    给你n(n为偶数)个字符串,让你找出一个长度最短且字典序尽量小的字符串,使得一半的字符串小于等于该串,一半的字符串大于该串. 紫薯上说这道题有坑,但其实思路对了就没什么坑. 很明显,只要取夹在中间两个 ...

  3. UVA - 1610 Party Games(聚会游戏)(构造)

    题意:输入一个n(2<=n<=1000,n是偶数)个字符串的集合D,找一个长度最短的字符串S(不一定在D中出现),使得D中恰好一半串小于等于S,另一半串大于S.如果有多解,输出字典序最小的 ...

  4. UVA.11636 Hello World! (思维题)

    UVA.11636 Hello World! (思维题) 题意分析 这题挺水的,还是错了几发. QWQ. 有一个同学打了一行hello world,现在他想打n行hello world,请问最少复制粘 ...

  5. UVA.11464 Even Parity (思维题 开关问题)

    UVA.11464 Even Parity (思维题 开关问题) 题目大意 给出一个n*n的01方格,现在要求将其中的一些0转换为1,使得每个方格的上下左右格子的数字和为偶数(如果存在的话),求使得最 ...

  6. Party Games UVA - 1610 贪心

    题目:题目链接 思路:排序后处理到第一个不同的字符,贪心一下就可以了 AC代码: #include <iostream> #include <cstdio> #include ...

  7. Party Games UVA - 1610

    题目 #include<iostream> #include<string> #include<algorithm> using namespace std; // ...

  8. 【uva 1610】Party Games(算法效率--构造 dfs)

    题意:有一个N个字符串(N≤1000,N为偶数)的集合,要求找一个长度最短的字符串(可不在集合内)S,使得集合中恰好一半的串小于等于S,另一半大于S.如果有多解,要求输出字典序最小的解. 解法:本来我 ...

  9. Football Games(思维题)

    Problem Description A mysterious country will hold a football world championships---Abnormal Cup, at ...

随机推荐

  1. ubuntu下安装redis及常用操作

    reids是一个内存数据库,具有存取速度快,使用简单等优点.我们常常在分布式或者负载均衡的系统中使用它来缓存一些公用的且不是很大量的数据,比如session或者各类token(比如微信的access_ ...

  2. 893. Groups of Special-Equivalent Strings 奇数偶数位上的相同数

    [抄题]: You are given an array A of strings. Two strings S and T are special-equivalent if after any n ...

  3. java 线程Thread 技术--1.5Lock 与condition 演示生产者与消费模式

    在jdk 1.5 后,Java 引入了lock 锁来替代synchronized ,在使用中,lock锁的使用更加灵活,提供了灵活的 api ,不像传统的synchronized ,一旦进入synch ...

  4. cmd乱码问题

    1.进入 cmd 窗口 2.字符编码切换回中文:chcp 936 MS-DOS为以下国家和语言提供字符集:  代码页描述  1258 越南语  1257 波罗的语  1256 阿拉伯语  1255 希 ...

  5. django static 无法正确加载目录下的css

    在static->web目录下添加CSS后该css文件一直报404错误,解决问题: 在setting.py文件添加: STATICFILES_DIRS = [ os.path.join(BASE ...

  6. YII2中behavior行为的理解与使用

    YII2中的行为说白了就是对组件功能的扩展,在不改变继承关系的条件下. 行为附加到组件后,行为将注入自已的方法和属性到组件,可以像组件访问自定义的方法和属性一样访问行为. 注意行为是对功能的扩展,不要 ...

  7. c语言使用指针交换数值

    练习题:将两个int类型数值交换 #include <stdio.h> void swap(int*,int*); int main(void){ , hex = 0x5f1043; sw ...

  8. join 子句(C# 参考)

    参考:https://msdn.microsoft.com/zh-cn/library/vstudio/bb311040%28v=vs.110%29.aspx 使用 join 子句可以将来自不同源序列 ...

  9. PAT 1038 统计同成绩学生(20)(代码)

    1038 统计同成绩学生(20)(20 分) 本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出. 输入格式: 输入在第1行给出不超过10^5^的正整数N,即学生总人数.随后1行给出N名学生 ...

  10. APP强制退出

    第一种方法: 企业版可以用,Appstore可能被拒,慎用 - (void)exitApplication { AppDelegate *app = [UIApplication sharedAppl ...