做题记录整理贪心1 P1031 [NOIP2002 提高组] 均分纸牌(2022/9/9)

P1031 [NOIP2002 提高组] 均分纸牌

这题有一种状态压缩的思想
它考虑的是每次都直接从i+1个牌那里借牌过来,从而不需要去考虑多的往少的放这种问题
感觉和铺设道路这种题有异曲同工之妙
不过这个自己找一下规律也能看出来,铺设道路几乎无法从找规律这个角度找到贪心方法

启示:看到题先花个10分钟找找规律

#include <bits/stdc++.h>
#define for1(i,n,b) for(int i = n;i<=b;i++)  
using namespace std; 
int n,p,ji,a[100005]; 
int main()  
{ 
    cin>>n; 
    for1(i,0,n-1) cin>>a[i],p+=a[i]; 
	p/=n;  
    for1(i,0,n-1) a[i]-=p;  
    for1(i,0,n-1) 
	{
    	if(a[i]==0)continue;
		else a[i+1]+=a[i]; 
		ji++; 
	}  
    cout <<ji;  
    return 0;
}
posted @ 2022-09-09 20:19  yyx525jia  阅读(24)  评论(0)    收藏  举报