题目:1038 Recover the Smallest Number (30分) 分析:模拟即可,sort对字符串排序,主要是前缀0的处理,看代码 #include <iostream> #include<cstring> #include<vector> #include<stdio.h> #include<queue> #include<math.h> #include<stack> #include<algorithm> #include<map> #include<set> #define MAX 99999999 typedef long long ll; using namespace std; int n,m; string a[100001]; int cmp(string s1,string s2) { return s1 + s2 < s2 + s1; } int main() { cin>>n; for(int i = 0;i<n;i++) cin>>a[i]; sort(a,a+n,cmp); string ans ; for(int i = 0;i<n;i++) ans += a[i]; int i = 0; for(;i<ans.size()&&ans[i]=='0';i++); if(i == ans.size()) cout<<0; for(;i<ans.size();i++) cout<<ans[i]; return 0; }