1998年NOIP全国联赛提高组

题目描述

设有n个正整数 (n<=20), 将它们连接成一排,  组成一个最大的多位整数.
例如: n=3时, 3个整数13, 312, 343连接成的最大整数为: 34331213
又如: n=4时, 4个整数7,13,4,246连接成的最大整数为: 7424613

输入输出格式

输入格式:


n个数

输出格式:

连接成的多位数

输入输出样例

输入样例#1:

3
13 312 343
4
7 13 4 246

输出样例#1:

34331213

7424613

思路

  鉴于n<=20爆搜即可,主要数据范围开到long long(int64)

var a:Array[..] of ansistring;
f:array[..] of boolean;
ans,anss,n,x:int64;
i:longint; function max(x,y:int64):int64;
begin
if x>y then exit(x) else exit(y);
end; procedure dfs(x,y:longint;s:ansistring);
var i,j,c:longint;
begin
if y=n then
begin
val(s,anss,c);
ans:=max(ans,anss);
exit;
end;
for i:= to n do
if not f[i] then
begin
f[i]:=true;
dfs(i,y+,s+a[i]);
f[i]:=false;
end;
end; begin
fillchar(f,sizeof(f),false);
ans:=;
readln(n);
for i:= to n do
begin
read(x);
str(x,a[i]);
end;
for i:= to n do
begin
f[i]:=true;
dfs(i,,a[i]);
f[i]:=false;
end;
writeln(ans);
end.

  当然还是有正规做法的:其实这一题的关键就是巧妙地运用排序和字符串的特性即可以轻松通过了字符串的特性是什么呢?就是字符串在相加时,比如‘1’+‘2’他会得到‘12’,而‘2’+‘1’会得到‘21’。所以呢,利用此特性,再用选排来模拟每一种情况,就能十分容易的找出正确答案了。

var a:array[..]of ansistring;
b,c,d,i,j,k,l,m,n,o:longint;
s,t,jia:ansistring;
begin
readln(n);
for i:= to n do begin{读入,因为读入的数据中有空格,所以先读入成数字,然后再转换到字符串数组中}
read(m);str(m,a[i]);
end;
for i:= to n- do{巧妙地运用选排}
for j:=i+ to n do
begin
if a[i]+a[j]<a[j]+a[i] then begin {因为字符串的特性(如下),选排会将所有的情况一一模拟,继而派出题目要求的最大数}
t:=a[i];
a[i]:=a[j];
a[j]:=t;end;
end;
for i:= to n do{已经排完序后,依次输出就是正确答案了}
write(a[i]);
end.

[NOIP1998]最大数的更多相关文章

  1. BZOJ1012: [JSOI2008]最大数maxnumber [线段树 | 单调栈+二分]

    1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 8748  Solved: 3835[Submi ...

  2. nyoj 448 寻找最大数(贪心专题)

    寻找最大数 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大, 比如当n=920813467185 ...

  3. javascript基础程序(算出一个数的平方值、算出一个数的阶乘、输出!- !- !- !- !- -! -! -! -! -! 、函数三个数中的最大数)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. AC日记——找最大数序列 openjudge 1.9 10

    10:找最大数序列 总时间限制:  1000ms 内存限制:  65536kB 描述 输入n行,每行不超过100个无符号整数,无符号数不超过4位.请输出最大整数以及最大整数所在的行号(行号从1开始). ...

  5. BZOJ1012 [JSOI2008]最大数maxnumber

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...

  6. ACM 寻找最大数

    寻找最大数 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大, 比如当n=920813467185 ...

  7. BZOJ-1012[JSOI2008]最大数maxnumber 线段树区间最值

    这道题相对简单下面是题目: 1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MB Submit: 6542 Solve ...

  8. ORA-01000:超出打开游标的最大数(C#)

    在做一个windows服务,通过查询文本不断的插入数据的功能.测试一直没有问题,到实际环境中跑起来后程序退出,查看日志发现报的这个错误 ORA-01000:超出打开游标的最大数 经过上网查询发现是由于 ...

  9. codevs 1201 最小数和最大数

    http://codevs.cn/problem/1201/ 1201 最小数和最大数  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 青铜 Bronze 题解       题 ...

随机推荐

  1. STM32F407移植contiki2.6后使用LWIP库实现tcp client

    最近在做智能家居,物联网项目,用到了C下的contiki移植 经过一阵调试,终于在 STM32F407移植contiki2.6后使用LWIP库实现tcp client. 一路艰辛谁人知道....唯有留 ...

  2. web页面显示折叠树菜单笔记

    zTree -- jQuery 树插件 http://pan.baidu.com/s/1skwh94h

  3. MIT 2012分布式课程基础源码解析一-源码概述

    课程主页 课程介绍:本课程会在给出的源码的基础上要求完成8个lab Lab overviewLab 1 - Lock ServerLab 2 - Basic File ServerLab 3 - MK ...

  4. com.mchange.v2.c3p0.ComboPooledDataSource

    C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSourc ...

  5. 开发设计模式(四) 代理模式(Proxy Pattern)

    转自http://blog.sina.com.cn/s/blog_89d90b7c0101803g.html 代理模式:代理模式的主要作用是为其他对象提供一种代理以控制对这个对象的访问.在某些情况下, ...

  6. sharepoint 2013 sp1

    http://www.microsoft.com/en-us/download/details.aspx?id=42544 http://soussi-imed.over-blog.com/artic ...

  7. cocos2dx3.4 保存json文件

    头文件: #include "json/document.h" #include "json/stringbuffer.h" #include "js ...

  8. Linux系统架设支持自助开通Shado wsocks及VPN前端的教程

    程序实现:通过网页端注册,自助开通VPN帐号及Shadowsocks帐号.并可实现流量统计 系统要求 Debian 6 x64 纯净系统 by: Lop ①配置环境 apt-get updateapt ...

  9. Oracle数据库的下载和安装

    那天分享一下Oracle的下载和安装的过程,有需要的朋友可以借鉴参考一下.如有雷同不胜感激! 首先可以到Oracle的官网下载Oracle的最次年版本的Oracle数据库.一下是个人下载的数据库版本百 ...

  10. C# List<> 删除

    List<string> l = new List<string>() { "A1", "A2", "A3", &q ...