题解:P1012 [NOIP 1998 提高组] 拼数

· · 题解

题意简化

给定 n 个数,将它们打乱顺序拼接,求拼接出最大的数字

思路

将每个数字以字符串形式存进数组,分别将其和其它数字拼接起来比较大小,最后输出即可

代码

#include<bits/stdc++.h>
using namespace std;
int n;
string str[21];
bool cmp(string a,string b)
{
    return a+b>b+a;
}
int main()
{
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>str[i];
    }
    sort(str,str+n,cmp);
    for(int i=0;i<n;i++)
    {
        cout<<str[i];
    }
    return 0;
}

严禁抄袭题解