题目链接:http://codeforces.com/contest/794/problem/C

题意:有两个人每个人都有一个长度为n的字符串,两人轮流拿出一个字符串,放在一个长度为n的字符串的指定位置中,第一个

人他想让最后组成的字符串尽可能小,另一个人想要字符串尽可能的大。他们互相知道各自手中有什么字符串,最后输出组成的

字符串

#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <deque>
using namespace std;
const int M = 3e5 + 10;
char s1[M] , s2[M] , s[M];
deque<char>Ol , Ig;
bool cmp(char x , char y) {return x > y;}
int main() {
cin >> s1 >> s2;
int n = strlen(s1);
sort(s1 , s1 + n) , sort(s2 , s2 + n , cmp);
if(n % 2 == 0) {
for(int i = 0 ; i < n / 2 ; i++) {
Ol.push_back(s1[i]);
}
for(int i = 0 ; i < n / 2 ; i++) {
Ig.push_back(s2[i]);
}
}
else {
for(int i = 0 ; i <= n / 2 ; i++) {
Ol.push_back(s1[i]);
}
for(int i = 0 ; i < n / 2 ; i++) {
Ig.push_back(s2[i]);
}
}
int sta = 0 , end = n - 1;
while(!Ol.empty()) {
if(Ig.empty()) {
s[sta++] = Ol.front();
break;
}
char cp1 = Ol.front() , cp2 = Ig.front();
int flag = 0;
if(cp1 < cp2) {
s[sta++] = cp1;
flag = 1;
}
else {
s[end--] = Ol.back();
flag = 2;
}
if(flag == 1) {
Ol.pop_front();
}
else {
Ol.pop_back();
}
if(Ol.empty()) {
s[sta++] = cp2;
break;
}
else {
flag = 0;
char cp3 = Ol.front();
if(cp2 > cp3) {
s[sta++] = cp2;
flag = 1;
}
else {
s[end--] = Ig.back();
flag = 2;
}
if(flag == 1) {
Ig.pop_front();
}
else {
Ig.pop_back();
}
}
}
cout << s << endl;
return 0;
}

codeforces 794 C. Naming Company(贪心)的更多相关文章

  1. 【codeforces 794C】Naming Company

    [题目链接]:http://codeforces.com/contest/794/problem/C [题意] 有n个位置; 两个人; 每个人都有n个字符组成的集合s1,s2(可以有重复元素); 然后 ...

  2. [刷题]Codeforces 794C - Naming Company

    http://codeforces.com/contest/794/problem/C Description Oleg the client and Igor the analyst are goo ...

  3. CodeForces 794 G.Replace All

    CodeForces 794 G.Replace All 解题思路 首先如果字符串 \(A, B\) 没有匹配,那么二元组 \((S, T)\) 合法的一个必要条件是存在正整数对 \((x,y)\), ...

  4. codeforces Gym 100338E Numbers (贪心,实现)

    题目:http://codeforces.com/gym/100338/attachments 贪心,每次枚举10的i次幂,除k后取余数r在用k-r补在10的幂上作为候选答案. #include< ...

  5. [Codeforces 1214A]Optimal Currency Exchange(贪心)

    [Codeforces 1214A]Optimal Currency Exchange(贪心) 题面 题面较长,略 分析 这个A题稍微有点思维难度,比赛的时候被孙了一下 贪心的思路是,我们换面值越小的 ...

  6. CodeForces - 794C:Naming Company(博弈&简单贪心)

    Oleg the client and Igor the analyst are good friends. However, sometimes they argue over little thi ...

  7. 【贪心】【multiset】Tinkoff Challenge - Final Round (Codeforces Round #414, rated, Div. 1 + Div. 2) C. Naming Company

    考虑两个人,先把各自的集合排个序,丢掉一半,因为比较劣的那一半一定用不到. 然后贪心地放,只有两种决策,要么把一个最优的放在开头,要么把一个最劣的放在结尾. 如果我的最优的比对方所有的都劣(或等于), ...

  8. 【贪心+博弈】C. Naming Company

    http://codeforces.com/contest/794/problem/C 题意:A,B两人各有长度为n的字符串,轮流向空字符串C中放字母,A尽可能让字符串字典序小,B尽可能让字符串字典序 ...

  9. Codeforces Round #414 C. Naming Company

    http://codeforces.com/contest/794/problem/C 题意: 有两个人要为公司起名字,每个人手中都有n个字符,现在要取一个n个字符长度的公司名.两人轮流取名,每次选择 ...

随机推荐

  1. 面试必问之ArrayList

    ArrayList概述 (1)ArrayList 是一种变长的集合类,基于定长数组实现. (2)ArrayList 允许空值和重复元素,当往 ArrayList 中添加的元素数量大于其底层数组容量时, ...

  2. linux自学

    Linux文件与目录管理   所有不太会的命令,可以用man +命令,查看相关解释文档   绝对路径:从根路径写起的路径,/usr/local 相对路径:例如:路径a:~/demo/test  路径b ...

  3. 自定义SWT控件一之自定义单选下拉框

    一.自定义下拉控件 自定义的下拉框,是自定义样式的,其中的下拉框使用的是独立的window,非复选框的下拉框双击单机其它区域或选择完之后,独立window构成的下拉框会自动消失. package co ...

  4. Currency Exchange POJ1860

    Description Several currency exchange points are working in our city. Let us suppose that each point ...

  5. Vue组件间通信-Vuex

    上回说到Vue组件间通讯,最后留了一个彩蛋~~~Vuex.Vuex是另一种组件通讯的方法,这节来说说Vuex(store仓库). 首先Vuex需要安装,安装的方式有很多,在这里就不一一细说了.我是通过 ...

  6. 关于Unity 中对UGUI制作任务系统的编程

    版权声明: 本文原创发布于博客园"优梦创客"的博客空间(网址:http://www.cnblogs.com/raymondking123/)以及微信公众号"优梦创客&qu ...

  7. 十分钟带你看一遍ES6新特性

    let , const关键字 var 看习惯了java, 看js真的是忍不住想笑,比如说这个var,它太自由了,自由到{}根本限制不住它的生命周期 js的var关键字,无论在何处声明,都会被视为声明在 ...

  8. Robotframework获取移动端toast问题

    背景: 在做移动端自动化测试的时候,经常会遇到一个问题就是获取toast提示问题,如果需要解决这个问题需要重新处理,不能按照正常的逻辑,使用robotframework自带的关键字进行获取,需要重新考 ...

  9. Python - 自学django,上线一套资产管理系统

    一.概述 终于把公司的资产管理网站写完,并通过测试,然后上线.期间包括看视频学习.自己写前后端代码,用时两个多月.现将一些体会记录下来,希望能帮到想学django做web开发的人.大牛可以不用看了,小 ...

  10. jquery EasyUi 添加节点、展开所有节点、默认选中第一个节点

    感觉easyUi 的树用起来不如 Ext 的树方便,首先,root节点不太好自定义, 异步加载时,只能通过后台判断生成root节点,但是这样一来有一个问题,就是第一次访问界面时, 树的初始化比较慢,大 ...