Party Games UVA - 1610 贪心
题目:题目链接
思路:排序后处理到第一个不同的字符,贪心一下就可以了
AC代码:
- #include <iostream>
- #include <cstdio>
- #include <cstring>
- #include <algorithm>
- #include <string>
- #include <vector>
- #include <map>
- #include <set>
- #define FRER() freopen("in.txt", "r", stdin)
- #define FREW() freopen("out.txt", "w", stdout)
- #define INF 0x3f3f3f3f
- using namespace std;
- int main()
- {
- //FRER();
- //FREW();
- vector<string> vec;
- string str, ptr;
- int n;
- while(cin >> n && n) {
- vec.clear();
- for(int i = ; i < n; ++i) {
- cin >> str;
- vec.push_back(str);
- }
- sort(vec.begin(), vec.end());
- int b = n / , a = b - ;
- str = vec[a];
- ptr = vec[b];
- int len = min(str.length(), ptr.length());
- bool ok = true;
- string s = "", tmp;
- for(int i = ; i < len; ++i) {
- if(str[i] == ptr[i])
- s += str[i];
- else {
- tmp = s + (char)(str[i] + );
- if(tmp == ptr) {
- s += str[i++];
- while(i < str.length() - && str[i] == 'Z')
- s += str[i++];
- if(i < str.length() - )
- s += (char)(str[i] + );
- else
- s = str;
- }
- else {
- if(tmp.length() == str.length())
- s = str;
- else
- s = tmp;
- }
- break;
- }
- }
- cout << s << endl;
- }
- return ;
- }
Party Games UVA - 1610 贪心的更多相关文章
- Party Games UVA - 1610
题目 #include<iostream> #include<string> #include<algorithm> using namespace std; // ...
- UVA 1610 Party Games
题意: 给出一系列字符串,构造出一个字符串大于等于其中的一半,小于另一半. 分析: 取大小为中间的两个a,b(a<b).实际上就是找出第一个小于b的同时大于等于a的字符串,直接构造即可. 代码: ...
- UVa 1610 Party Games(思维)
题意: 给出一系列字符串,构造出一个最短字符串(可以不在集合中)大于等于其中的一半,小于另一半. 析:首先找出中间的两个字符串,然后暴力找出最短的字符串,满足题意. 代码如下: #include &l ...
- UVA - 1610 Party Games (字符串比较)
给你n(n为偶数)个字符串,让你找出一个长度最短且字典序尽量小的字符串,使得一半的字符串小于等于该串,一半的字符串大于该串. 紫薯上说这道题有坑,但其实思路对了就没什么坑. 很明显,只要取夹在中间两个 ...
- UVA - 1610 Party Games(聚会游戏)(构造)
题意:输入一个n(2<=n<=1000,n是偶数)个字符串的集合D,找一个长度最短的字符串S(不一定在D中出现),使得D中恰好一半串小于等于S,另一半串大于S.如果有多解,输出字典序最小的 ...
- 【uva 1610】Party Games(算法效率--构造 dfs)
题意:有一个N个字符串(N≤1000,N为偶数)的集合,要求找一个长度最短的字符串(可不在集合内)S,使得集合中恰好一半的串小于等于S,另一半大于S.如果有多解,要求输出字典序最小的解. 解法:本来我 ...
- 01_传说中的车(Fabled Rooks UVa 11134 贪心问题)
问题来源:刘汝佳<算法竞赛入门经典--训练指南> P81: 问题描述:你的任务是在n*n(1<=n<=5000)的棋盘上放n辆车,使得任意两辆车不相互攻击,且第i辆车在一个给定 ...
- UVA 11389(贪心问题)
UVA 11389 Time Limit:1000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Description II ...
- uva 10154 贪心+dp
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
随机推荐
- 译:Java 中的正则表达式性能概述
原文链接:https://www.baeldung.com/java-regex-performance 作者: baeldung 译者:Darren Luo 1. 概述 在本快速教程中,我们将展示模 ...
- MyBatis学习总结(二)---实例
为了对MyBatis有个初步了解,现做一个简单的增.删.改.查实例.了解涉及的文件与相关作用. MySql创建friends表,以下是表的sql语句 DROP TABLE IF EXISTS `fri ...
- 安装vs2013提示必须安装ie10的解决办法
虽说应该直接安装ie10,但试了下并不是很顺利,找到如下解决办法,亲测通过. 新建bat文件,内容如下,右键以管理员身份运行,vs即可正常安装. @ECHO OFF :IE10HACK REG ADD ...
- vim的命令
下面是从一个博客里摘抄出来的, 供自己学习使用. 在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行.你可以试试把代码缩进任意打乱再用n= ...
- 查询日志logcat使用总结
cmd命令行中使用adb logcat命令查看Android系统和应用的log,dos窗口按ctrl+c中断输出log记录.logcat日志中的优先级/tag标记: android输出的每一条日志都有 ...
- 【Python图像特征的音乐序列生成】思路的转变
关于生成网络这边,可能会做一个深度的受限玻尔兹曼机,这样可以保证生成的音乐不会太相似. 情绪识别网络和生成网络的耦合,中间变量可能直接就是一个one-hot向量,用来标注指定的情绪,不做成坐标那种难以 ...
- Linux下解压ZIP压缩包乱码问题
并不是所有ZIP文件都是乱码的而且导致解压失败,只有windows下压缩的ZIP在Linux中会出现这种情况.这是因为Windows和Linux下用的字符编码不同.Windows下的编码格式为GBK, ...
- 突然心血来潮,想写写我在java面试中遇到的事。作为一个应届生,我觉得我的情况都与大部分应届生是差不多的,希望你们能在这上面得到一些有用的
面试过程吧,怎么说呢?从一开始接触面试到现在成功了几家,这中间我确实收获了许多,那我就从我第一次面试开始讲吧. 第一次面试是有人介绍过来的,总之还是有一位贵人相助,所以第一次面试时,面试官很好没有怎么 ...
- unity热更新方案对比
Unity应用的iOS热更新 • 什么是热更新 • 为何要热更新 • 怎样在iOS 上对Unity 应用进行热更新 • 支持Unity iOS 热更新的各种Lua 插件的对照 什么是热更新 • ...
- 在Python中使用help帮助
在Python中使用help帮助 >>> import numpy >>> help(numpy.argsort) Help on function argsort ...