UVA-1610 Party Games (构造)
2015-10-10 23:53
393 查看
题目大意:给出一系列字符串,构造出一个字符串大于等于其中的一半,小于另一半。
题目分析:取大小为中间的两个a,b(a<b)。实际上就是找出第一个小于b的同时大于等于a的字符串,直接构造即可。要注意细节。
代码如下:
题目分析:取大小为中间的两个a,b(a<b)。实际上就是找出第一个小于b的同时大于等于a的字符串,直接构造即可。要注意细节。
代码如下:
# include<iostream> # include<cstdio> # include<string> # include<cstring> # include<algorithm> using namespace std; string p[1001]; string solve(int n) { string a=p[n/2-1],b=p[n/2]; int la=a.size(); string ans=""; ans+='A'; int i=0; while(i<la){ while(ans[i]<='Z'&&ans<a) ++ans[i]; if(ans[i]<='Z'&&ans>=a&&ans<b) return ans; if(a[i]!=ans[i]) --ans[i]; ans+='A'; ++i; } } int main() { int n; while(scanf("%d",&n)&&n) { for(int i=0;i<n;++i) cin>>p[i]; sort(p,p+n); cout<<solve(n)<<endl; } return 0; }
相关文章推荐
- 中国剩余定理 /孙子定理
- 苹果开发 笔记(80)升级IOS 9 和 XCode 7 引起的问题记录
- DSP/BIOS入门
- 5499 SDOI
- 在Android Studio里导入library(以github里的SlidingMenu为例),jar包及so的步骤
- UVa 439 Knight Moves
- Java Lambda表达式
- Raycasting光线投射
- 【10.04】【整理收集】那些神器级别的BT磁力搜索网站
- 消息循环与Looper
- Ctrl+Alt+T恢复启动Ubuntu默认终端
- COIDE2.0.2无法新建工程的解决方法
- Elasticsearch基础教程
- 空间(space)
- Linux开发中,make命令的使用
- ORACLE同义词
- 今天谈谈OC中MRC手动引用计数的内存释放问题
- 移动APP服务端API设计应该考虑到的问题
- 线性空间
- window10简单的优化设置