您的位置:首页 > 其它

NOIP2002 提高组

2016-02-04 17:47 274 查看

[NOIP2002] 提高组

T1.均分纸牌

算法贪心(模拟)

【分析】:

1.简化 2.过滤 3.辩证法 详见课件的例7

还有一种类似的思路是:求出平均值后,i←1 to n-1扫描,若a[i]与平均值不等则step+1,再把差值累加到后一堆(移动纸牌 a[i+1]+a[i]-average)

var
n,i,j,ave,step:longint;
a:array[1..100] of longint;
begin
assign(input,'jfzp.in');
reset(input);
assign(output,'jfzp.out');
rewrite(output);
ave:=0;
readln(n);
for i:=1 to n do
begin
read(a[i]);
inc(ave,a[i]);
end;
ave:=ave div n;
for i:=1 to n do a[i]:=a[i]-ave;
i:=1; j:=n;
while (a[i]=0) and (i<n) do inc(i);
while (a[j]=0) and (j>1) do dec(j);
step:=0;
while i<j do
begin
inc(a[i+1],a[i]);
a[i]:=0;
inc(step);
while (a[i]=0) and (i<j) do inc(i);
end;
writeln(step);
close(input);
close(output);
end.


我的程序
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: