- P1031 均分纸牌
- 假设总和为TT,有MM张纸牌。设ave 为最终平均数,对于第i个人来说,如果C[i] < ave
- 我们考虑整体和隔离的思想。将前i个看做一个整体,
- 显然前i个内部的均分是不会改变其整体结构的,因而对于该体系来说,想要达到平均数结构,
- 就必须与下一个体系交换足够的纸牌,而交换数量就是|G[i]−i⋅ave|求和,其中G[i]是前缀和。
-
#include<bits/stdc++.h> using namespace std; #define maxn 12345 int n,a[maxn],s[maxn]; int mid,ans,sum; int main() { scanf("%d",&n); for(int i=1; i<=n; i++) { scanf("%d",&a[i]); s[i]=s[i-1]+a[i]; sum+=a[i]; } sum/=n; for(int i=1; i<=n; i++) if(abs(s[i]-i*sum)!=0)ans++; printf("%d\n",ans); return 0; }
P1031 均分纸牌-应该算贪心
最新推荐文章于 2021-05-25 20:08:35 发布