贪心做法。
要使拼接后的整数最大,关键在于确定两个数字 和 的相对位置。
将任意两个数字 和 定义为字符串。
如果字符串拼接 ,那么 在 前面。
直接比较两种拼接方式的结果,谁大谁在前,保证局部最优进而全局最优。
#include<bits/stdc++.h>
using namespace std;
bool ans(string a,string b){return a+b>b+a;}
int main(){
int n;
cin>>n;
string a[n];
for (int i=0;i<n;i++) cin>>a[i];
sort(a,a+n,ans);
for (int i=0;i<n;i++)cout<<a[i];
cout<<endl;
return 0;
}
共 2 条评论
此题应证明的是邻项交换的比较条件 ⪯ 满足是一个弱序关系
请说一句“凭啥对”