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

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

拼数【传送门】

洛谷算法标签:

【洛谷p1012】拼数(然鹅这两个学的都不好,能过真的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 
}

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-22
  • 2022-02-23
  • 2021-10-23
  • 2022-12-23
  • 2021-07-01
猜你喜欢
  • 2021-09-08
  • 2021-07-20
  • 2020-06-06
  • 2022-03-05
  • 2022-12-23
相关资源
相似解决方案