“玲珑杯”ACM比赛 Round #22 E【贪心】
来源:互联网 发布:abs c语言 编辑:程序博客网 时间:2024/06/05 18:32
题目:
http://www.ifrog.cc/acm/problem/1171?contest=1024&no=4
题意:
输入一个字符串,将他重新排列,使得重排之后的字符串的最小表示法,最大。
最小表示法是将字符串循环移动之后,字典序最小的那个。
分析:
将所有字母作为一个字母的字符串放进一个multiset,每次取出其中第一个字符串和最后一个字符串,将他们连接放回multiset
最后剩下一个字符串便是答案。
#include <iostream>#include <algorithm>#include <string>#include <vector>#include <map>#include <set>#include <queue>#include <cstdio>#include <cstring>#include <cmath>using namespace std;const int N=1e3+9;typedef long long LL;typedef pair<int,int> pii;int n;char s[N];int main(){ multiset<string>ms; scanf("%s",s); int n=strlen(s); for(int i=0;i<n;i++) ms.insert(string(1,s[i])); while(ms.size()>1){ multiset<string>::iterator it=ms.end(); --it; string x=*(ms.begin())+ *it; ms.erase(it); ms.erase(ms.begin()); ms.insert(x); } cout<<*(ms.begin())<<endl; return 0;}
阅读全文
0 0
- “玲珑杯”ACM比赛 Round #22 E【贪心】
- “玲珑杯”ACM比赛 Round #4 E -- array(dp)
- “玲珑杯”ACM比赛 Round #4 E题
- 玲珑杯”ACM比赛 Round #4 E -- array【DP】
- “玲珑杯”ACM比赛 Round #4
- 玲珑杯”ACM比赛 Round #5
- “玲珑杯”ACM比赛 Round #7
- “玲珑杯”ACM比赛 Round #7
- “玲珑杯”ACM比赛 Round #11 " ---1097
- “玲珑杯”ACM比赛 Round #11 D
- “玲珑杯”ACM比赛 Round #11
- “玲珑杯”ACM比赛 Round #12【dp】
- “玲珑杯”ACM比赛 Round #13
- 玲珑杯”ACM比赛 Round #15
- “玲珑杯”ACM比赛 Round #15 A
- 玲珑杯”ACM比赛 Round #15 D
- “玲珑杯”ACM比赛 Round #18
- “玲珑杯”ACM比赛 Round #18
- Maven
- 千行代码带你入门Python
- 桥接模式
- Educational Codeforces Round 31
- [UnityShader基础]简单Shader本体
- “玲珑杯”ACM比赛 Round #22 E【贪心】
- Java之Lists.Partition项目中的使用
- 【数位dp】B-number
- SpringMVC_统一异常处理
- 图像识别与处理之Opencv——像素值的读写
- otto框架简单的使用(个人笔记)
- 百度云视频CDN面试总结
- vb记录
- ACL 2017 accepted papers