PAT (Advanced Level) Practice - 1038 Recover the Smallest Number(30 分)
发布日期:2021-06-30 23:43:13 浏览次数:3 分类:技术文章

本文共 659 字,大约阅读时间需要 2 分钟。

题目链接:

 

题目大意:略。

 

解题思路:其实就是一个序的关系,所有的组合有n!种,(像"所谓组出最小数其实是获得字典序最小的拼接方式"这种废话我就不说了)。假设我们获得了其中的一个组合,然后又两个相邻的数字片段a,b。然后我们就要想,把a和b交换能不能使整个序列变小呢?这个问题的其实等价于b+a 是否小于a+b(此处"+"为连接符),也就是说对于这样一个序列,如果某两个相邻的元素之间发生交换可以使得整个序列的值变小,我们就应该坚决的交换。

这样一来,比较每两个相邻的元素,如果交换可以使得整个序列变大,就交换之,直到最后没有任何两个值之间能进行交换,啊,这不就是传说中的Bubble_Sort吗,真是一个令人激动的结论啊。而C++ sort函数就可以满足此要求。

 

AC 代码

#include
#include
#define mem(a,b) memset(a,b,sizeof a)#define ssclr(ss) ss.clear(), ss.str("")#define INF 0x3f3f3f3f#define MOD 1000000007using namespace std;typedef long long ll;const int maxn=1e4+10;int cmp(string a,string b){ return a+b
>srr[i]; sort(srr,srr+n,cmp); for(int i=0;i

 

转载地址:https://lux-sun.blog.csdn.net/article/details/82085095 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:面经 - C/C++ 基础篇
下一篇:PAT (Advanced Level) Practice - 1076 Forwards on Weibo(30 分)

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月23日 15时27分51秒