codeforces 794c
来源:互联网 发布:图书管理系统java需求 编辑:程序博客网 时间:2024/06/18 15:24
比赛的时候。。先yy了一发题目。然后wa了一发之后想清楚了应该怎么搞。。然后就玩了一个半钟,代码敲搓。
(主要当时竟然想到直接计数。。计数这个是个巨坑,千万不能计数啊!!!)题目:http://codeforces.com/problemset/problem/794/C
题目大意:
有两个人想要开公司,两个人手上有相同长度为n的字符串集合,他们需要给公司搞一个名字。
公司名为长度为n的字符串,每次A玩家先从自己集合里挑一个放字符放里面,B玩家再从自己的集合里挑一个字符放里面,直到公司名完成为止。A玩家想要公司名字典序尽量小
B玩家想要公司名字典序尽量大
A和B分别知道对方的集合里还剩下什么字符。
现在在两个人足够聪明的情况下,请问会产生出怎样的公司名。思路:
比赛的时候思路一直是对的。。只是代码搞搓了。。orz
对于A和B:
当A集合中存在比B集合的字符要小的字符的时候,
A肯定想尽量的把小的字符放到最前面,B肯定想尽量把大的字符放到最前面。当A集合中存在比B集合的字符要大或等于的时候,
A肯定想尽量把还需要放的字符中最大的放到最后面,
B肯定想尽量把还需要放的字符中最小的放到最后面,就是一道贪心题。直接模拟一下字符串放置就好了。。
/*@resources: codeforces@date: 2017-5-13@author: QuanQqqqq@algorithm:*/#include <bits/stdc++.h>#define ll long long#define eps 1e-6using namespace std;char str1[400005],str2[400005],str3[400005];int main(){ gets(str1); gets(str2); int len = strlen(str1); sort(str1,str1 + len); sort(str2,str2 + len); int t1 = 0,t2 = len - 1,idx = len - 1; bool flag = true,change = false; for(int i = 0;i < len;i++){ if(str1[t1] >= str2[t2] && !change){ change = true; int tlen = len - i; int tmp1 = i % 2 ? tlen / 2 : (int)ceil(tlen / 2.0); int tmp2 = i % 2 ? (int)ceil(tlen / 2.0) : tlen / 2; tmp1--,tmp2--; while(tmp1--){ t1++; } while(tmp2--){ t2--; } } if(flag){ if(change){ str3[idx--] = str1[t1]; t1--; } else { str3[i] = str1[t1]; t1++; } } else { if(change){ str3[idx--] = str2[t2]; t2++; } else { str3[i] = str2[t2]; t2--; } } flag = !flag; } str3[len] = '\0'; printf("%s\n",str3);}
阅读全文
0 0
- [刷题]Codeforces 794C
- codeforces 794c
- Codeforces 794C
- Codeforces 794C【贪心】
- Codeforces 794C. Naming Company
- codeforces 794C C. Naming Company
- Codeforces 794C Naming Company 贪心
- Codeforces 794 C. Naming Company (贪心)
- codeforces 794C Naming Company(贪心)
- Codeforces-340-C(c++)
- Codeforces-507-C(c++)
- CodeForces 731C C
- CodeForces-612C C
- CODEFORCES 265C CODEFORCES, 265C
- codeforces #78 div2 C
- Codeforces 117C Cycle
- CodeForces 209C
- CodeForces 156C Cipher
- 快节奏多人在线游戏网络入门系列教程(4):爆头!滞后补偿
- Spark编译
- 树的定义和基本术语
- 使用apache设置绑定多个域名或网站
- 喷水装置(二)
- codeforces 794c
- HDU 2544 最短路——dijlstra
- andrioid 桌面
- 网络流-最大流
- 关于ARGB_8888、ALPHA_8、ARGB_4444、RGB_565的理解
- 我与python约个会:10.程序编程基础4~变量&运算符
- 获取轮廓线上的点坐标
- 游戏开发及游戏(2D/3D)小Demo(进行中)- Android
- 查询的数据插入到另一张表中,分为两种情况,一种是目标表不存在,另一种是目标表存在。