1998 NOIP 拼数 string 和sort的新理解
程序员文章站
2022-04-14 15:40:35
题目:https://www.luogu.org/problemnew/show/P1012 今天真是长了见识。这道题做了十几分钟,用模拟愣是调不出来。直到我看了题解——(当场去世)…… 题的意思是n个数拼出一个最大的数,我竟真的傻傻的输进n个数。。。。。 用string 轻松解决!!! 用sort ......
题目:https://www.luogu.org/problemnew/show/p1012
今天真是长了见识。这道题做了十几分钟,用模拟愣是调不出来。直到我看了题解——(当场去世)……
题的意思是n个数拼出一个最大的数,我竟真的傻傻的输进n个数。。。。。
用string 轻松解决!!!
用sort排列,然后直接从1到n输出,秒ac.....
关键是关于string的加法性质:ac+cd=abcd;
所以把cmp写一下就好了;
上代码,一看全明白!!!
#include<iostream> #include<cstring> #include<cstdio> #include<string> #include<algorithm> using namespace std; int n; string a[50]; bool cmp(string x,string y) { return x+y>y+x; } int main() { scanf("%d",&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]; } return 0; }
上一篇: 支付渠道路由系统进化史
下一篇: 智能指针和二叉树(3):图解查找和删除