codeforces 632C The Smallest String Concatenation

The Smallest String Concatenation

题目链接:http://codeforces.com/problemset/problem/632/C

    ——每天在线,欢迎留言谈论。

题目大意:

给你n个字符串,相加后 字典序最小

思路:

只需要保证每个相邻的两个字符串组合后 s1+s2>s2+s1 即可。

用sort()快速排序,最后依次输出即可!

AC代码:

 1 #include <iostream>
 2 #include <string>
 3 #include <algorithm>
 4 using namespace std;
 5 const int MAXN=5e4+15;
 6 string ss[MAXN];
 7 bool cmp(string s1,string s2)
 8 {
 9     return s1+s2<s2+s1;
10 }
11 int main()
12 {
13     int n;
14     cin>>n;
15     for(int i=0;i<n;i++)
16         cin>>ss[i];
17     sort(ss,ss+n,cmp);
18     for(int i=0;i<n;i++)
19         cout<<ss[i];
20     cout<<endl;
21     return 0;
22 }

2017-05-07 19:20:25

原文地址:https://www.cnblogs.com/Twobox/p/6821882.html