问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

第25届宁波市中小学生程序设计竞赛(初中组)复赛第三题——插入排序_百...

发布网友 发布时间:2022-05-29 04:40

我来回答

2个回答

热心网友 时间:2024-10-22 13:28

//O(n*lgmaxm)
const maxn=100000;maxm=20000;
var a:array[1..maxn]of longint;
c,lowbit:array[1..maxm]of longint;
n,i,j,sum,max,tmp:longint;

function findmax(i:longint):longint;
var max:longint;
begin
max:=0;
while i>0 do begin
if max<c[i] then max:=c[i];
i:=i-lowbit[i];
end;
findmax:=max;
end;

procedure fill(i,x:longint);
begin
while i<=maxm do begin
if c[i]<x then c[i]:=x;
i:=i+lowbit[i];
end;
end;

begin
assign(input,'insert.in');reset(input);
assign(output,'insert.out');rewrite(output);
for i:=1 to maxm do lowbit[i]:=i and (i xor (i-1));
read(n);
for i:=1 to n do read(a[i]);
sum:=0;
for i:=1 to n do sum:=sum+a[i];
fillchar(c,sizeof(c),0);
max:=0;
for i:=1 to n do begin
tmp:=findmax(a[i]);
tmp:=tmp+a[i];
if max<tmp then max:=tmp;
fill(a[i],tmp);
end;
writeln(sum-max);
close(output);close(input);
end.

热心网友 时间:2024-10-22 13:30

不会pascal,你自己调试吧。
readln(n);
for i:=1 to n do
begin
    read(a[i]);
end;
for i:=2 to n do
begin
    j = i - 1;
    s = a[i];
    while j > 0 and s < a[j] do
    begin
        a[j+1] = a[j]; 
    end
    a[j+1] = s;  
end

热心网友 时间:2024-10-22 13:32

//O(n*lgmaxm)
const maxn=100000;maxm=20000;
var a:array[1..maxn]of longint;
c,lowbit:array[1..maxm]of longint;
n,i,j,sum,max,tmp:longint;

function findmax(i:longint):longint;
var max:longint;
begin
max:=0;
while i>0 do begin
if max<c[i] then max:=c[i];
i:=i-lowbit[i];
end;
findmax:=max;
end;

procedure fill(i,x:longint);
begin
while i<=maxm do begin
if c[i]<x then c[i]:=x;
i:=i+lowbit[i];
end;
end;

begin
assign(input,'insert.in');reset(input);
assign(output,'insert.out');rewrite(output);
for i:=1 to maxm do lowbit[i]:=i and (i xor (i-1));
read(n);
for i:=1 to n do read(a[i]);
sum:=0;
for i:=1 to n do sum:=sum+a[i];
fillchar(c,sizeof(c),0);
max:=0;
for i:=1 to n do begin
tmp:=findmax(a[i]);
tmp:=tmp+a[i];
if max<tmp then max:=tmp;
fill(a[i],tmp);
end;
writeln(sum-max);
close(output);close(input);
end.

热心网友 时间:2024-10-22 13:28

不会pascal,你自己调试吧。
readln(n);
for i:=1 to n do
begin
    read(a[i]);
end;
for i:=2 to n do
begin
    j = i - 1;
    s = a[i];
    while j > 0 and s < a[j] do
    begin
        a[j+1] = a[j]; 
    end
    a[j+1] = s;  
end
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如果银行拒贷有哪些办法 小天鹅滚筒洗衣机水位多少合适 阴阳师百闻牌攻略大全 百闻牌式神卡组阵容大全 阴阳师百闻牌三大妖狐阵容推荐 妖狐流派怎么搭配?-新手攻略-安族网... 阴阳师百闻牌妖狐快攻阵容 怎么搭配攻略推荐 阴阳师百闻牌妖狐技能攻略 妖狐属性及卡组搭配推荐-新手攻略-安族网... 阴阳师百闻牌妖狐最强卡组 阵容怎么搭配攻略 阴阳师百闻牌妖狐卡组推荐 怎么搭配攻略分享 带鹏字的公司名字大全 鹏字开头公司起名 叶罗丽娃娃玩具店在哪 中小学生编程比赛中得奖了,中考高考可以加分吗 如何检查精液中是否含有精子 在射精前阴茎流出的液体中会有精子吗? 正常一次精液中应该有多少个精子 每次射精都会有精子吗? 精液中是不是一定含有精子 精液干后其中还有精子吗 怎样辨别精液中是否有精子 **中一定含有精子吗? 每天都一次同房精液中还会有精子吗 射之前的精液里有精子么 精液是否有精子?少了会怎么样? 请问我老公射的精子里面有精子吗 野草莓俗称叫什么 在空气中,能够传播的波都有哪些?要全哦。谢谢 想买一款空气波治疗仪给家人,有人了解吗? 声波武器指的是什么 德洛克智能锁使用说明 初音未来:歌姬计划 买X好还是FT好 PS3《初音未来:歌姬计划F》新曲都有什么? 南方虎水泥怎么样 华南地区哪个品牌的水泥质量好? 如何培养孩子自主学习动力 ...市值?节能风电资金流向个股行情同花顺?节能风电股2021年能涨到多钱... 为什么中概股都要回归A股 中概股加速回归是好事还是坏事 为什么很多中国概念股都要回归国内 在北京注册公司网上核名大概多长时间? 魔兽世界,工程学应该怎么练?还有工程配什么专业好? 魔兽世界工程学分支怎么学 魔兽世界工程学320-375怎么练? 要详细的 魔兽世界工程学,365~375怎么练 控制噪声的三个方面分别是:①___;②___; ③__ 魔兽世界工程学361之后怎么练 魔兽世界,工程300之后怎么练? WOW工程怎么练最快? 为什么足力健老人鞋能在小红书这么火? 控制噪声可以从三方面入手,下面关于控制噪声的措施,正确的是( ) 为什么足力健妈妈鞋这么火?足力健老人鞋怎么样? 在日常生活中,人们采取了许多减少噪声的措施。请举出三个实例。