首页 > 其他 > 详细

NOIP2002 提高组

时间:2016-02-04 18:34:31      阅读:245      评论:0      收藏:0      [点我收藏+]

[NOIP2002] 提高组

T1.均分纸牌

算法贪心(模拟)

分析:

1.简化 2.过滤 3.辩证法  这个课件里说的很详细了

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

技术分享
 1 var
 2   n,i,j,ave,step:longint;
 3   a:array[1..100] of longint;
 4 begin
 5 assign(input,jfzp.in);
 6 reset(input);
 7 assign(output,jfzp.out);
 8 rewrite(output);
 9   ave:=0;
10   readln(n);
11   for i:=1 to n do
12    begin
13      read(a[i]);
14      inc(ave,a[i]);
15    end;
16   ave:=ave div n;
17   for i:=1 to n do a[i]:=a[i]-ave;
18   i:=1; j:=n;
19   while (a[i]=0) and (i<n) do inc(i);
20   while (a[j]=0) and (j>1) do dec(j);
21   step:=0;
22   while i<j do
23    begin
24      inc(a[i+1],a[i]);
25      a[i]:=0;
26      inc(step);
27      while (a[i]=0) and (i<j) do inc(i);
28    end;
29  writeln(step);
30 close(input);
31 close(output);
32 end.
我的程序

 

NOIP2002 提高组

原文:http://www.cnblogs.com/vacation/p/5182105.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!