3 条题解

  • 0
    @ 2025-7-4 14:12:01
    #include<bits/stdc++.h>
    using namespace std;
    #define f(i,l,r) for(int i=l;i<=r;i++)
    #define F(i,r,l) for(int i=r;i>=l;i--)
    int r(){
    	int x=0,f=1;char ch=getchar();
    	while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}
    	while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    	return x*f;
    }
    int n,a[105],t[10005];
    int main(){
    	n=r();int s=0,ans=0;
    	f(i,1,n) a[i]=r(),s+=a[i];
    	s/=n;//首先要想到求平均数
    	f(i,1,n){
    		a[i]-=s;//相减得到需要的牌数
    	}
    	f(i,1,n){
    		if(a[i]){
    			ans++;a[i+1]+=a[i];
    		}//依次分到下一组,并将答案加 1
    	}
    	cout<<ans; 
    	return 0;
    }//贪心
    
    • 0
      @ 2024-4-20 8:44:34
      #include<bits/stdc++.h>
      using namespace std;
      int n,a[101],ans,sum;
      int main()
      {
      cin>>n;
      for(int i=1;i<=n;i++) cin>>a[i];
      for(int i=1;i<=n;i++)
      if(a[i]<sum||a[i]>sum)
      {
      a[i+1]=a[i]-sum+a[i+1];
      ans++;
      }
      cout<<ans<<endl;
      return 0;
      }
      
      • -1
        @ 2025-7-2 19:24:38
        #include<bits/stdc++.h>
        using namespace std;
        int main(){
        	int n,a[200],b[10005],s=0,k,x=0,y;
        	cin>>n;
        	for(int i=1;i<=n;i++){
        		cin>>a[i];
        		s+=a[i];
        	}
        	y=s/n;
        	for(int i=1;i<=n;i++){
        			b[i]=a[i]-y;
        	}
        	for(int i=1;i<n;i++){
        		if(b[i]!=0){
        			b[i+1]+=b[i];
        			x++;
        		}
        	}
        	cout<<x;
        	return 0;
        }
        
        • 1

        信息

        ID
        228
        时间
        1000ms
        内存
        256MiB
        难度
        3
        标签
        (无)
        递交数
        206
        已通过
        106
        上传者