洛谷P1012拼数

题目如下:

 思路如下:

1.首先会想到 把三个数从大到小的排列一遍 

  比如样例中的 34331213

但是可能会忽略一种情况 32 312 这种 

字符串比较大小的时候 会输出31232 但是这种

就不是最大的了 

2.骚操作就在这里 重新编写一个比较大小的函数

a+b>b+a //32 312 输出 32312

代码如下(不知道为什么我的编译器dev 不能运行出来,

但是却可以提交通过)

代码如下:

#include<cstdio> 
#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(string a,string b){
    return a+b>b+a; //12 112
}
int main(){
    int n;
    string s[n+1];
    cin>>n;
    for(int i=0;i<n;i++)
    cin>>s[i];
    sort(s,s+n,cmp);
    for(int i=0;i<n;i++)
    cout<<s[i];
    return 0;
}
无聊就学习 反正没事干
原文地址:https://www.cnblogs.com/miao-xixixi/p/12777569.html