贪心 最大整数(源自NOIP1998连接多位数)

来源:互联网 发布:淘宝千牛发货流程 编辑:程序博客网 时间:2024/05/14 15:04

SSL 1078
洛谷 P1107 最大整数
题目描述
设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。
例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213
又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613

var  s,i,n,j:longint;  t:string;  a:array[1..100]of string;begin  readln(n);  for i:=1 to n do   begin     read(s);     str(s,a[i]);   end;  for i:=1 to n-1 do   for j:=i+1 to n do    if (a[i]+a[j])<(a[j]+a[i]) then     begin       t:=a[i];a[i]:=a[j];a[j]:=t;     end;  for i:=1 to n do   write(a[i]);end.

重点在排序阶段,要判断,是这个字符串加上之前的字符串大,还是另一个字符串加上之前的字符串大,很难,但可以用它们自身来排序:
1和10
110>101
这就是利用自身来排序的精髓。

啊哈!

1 0
原创粉丝点击