UVA 10905 Children's Game
2016-07-18 10:27
316 查看
题意:
给你n个数,要你用这n个数组成一个最大的数。
思路:
对于两个数a和b,要如何选择哪个数放前面呢?很简单,若ab>ba则选a,若ab<ba则选b。所以我们只要按这个规则sort一遍就可以了。(这题每个这些数的数据范围,我用int和long long都过不了,估计数据每个数都特别大,所以这里用string)。
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
const int MAX=55;
int n;
string a[MAX];
bool cmp(string a,string b){
return a+b>b+a;
}
int main(){
while(cin>>n){
if(n==0) break;
for(int i=0;i<n;i++){
cin>>a[i];
}
sort(a,a+n,cmp);
for(int i=0;i<n;i++){
cout<<a[i];
}
cout<<endl;
}
return 0;
}
给你n个数,要你用这n个数组成一个最大的数。
思路:
对于两个数a和b,要如何选择哪个数放前面呢?很简单,若ab>ba则选a,若ab<ba则选b。所以我们只要按这个规则sort一遍就可以了。(这题每个这些数的数据范围,我用int和long long都过不了,估计数据每个数都特别大,所以这里用string)。
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
const int MAX=55;
int n;
string a[MAX];
bool cmp(string a,string b){
return a+b>b+a;
}
int main(){
while(cin>>n){
if(n==0) break;
for(int i=0;i<n;i++){
cin>>a[i];
}
sort(a,a+n,cmp);
for(int i=0;i<n;i++){
cout<<a[i];
}
cout<<endl;
}
return 0;
}
相关文章推荐
- rk平台声卡切换
- pymongo中find_one和find的区别
- 汇编语言程序设计,文件操作管理
- 天禾云盘【Fly.Box】2.4.0发布,含Android、IOS客户端
- Cmake的交叉编译
- PHP-线程一直不释放调试
- Java集合中Set的常见问题及用法
- 10006---为什么Scrum不行
- 【网络安全】图解SSL
- Eclipse如何快速修改工程名及包名
- log4j入门小例子
- 第一章:议题思考(演示用)
- AVComposition中的CALayer
- 栈类模板
- 汇编语言文件操作管理,文件代号式磁盘存取中遇到的问题
- WSDL WebService和RestFul WebService的个人理解
- SQL truncate 、delete与drop区别
- JVM调优
- 使用powershell/vbs自动化模拟鼠标点击操作
- nodejs 阻塞与非阻塞