codeforces 794C C. Naming Company
来源:互联网 发布:单词社交网络 编辑:程序博客网 时间:2024/06/13 00:46
http://codeforces.com/contest/794/problem/C
题意: Oleg 和 Igor 比赛,每个人都有一串相同长度的字符串,他俩想组成一个跟自己的字符串长度相等的串,O想这个串字典序最小,Ig想串字典序最大,每人每次把自己串中的一个字符添加进答案串中,且每个位置的串只能添加一次。问你最后结果。
思路:
先把Oleg的串按小->大排序,之后Igor的串由大->小排序
之后贪心吧,要小心的是Oleg的串的小的字符比Igor大的字符还要大;
我们设定sl为s串左小标,sr为右下标,因为2个串各取一半,所以排序后只要一半就可以。tl,tr同理,al,ar为答案串的左和右之后判断下就可以了。
#include <bits/stdc++.h>#define maxs 202002#define mme(i,j) memset(i,j,sizeof(i))#define ll long longusing namespace std;char s[300005],t[300005],ans[300005];bool cmp(char x,char y){ return x>y;}int main(){ while(~scanf("%s%s",s,t)) { int len=strlen(s); sort(s,s+len); sort(t,t+len,cmp); int al=0,ar=len-1,sl=0,sr=(len-1)/2,tl=0,tr=(len-1)/2,pos=0; if(len%2) tr--; while(pos<len){ if(pos%2==0){ if(s[sl]>=t[tl]){ ans[ar--]=s[sr--]; }else ans[al++]=s[sl++]; }else{ if(t[tl]<=s[sl]){ ans[ar--]=t[tr--]; }else ans[al++]=t[tl++]; } pos++; } ans[len]='\0'; printf("%s\n",ans); } return 0;}
阅读全文
0 0
- Codeforces 794C. Naming Company
- codeforces 794C C. Naming Company
- Codeforces 794C Naming Company 贪心
- Codeforces 794 C. Naming Company (贪心)
- codeforces 794C Naming Company(贪心)
- 【Codeforces Round #414 C Naming Company】
- codeforces C. Naming Company 贪心+博弈
- Codeforces Round #414 C. Naming Company 贪心
- C. Naming Company
- C. Naming Company 几何
- C. Naming Company 贪心
- C. Naming Company
- C. Naming Company 贪心
- CodeForces 790C Bear and Company
- codeforces Naming Company 很思维题最优想法
- [刷题]Codeforces 794C
- codeforces 794c
- Codeforces 794C
- Redis源码剖析-dict字典
- Oracle存储过程处理大批量数据性能测试
- RAISERROR
- JSP之basePath
- 讨厌
- codeforces 794C C. Naming Company
- 20170908算法工程师在线笔试之jd编程思路
- Linux之awk
- 源码解析Android中AsyncTask的工作原理
- 爬去知乎下某个问题下所有的图片
- 给Revit中的Button添加动画和图片
- Linux系统安装软件的常用命令
- 京东2018年校园招聘笔试代码环节答案分享
- Redis源码剖析-dict遍历算法