题目描述

设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。

例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213

又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613

输入输出格式

输入格式:

第一行,一个正整数n。

第二行,n个正整数。

输出格式:

一个正整数,表示最大的整数

输入输出样例

输入样例#1:

3
13 312 343
输出样例#1:

34331213

[分析]:

首先我们可以证明最大的答案字典序也一定最大。

并且大家一定都知道C++的string类,然而可能不知道的是,这个类还定义了'<'运算符和'+'运算符。

而<的定义为按字典序比较,+的定义为字符串直接连接。

恰好符合此题题意。

[代码]:

#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=;
int n;
string in[maxn];
bool cmp(const string &a,const string &b)
{
return a+b > b+a;
}
int main()
{
ios::sync_with_stdio();
cin>>n;
for(int i=;i<=n;i++)
cin>>in[i];
sort(in+,in++n,cmp);
for(int i=;i<=n;i++)
cout<<in[i];
cout<<endl;
return ;
}
#include <iostream>
#include <algorithm> //所需函数
#include <cstring>
#include <string>
using namespace std;
int n;
string s[];
string ans = "";
int main()
{
cin >> n;
for (int i = ; i <= n; i++)
cin >> s[i];
do
{
string t;
for (int i = ; i <= n; i++)
t = t + s[i]; //生成每一个数字(字符串)
if (t > ans)
ans = t; //字符串可以直接比较
}while (next_permutation(s+,s+n+)); //全排列
cout << ans << endl;
return ;
}

next_permutation

最新文章

  1. The Pragmatic Programmer Quick Reference Guide
  2. Java开发的命名规范
  3. PADSPCB权威指南-第一章 PADS软件系统(部分)(原创)
  4. CentOS 7 安装Redis 2.8.7
  5. JS代码的加载
  6. 业务对象(BO)设计
  7. lhgdialog 与后台交互的对话框
  8. Nginx+uWSGI+Django+Python在Linux上的部署
  9. django post方法不能提交
  10. UVa340 Master-Mind Hints
  11. 入坑第二式 golang入坑系统
  12. java 多线程 Callable -- 分段处理一个大的list 然后再合并结果
  13. Mysql Order By 字符串排序,mysql 字符串order by
  14. Ch02 课堂作业
  15. [转]PuTTY字体颜色设置
  16. python(1):数据类型/string/list/dict/set等
  17. idea的操作
  18. sqoop 测试 --hive-delims-replacement 参数
  19. 【PyQt5-Qt Designer】QLineEdit 文本输入
  20. Jquery中$.each()与$().each()的使用与区别。

热门文章

  1. 【bzoj2141】排队 分块+树状数组
  2. 51nod 1565模糊搜索(FFT)
  3. 洛谷 P2611 [ZJOI2012]小蓝的好友 解题报告
  4. Spring学习--实现 FactoryBean 接口在 Spring IOC 容器中配置 Bean
  5. Android百度定位API的使用
  6. tomcat:tomcat的OutOfMemoryError解决
  7. usaco 月赛 2005 january watchcow
  8. 使用dd命令克隆整个系统
  9. UVALIVE 3939 Plucking fruits
  10. UVA 10303 How Many Trees? (catlan)