[NOIP1998]最大数
1998年NOIP全国联赛提高组
题目描述
设有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
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]最大数的更多相关文章
- BZOJ1012: [JSOI2008]最大数maxnumber [线段树 | 单调栈+二分]
1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MBSubmit: 8748 Solved: 3835[Submi ...
- nyoj 448 寻找最大数(贪心专题)
寻找最大数 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大, 比如当n=920813467185 ...
- javascript基础程序(算出一个数的平方值、算出一个数的阶乘、输出!- !- !- !- !- -! -! -! -! -! 、函数三个数中的最大数)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- AC日记——找最大数序列 openjudge 1.9 10
10:找最大数序列 总时间限制: 1000ms 内存限制: 65536kB 描述 输入n行,每行不超过100个无符号整数,无符号数不超过4位.请输出最大整数以及最大整数所在的行号(行号从1开始). ...
- BZOJ1012 [JSOI2008]最大数maxnumber
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- ACM 寻找最大数
寻找最大数 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大, 比如当n=920813467185 ...
- BZOJ-1012[JSOI2008]最大数maxnumber 线段树区间最值
这道题相对简单下面是题目: 1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MB Submit: 6542 Solve ...
- ORA-01000:超出打开游标的最大数(C#)
在做一个windows服务,通过查询文本不断的插入数据的功能.测试一直没有问题,到实际环境中跑起来后程序退出,查看日志发现报的这个错误 ORA-01000:超出打开游标的最大数 经过上网查询发现是由于 ...
- codevs 1201 最小数和最大数
http://codevs.cn/problem/1201/ 1201 最小数和最大数 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 青铜 Bronze 题解 题 ...
随机推荐
- platform_driver_register()--如何match之后调用probe
int platform_driver_register(struct platform_driver *drv) { drv->driver.bus = &platform_bus_t ...
- 一个基于集成jenkins的测试平台
(一)先看测试业务的情况: 有各种各样的任务包括代码构建.部署搭建.单元测试.功能自动化测试(包括许多模块的功能自动化测试,有十几个居多),性能测试.正确性验证:复杂一点的是这些任务在不同的测试阶段中 ...
- Educational Codeforces Round 8 D. Magic Numbers
Magic Numbers 题意:给定长度不超过2000的a,b;问有多少个x(a<=x<=b)使得x的偶数位为d,奇数位不为d;且要是m的倍数,结果mod 1e9+7; 直接数位DP;前 ...
- UIMenuController搭配UIPasteboard,执行拷贝-黏贴操作-b
一.基本概念 UIKit框架中,可以直接执行拷贝黏贴操作的有:UITextView.UITextField和UIWebView,其他控件需要实现相关方法. 关于UIPasteboard ·黏贴板是ap ...
- c# int? i = null
语法 T? 是 Nullable<T>的简写. Nullable<int> i = null; 等价于 int? i = null; 在Nullable赋值给非Nullable ...
- mysql procedure返回多数据集
返回多数据集写法:第一种 DROP PROCEDURE IF EXISTS `p_query_user` ; DELIMITER // CREATE PROCEDURE p_query_user( p ...
- yum和rpm命令详解
rpm,全称RPM Package Manager,是RedHat发布的,针对特定硬件,已经编译好的软件包.安装之后就可以使用,不需要自行编译,以及之前对软件和硬件的检测,目录的配置等动作. yum, ...
- Ubuntu14.04下Unity桌面托盘图标显示问题
本来想丰富一下功能,遂开始安装大开眼界:Ubuntu下10个厉害的Indicator小程序这里的Indicator小程序. 很不幸,在安装到indicator-multiload的时候,准备注销看一下 ...
- POJ 1135 Domino Effect(Dijkstra)
点我看题目 题意 : 一个新的多米诺骨牌游戏,就是这个多米诺骨中有许多关键牌,他们之间由一行普通的骨牌相连接,当一张关键牌倒下的时候,连接这个关键牌的每一行都会倒下,当倒下的行到达没有倒下的关键牌时, ...
- new[]上面居然有一个内存计数,怪不得delete[]从来不出错
开眼界了,留个爪,以后再仔细看几遍: http://www.cnblogs.com/hazir/p/new_and_delete.html