NOIP题 谁会
发布网友
发布时间:2022-06-10 13:00
我来回答
共4个回答
热心网友
时间:2024-12-05 02:43
这主要是一个排序算法的编写问题
大致算法可以借鉴 堆排序 算法,每次归并最小的两个数(两堆水果)
http://www.vchome.net/tech/datastruct/datasf29.htm
要完成这个具体需求的程序自己写一下吧~
热心网友
时间:2024-12-05 02:43
program guozi;
var
n:integer;
a,b:array[1..100] of integer;
i,j,t,s,k:integer;
begin
write('n=');
readln(n);
for i:=1 to n do read(a[i]);
readln;
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]>a[j] then begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
end;
s:=0;
i:=0;
repeat
inc(i);
s:=a[i]+a[i+1];
a[i+1]:=s; dec(n);
b[i]:=s;
for j:=i+1 to n-1 do
for k:=j+1 to n do
if a[j]>a[k] then begin
t:=a[j];
a[j]:=a[k];
a[k]:=t;
end;
until n=1;
s:=0;
for j:=1 to i do s:=s+b[j];
writeln(s);
readln
end.
我也是垃圾,呵呵,第一次参加复赛.
热心网友
时间:2024-12-05 02:44
贪心
不过朴素的贪心是(n^2)算法,需要用堆优化
热心网友
时间:2024-12-05 02:44
我知道,QQ:243630481