题目

 #include<iostream>
#include<string>
#include<algorithm>
using namespace std;
//生成字符串
/*
求出排序后位于中间的两个字符串较小的和较大的分别为s1,s2
s[i]表示字符串s的第i位
对于第1位,显然只需要考虑两个值:s1[1],s1[1]+1
如果单独一位两种方式不能满足,则考虑2位的情况
显然,如果需要考虑第2位,那么第1位应该取s1[1]
对于第i位,如果s1[i]和s2[i]都存在,只要类比以上方法即可
如果s1.length>s2.length
试验可得用一般的方法即可
如果s1.length<s2.length
如果计算到s1.length位仍未得出结果,那么答案就是s1
*/
//曾经出过的bug:忽略了s1[i]+1超出了字母范围(A到Z)的情况,此时应舍去
string s[];
string t1,t2,s1,s2;
int n;
int main()
{
int i;
cin>>n;
while(n!=)
{
t1="";t2="";
for(i=;i<n;i++)
cin>>s[i];
sort(s,s+n);
s1=s[(n/)-];
s2=s[n/];
for(i=;i<s1.length();i++)
{
t2=t1+s1[i];
if(t2>=s1&&t2<s2)
{
cout<<t2<<'\n';
goto haha;
}
if(s1[i]+<='Z')
{
t2=t1+(char)(s1[i]+);
if(t2>=s1&&t2<s2)
{
cout<<t2<<'\n';
goto haha;
}
}
t1+=s1[i];
}
if(s1.length()<s2.length())
{
cout<<s1<<'\n';
}
haha:
cin>>n;
}
return ;
}

Party Games UVA - 1610的更多相关文章

  1. Party Games UVA - 1610 贪心

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

  2. UVA 1610 Party Games

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

  3. UVa 1610 Party Games(思维)

    题意: 给出一系列字符串,构造出一个最短字符串(可以不在集合中)大于等于其中的一半,小于另一半. 析:首先找出中间的两个字符串,然后暴力找出最短的字符串,满足题意. 代码如下: #include &l ...

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

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

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

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

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

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

  7. UVa 1610 聚会游戏

    https://vjudge.net/problem/UVA-1610 题意:输入一个n个字符串的集合D,找一个长度最短的字符串S,使得D中恰好有一半串小于等于S,另一半串大于S. 思路:先拍序,然后 ...

  8. 紫书 习题 8-2 UVa 1610 (暴力出奇迹)

    这道题我真的想的非常的复杂, 拿草稿纸一直在找规律,推公式, 然后总有一些特殊的情况. 然后就WA了N次.无奈之下看了别人的博客, 然后就惊了.直接暴力枚举两个相邻字符串 里面的所有可能就可以了--真 ...

  9. UVA 11927 - Games Are Important(sg函数)

    UVA 11927 - Games Are Important option=com_onlinejudge&Itemid=8&page=show_problem&catego ...

随机推荐

  1. mysql语句:SET NAMES UTF8

    一直以来只知道mysql_query("SET NAMES UTF8");是设定数据库编码的,但是一直不清楚“SET NAMES UTF8”是什么. 直到今天才知道 SET NAM ...

  2. Arcgis Engine(ae)接口详解(1):featureClass

    //IFeatureClass 来源请自行解决 IFeatureClass featureClass = null; //获取featureClass的各种名称 //PS:featureClass可以 ...

  3. EF(Entity Framework)通用DBHelper通用类,增删改查以及列表

    其中 通用类名:DBhelper 实体类:UserInfo 1 //新增 2 DBHelper<UserInfo> dbhelper = new DBHelper<UserInfo& ...

  4. Hibernate中的merge使用详情解说

    merge的作用是:新new一个对象,如果该对象设置了ID,则这个对象就当作游离态处理:                                       当ID在数据库中不能找到时,用up ...

  5. 使用libcurl的包装库cpr发起http请求

    cpr GitHub地址https://github.com/whoshuu/cpr 简单示例:cpr_http_request.cpp #include <iostream> #incl ...

  6. Zed Shaw:一位老程序员的建议

    Advice from an Old Programmer 原文:Zed Shaw,译文:外刊IT评论 导读:原文作者Zed Shaw是一位作家.软件开发人员.音乐人(下文中提到吉他手),于2010年 ...

  7. POJ2155 Matrix 二维线段树

    关键词:线段树 二维线段树维护一个 维护一个X线段的线段树,每个X节点维护一个 维护一个Y线段的线段树. 注意,以下代码没有PushDownX.因为如果要这么做,PushDownX时,由于当前X节点的 ...

  8. curl请求接口返回false,错误码60

    我讲一下我遇到的这个问题,是因为最近服务器加了https导致的,网上找到了答案,加上这句 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 就可以正常返 ...

  9. 迭代器模式(Iterator.hasNaxt())

    迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式.这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示. 迭代器模式属于行为型模式. ...

  10. vue2-editor富文本基础使用方法

    vue2-editor的入门使用准备工作: 使用 npm install vue2-editor --save 安装到项目中去: 使用 在需要的单文件内引入 import { VueEditor } ...