【洛谷p1012】拼数

(今天yuezhuren大课间放我们出来了……)

(另外今天回了两趟初中部)

拼数【传送门】

洛谷算法标签:

(然鹅这两个学的都不好,能过真的how strange)


开始的时候没读题啊,直接暴力sort给数据(int型的)排序然后从大到小输出了……(居然还ac了一个点)

然后我去仔细读了题,发现当这个数字首字母越大时(相同的话比下一位),位置越靠前,组成的数就越大,因为字符长度不确定,然后我在想是不是用字符类型的比较好做????

好了又半途不想写了   直接上代码吧

#include<iostream>
#include<cstdio>
#include<algorithm>//sort排序的头文件 
#include<string>//string型函数的头文件 
using namespace std;
bool cmp(string,string);
int main()
{
    int n;
    string a[21];//定义神奇的string型字符 
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    sort(a+1,a+n+1,cmp);//排序 
    for(int i=1;i<=n;i++)//输出 
    cout<<a[i];
}
bool cmp(string a,string b)//整个题的核心??技术含量最高的地方? 
{
    return a+b>b+a;// a+b其意为a放在b后面(b+a相返) 
                   // 如果a+b得到的数值大于b+a,返回a+b 
}

猜你喜欢

转载自www.cnblogs.com/zhuier-xquan/p/10427641.html