UVA12265-Selling Land(细节处理)
Accept: 309 Submit: 3231
Time Limit: 3000 mSec
Problem Description
Input
There may be multiple test cases in the input. Each test case will begin with an even integer n (2 ≤ n ≤ 1,000) on its own line. On the next n lines will be names, one per line. Each name will be a single word consisting only of capital letters and will be no longer than 30 letters. The input will end with a ‘0’ on its own line.
Output
Sample Input
FRED
SAM
JOE
MARGARET
2
FRED
FREDDIE
2
JOSEPHINE
JERRY
2
LARHONDA
LARSEN
0
Sample Output
K
FRED
JF
LARI
题解:这个题的细节真的很多,分析之后我采用了如下的方式,首先排序然后取中间两个串这个肯定没啥说的,定义一个ans空串,每次先加入小串的一个字符,如果这个字符小于大串的对应字符,这时答案就能构造出来了,构造方式如下:如果这个字符不是大串的最后一个字符或者这个字符对应的位置(大串-小串)>1,那么如果这个字符不是小串的最后一个字符,ans中该位置的字符++,输出,如果是最后一个,直接输出ans。否则看小串的剩下的字符是否是Z,直到找到一个不是Z的或者到小串的末尾,如果不是Z的字符不是小串的末尾,那么++输出,否则直接输出,如果到了末尾,在后面加一个A输出。这个分支的构造就结束了,如果比到最后也没有找到一个能比出大小的字符,那么就意味着直接输出小串即可。(描述起来太乱,看代码比较好)。
1 #include<bits/stdc++.h> 2 3 using namespace std; 4 5 int n; 6 vector<string> str; 7 8 int main() 9 { 10 //freopen("input.txt", "r", stdin); 11 //freopen("output.txt", "w", stdout); 12 while (~scanf("%d", &n) && n) { 13 str.clear(); 14 string tmp; 15 for (int i = 0; i < n; i++) { 16 cin >> tmp; 17 str.push_back(tmp); 18 } 19 20 sort(str.begin(), str.end()); 21 string lmid = str[n / 2 - 1], rmid = str[n / 2]; 22 int llen = lmid.length(), rlen = rmid.length(); 23 24 bool ok = false; 25 int i = 0; 26 string ans = ""; 27 while (i < llen && i < rlen) { 28 ans += lmid[i++]; 29 if (lmid[i - 1] < rmid[i - 1]) { 30 if (i != rlen || rmid[i - 1] - lmid[i - 1] != 1) { 31 if(i != llen) ans[i - 1]++; 32 cout << ans << endl; 33 ok = true; 34 break; 35 } 36 else { 37 while (i < llen) { 38 ans += lmid[i++]; 39 if (ans[i - 1] != 'Z') { 40 if (i != llen)ans[i - 1]++; 41 cout << ans << endl; 42 ok = true; 43 break; 44 } 45 } 46 47 if (!ok) { 48 if(i != llen) ans += 'A'; 49 cout <<ans << endl; 50 ok = true; 51 } 52 break; 53 } 54 } 55 } 56 57 if (!ok) { 58 cout << lmid << endl; 59 } 60 } 61 return 0; 62 }
转载于:https://www.cnblogs.com/npugen/p/9683233.html
UVA12265-Selling Land(细节处理)相关推荐
- UVALive 4950 Selling Land
在维护高度递增的单调栈中,同时维护周长递增(这一点是很容易证明的),就可以用O(n^2)的复杂度解决了. 代码: #include<bits/stdc++.h> #define fi fi ...
- 《算法竞赛入门经典(第2版)》——学习记录
前言: 这里主要记录本人在学习紫书过程中充分理解过的题目的AC代码,便于以后回顾时查找代码和思路,毕竟看别人的真的有点难懂.此外,本书甚至是本书之外的相关知识学习也可能在此留下记录. 作为一只 ...
- 《算法竞赛入门经典——训练指南》第一章相关内容
#<算法竞赛入门经典--训练指南>第一章相关内容 希望各位大牛能指导! 红色为已经做了的...黄色背景是还有不懂地方,希望在年前能刷完第一章啊.... 更新版.google上貌似又加了ex ...
- 紫书《算法竞赛入门经典》
紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...
- 前端程序员常用的9大构建工具
构建工具是一个把源代码生成可执行应用程序的过程自动化的程序(例如Android app生成apk).构建包括编译.连接跟把代码打包成可用的或可执行的形式. 在小型项目中,开发者往往手动调用构建过程,这 ...
- 无聊猿创始团队卖虚拟土地赚3亿,暴利背后存在哪些问题?
来源/ft.com 编译/Ivans (原标题:BoredApe creator's next windfall: selling land in an 'open' metaverse) Yuga实 ...
- android开发屏幕横放,android-即使从横向旋转到垂直,细节片段也会...
在一个Activity中,我们称其为MasterActivity,我只想在横向模式下加载媒体播放的细节片段.准备就绪后,媒体将自动启动. 主从流程设置:我有两个xml,activity_master和 ...
- matplotlib 设置标注方向_JQData + matplotlib 实现回测日志的交易细节可视化
前言: 做量化交易的朋友都知道回测的重要性,回测结果是衡量一个量化交易策略是否靠谱的重要依据.回测平台会按历史行情数据模拟成交,并将回测结果汇总成报告. 在很多时候,仅有一份回测的最终结果是不够的.比 ...
- 特斯拉电池细节_为什么特斯拉电池日实际上可以辜负炒作
特斯拉电池细节 重点 (Top highlight) In the midst of a pandemic-led slump for the global auto industry, shares ...
- Object-based superresolution land cover Mapping From Remotely sensed imagery
从网上找了几篇相关专业的论文看了一下,第一篇就是这个,下面主要从论文解决的问题,所提出的方法来简单介绍,可能会有理解不对的地方. 之前的亚像元定位方法是基于像元或者亚像元来做的,那本文的作者就提出了一 ...
最新文章
- 【HLSL学习笔记】WPF Shader Effect Library算法解读之[DirectionalBlur]
- Layout两列定宽中间自适应三列布局
- 东南大学周张泉:基于知识图谱的推理技术 | 实录·Guru Talk
- gb酱油和gbt酱油哪个好_都是酱油,生抽好还是味极鲜好?老板:两者差别很大,别买错了...
- 光端机安装调试需注意的几大因素
- python魔法方法与函数_在Python中画图(基于Jupyter notebook的魔法函数)
- 人工智能python课程总结1500字_李开复的《人工智能》读后感1500字
- webstore报 ESLint: Expected space or tab after '//' in comment.(spaced-comment)
- LayaAr 批量加载资源 LoaderManager
- linux系统日志读取,linux系统日志
- 基于深度学习的SLAM综述:迈向空间机器智能时代
- mingw-w64-i686-toolchain
- 笔记本如何解除锁定计算机,笔记本键盘锁定解锁方法教程
- 基于锁的并发数据结构:如何给数据结构加锁?
- 区块链数据服务 - BDS
- 完美解决 请在微信客户端打开链接
- PS内存不足恰当解决方法
- win10开始菜单打不开_windows10系统电脑开始菜单无法打开的解决教程
- html网页里如何竖着打字,搜狗输入法怎么设置为竖排显示 怎样把横向打字变成竖向...
- 目标规划问题与LINGO求解