codefores 609C

#include<bits/stdc++.h>
using namespace std;
int num[100005],c[100005];
int main()
{
    int n,i;
    while(cin >> n){

    long long sum=0;
    for(i=0;i<n;i++){
        cin >> num[i];
        c[i]=num[i];
        sum+=num[i];
    }
    sort(num,num+n);
    long long ave=sum/n;
    long long left=sum%n;
    fill(c,c+n,ave);
    for(i=n-1;i>=0&&left;i--){  //显示最后分解的数组、
        c[i]++;left--;
    }
    long long count=0;
    for(i=0;i<n;i++){
        if(c[i]>num[i])    count+=c[i]-num[i];  //统计最少移动的次数
    }
    cout << count << endl;
}
}
时间: 2024-10-23 00:31:27

codefores 609C的相关文章

codefores 609B

#include<bits/stdc++.h> using namespace std; int num[11]; int main() { memset(num,0,sizeof(num)); int n,m,x; cin >> n >> m; for(int i=0;i<n;i++) { cin >> x; num[x]++; //统计每一个数字出现的次数 } long long sum=0; for(int j,i=1;i<10;i++)

609C Load Balancing

题意: ”平均数“的意思是:最大数和最小数之间的差值为0或1: 先求“平均”数组,再相减. 1 #include<iostream> 2 #include<cstdlib> 3 #include<cstdio> 4 #include<algorithm> 5 #include<math.h> 6 #include<memory.h> 7 #define clc(a,b) memset(a,b,sizeof(a)) 8 #define

CodeForces 609C Load Balancing

先算出目标状态,然后拿当前状态与目标状态对比,即可算出答案 #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace std; const int maxn=100000+10; int a[maxn]; int b[maxn]; int main() { int n; scanf("%d",&n); for(int

[斜率优化] codefores 660F. Bear and Bowling 4

F. Bear and Bowling 4 题意: 给一个序列val,任选连续的一段[l,r],其价值为∑rj=lval[j]?(j?l+1),求最大价值 . 简单的说就是可以去掉这个序列的某前缀和某后缀,然后对新得到的val求ans=∑val[i]?i ,最后求max(ans). 题解: 斜率优化,这个blog前面讲的不错. 花了两天才完全搞懂这个题. 怎么得出来的呢,我们一步一步来. 首先令sum[i]=∑ij=1val[j],令p[i]=∑ij=1val[j]?j. 然后我们就可以表示出任

Codefores 932D Tree

原题传送门 一道题意很复杂的题目,为了表达一句话的意思,用了四句话去描述,纯粹为了误导. 大致题意:一棵树,每个结点i会有一个权值weighti,初始时只有一个权值为0的根节点1.给定Q(Q≤4*105)个操作,操作分两类: 1.1 p q,表示新建结点cnt+1,权值为q,该结点与p结点连边. 2.2 p q,表示求最长的序列P,满足P1=p,对i>1,都有:Pi是Pi-1与根结点路径上离Pi-1最近的权值不小于weighti的点,且所有weightPi加起来(有点拗口,看不懂的可以看原题描述

Codefores 1025D Recovering BST

给定一个序列,问这个序列是否能够构成一个二叉搜索树,使得任一边连接的点的gcd大于1 区间dp #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef long long LL; const int maxn = 710; int A[maxn]; bool G[maxn][maxn]; bool dp[maxn][maxn][2]; int gcd(i

CodeFores Round53(div.2) D.Berland Fair

1 #include <iomanip> 2 #include <iostream> 3 #include <cstdio> 4 #include <cmath> 5 #include <cstring> 6 #include <algorithm> 7 #include <queue> 8 #include <stack> 9 #include <vector> 10 #include <m

国内有哪些好的刷题网站?

http://www.zhihu.com/question/25574458 Luau Lawrence,Data Mining 弱鸡 / [email protected] 温梦强.石一帆.知乎用户 等人赞同 - Welcome To PKU JudgeOnline 北京大学的Online Judge.POJ上面的题目有点老了,但好处是做的人多,经典算法题多,解题报告也多,适合上手.- ZOJ :: Home 浙江大学的Online Judge.ZOJ用的不多,但为数不多的几次体验好像都还可以

常用OJ名字+地址(自用)

常用OJ名字+地址 不定期更新,自己用,有补充的也可以给我说说哈. 中文 openjudge 地址:openjudge.cn 说明:北大提供的一个平台,学校可申请小组: 比较好的小组: 计算概论:ica.openjudge.cn noi小组:noi.openjudge.cn tyvj 地址:http://www.tyvj.cn/ 老OJ,现在基本属于清北学堂了 codevs 地址:http://codevs.cn/ 原来的wikioi,模仿usaco的天梯,有云评测 rqnoj 地址:http: