zoukankan      html  css  js  c++  java
  • BZOJ 3293 分金币 && BZOJ 1045 糖果传递

       我一定要吐槽,看到糖果传递那道题神奇的数据范围,我内心都奔溃了,后来因为这个可耻地去看了一下别人的题解,最后,别人开了100万A掉了,说好的n <= 987654321呢!看来数据范围不能全信啊! 这道题不难,马上就想起了那个没有环的贪心,再沿着那个的思路去思考,马上就找到了前缀和,差不多了,减法那一步也已经想到了,只是把减数搞错了,WA了,后来仔细一想,其实不管是减数还是被减数都是前缀和,这道题就这样了。其实可以不用列方程去建模,如果那个没有环的贪心很熟悉的话!加油,知识的积累。

    然而令我无语的是,标题的那两道题几乎一模一样,连样例都一样!我就呵呵啊

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<algorithm>
     4 #define rep(i,j,k) for(int i = j; i <= k; i++)
     5 #define ll long long
     6 using namespace std;
     7 
     8 int a[1000001], pre[1000001];
     9 
    10 int abs(int a)
    11 {
    12     if( a < 0 )return -a;
    13     else return a;
    14 } 
    15 int read()
    16 {
    17     int s = 0, t = 1; char c = getchar();
    18     while( !isdigit(c) ){
    19         if( c == '-' ) t = -1; c = getchar();
    20     }
    21     while( isdigit(c) ){
    22         s = s * 10 + c - '0'; c = getchar();
    23     }
    24     return s * t;
    25 }
    26 
    27 int main()
    28 {
    29     int n = read(); ll sum = 0;
    30     rep(i,1,n){
    31         a[i] = read(); sum += a[i];
    32     }
    33     sum /= n;
    34     rep(i,1,n){
    35         a[i] -= sum, pre[i] = pre[i-1] + a[i];
    36     }
    37     sort(pre+1,pre+n+1); ll mid = pre[(1+n)>>1];
    38     ll ans = 0;
    39     rep(i,1,n){
    40         ans += abs(pre[i]-mid);
    41     }
    42     cout<<ans<<endl;
    43     return 0;
    44 }
  • 相关阅读:
    J2EE开发环境
    Java核心api
    SCJP (SUN认证Java程序员)
    蓝领”变“金领”
    阿飞正传
    高效项目的七个习惯转载
    写程序的一些感想和教训(转载)
    学习的过程也是迭代的过程
    管理的艺术
    怎样成为优秀的软件模型设计者?[精华]
  • 原文地址:https://www.cnblogs.com/83131yyl/p/5094249.html
Copyright © 2011-2022 走看看