洛谷 P1031 均分纸牌

P1031 均分纸牌

这道题告诉我们,对于实在想不出算法的题,可以大胆按照直觉用贪心,而且在考试中永远不要试着去证明贪心算法,因为非常难证,会浪费大量时间。

(这就是你们都不去证的理由??)

这道题贪心算法就是,计算牌的平均数,然后除了最后一堆以外,每堆都通过把多余牌移到下一堆或从下一堆取牌来使其达到平均值,并且假设牌堆内牌数量可以为负。

var a:array[1..110] of integer;
i,x,n,ans:longint;
begin
    readln(n);
    for i:=1 to n do
    begin
      read(a[i]);
      x:=x+a[i];
    end;
    x:=x div n;
    for i:=1 to n-1 do
      if a[i]<>x
        then
        begin
          inc(ans);
          a[i+1]:=a[i+1]+a[i]-x;
        end;
    writeln(ans);
end.


原文地址:https://www.cnblogs.com/hehe54321/p/8470466.html