(今天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 }