洛谷 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.