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