训练日记2019.9.7 冲刺之后

2019.9.7 星期六
昨天周五,没训练,休息一下哈哈哈。

这学期开学到现在半个月,感觉我的生活过得比上个学期好很多,每天能学到新知识,每天能用自己学到的知识去解决未知的问题,非常快乐。回想一下去年的一年生活,最可怕的大概就是大学的舒适区吧。以前总觉得人生已经有了一件可以证明我实力的东西,我可以暂时放下烦恼,心安理得地享受我现在所拥有的一切。

高三开始,虽然还在一群人里面坚持,进行着最后的抵抗,虽然成为了在熙熙攘攘玩游戏的一群人里面最后三个坚持听课的其中的一个。但是就在毕业的那一天,我放下了高中三年在那里得到的一切,包括陪伴我了三年的拼劲儿和信念。

以为到大学靠着我在高中养成的习惯就能顺风顺水,按部就班走向我未来的生活,自己可以在闲暇之余去干很多自己从前一直对自己说留在大学的事情。靠着高中残余的斗志,勉强度过了第一个学期,第二个学期就显得有些力不从心了,GPA也下滑了0.05个点,虽然不多,但是那时候的生活状态已经很不堪了,自己每一天都在逃避学习,所有的事情都在敷衍,艰难度日。直到有一天我突然发现,自己和上高中之前的自己已经没有什么不同了,每一天颓废,体重也接近了80,在自己的小圈子里靠着微弱的优势沾沾自喜,我吓出了一身冷汗。

“我再也不想回到那种生活里去了”

自己的心态出了问题,就连回去爸妈都看出来了内心深处那个失落的我。虽然表面上自己装出一副自己大学第一年过得很好的样子,但还是没逃过家人的目光。爸妈也在一遍遍问我:“到底出什么事情了?是不是失恋了?没事儿,有什么事情说出来爸妈会理解你的。爸妈对你的要求不高,你一个无名小卒能到郑州市前2的录取这是爸妈从来不敢想的,能顺利毕业就行了,GPA的事情别想太多,自己别累着就行了”

我知道他们从不会怪我不努力不优秀,但是真正不能接受自己的,是我。怎么才一年自己就从原来的那个事事都要争第一的我变成了现在这个模样?家里每个人都特别在乎我,关心我,我现在能过这样的生活全都是自己换的,想让家人一直对我好,可以不优秀,但绝对不能平庸,想明白了这些,自己放下了以前那些杂念,继续走下去,但这还需要时间。

一个暑假,ACM的训练在队长的带领下已经进行得颇有成效了,自己比起一个月前的自己好了很多,但是仍然觉得自己在很多事情上面很敷衍,没有尽心,但总算是找到了份事情干,爸妈也不再担心我了。不过还没从之前的阴影中走出来,这时候我还是寄希望于是队长能带我们打进去,自己做一个下手吧,混个铜牌就好。这种心态一直持续着,直到后来的北京之旅。原谅我这里看起来是像对我的从前恋恋不舍,但是这是我学习生涯的一个重要的转折点。

从进宿舍开始,自己已经能感到自己心态微妙的变化,自己三年中在这样一间宿舍度过的场景历历在目,有种感觉涌上心头,新的环境可以让我得到什么。第一天进课堂,郭神直接就把大纲讲完了三分之一,这很久没经历过的学习量一下子激发了自己内心深处那个冰封已久的灵魂,我虽然对别人都非常客气,但是内心非常高傲,能真正让我发自内心尊重的还是那些最厉害的。课上的同学的提问和老师的步伐逐渐唤起了我在知苑以前那些点点滴滴,我第一次真正明白了那些刀尖上行走的日子从未走远,相反,它将一直陪伴着我们,尤其是计算机这种理科学生。那几天我第一次有了早睡早起的执行力,当室友刚刚起床的时候我已经到邱德拔完成了锻炼,坐在图书馆开始写题了,第一次有了坐在自习室学习到深夜累得倒头就睡的经历。十几天一下子就过去了,我开始确信,自己很好,比任何一个时候都好,我们仍然还像高中那个我们,高傲着,目标星辰大海。

回去到初中,初中是我一辈子不愿提起的,以前在这里每一天的生活都让我感到触目惊心。如果这里没有我怀念的老师,我可能不会过来,但是是一些老师在那个环境给了我力所能及的帮助,让我渡过难关,所以还是决定回去看一下。我和发小朋友高中从那里出来,拼命学习,最后一举拿下了当届河南出国党申请的第二和第三,打肿了那些当初说我们坏话的人的脸,一部分原因就是初中这个令人毛骨悚然的环境,为了证明自己很好,比他们好,我们不约而同地选择了放弃申请UW,因为真的去了的话,我不就证明了自己折腾这么久,跟他们拿了个差不多的结果么,我不能接受。我们回到学校,老师对我们说别的学校是让我们学会短跑冲刺,而初中这么做是为了让我们在长跑中获胜。听到这句话,我和发小相视一笑,什么短跑冲刺?我们都知道,所谓的外面教给我们的短跑冲刺,不过是让我们学会了在一场又一场的短跑之后,不加休息,进行下一场吧。

加油,写了这么多,再写一道,争取进regional,我依然像以前那样心比天高,战!

好吧今天见识到了另外一个黑科技,我的区间加减的线段树一直卡,什么也出不来,去翻文献,结果意外找到了树状数组用差分法区间求和/区间更新,真的秀到我了。原来学好数学这么重要。这个方法之巧妙,必须是对这个数据结构及其了解的人才能将这些死板的数学变成具有生命力的代码。虽然这几个月已经见过了很多算发界的大风大浪,但还是着实被这个方法所折服。实际上就是构建两个树状数组,然后变成了橘子树???开个玩笑,树上的树,我的天,怎么可以有这么巧妙的方法,不允许啊不允许哈哈哈。直接看代码吧,数学过程太复杂了我直接照搬结论了,反正我又不学数学,哼! 那看代码吧。刚开始写完之后意外的发现几乎自己每个输出都正好避开了正确答案,后来想了下,这是个左开右闭区间,想到这点就直接修改,果然,过了,哈哈哈哈很开心额
题目是POJ 3468 (POJ 3468 A Simple Problem with Integers )

#include <iostream>
#include <string.h>
#include <stdio.h>
#include <vector>
#include <stack>
#include <queue>
#include <algorithm>
#include <math.h>
#include <cstdio>

using namespace std;
#define limit 200000 + 5
#define INF 0x3f3f3f3f
#define lowbit(i) i&(-i)//定义lowbit函数
#define EPS 1e-6
typedef long long ll;
void read(int &x){
    char ch = getchar();x = 0;
    for (; ch < '0' || ch > '9'; ch = getchar());
    for (; ch >='0' && ch <= '9'; ch = getchar()) x = x * 10 + ch - '0';
}//快读
ll c[limit], a[limit],sum[limit] ;//树状数组
int n ,m;
void insertA(int position, ll val){
    for(int i = position ; i <= n ; i += lowbit(i)){
        a[i] += val;
    }
}
void insertC(int position, ll val){//差分求和法
    for(int i = position ; i <= n ; i += lowbit(i)){
        c[i] += val;
    }
}
void add(int vs, int ve ,ll val){
    insertA(vs, val);
    insertA(ve + 1, -val);
    insertC(vs ,val * vs);
    insertC(ve + 1, -val * (ve + 1));
}
ll queryA(int e){
    ll ret = 0;
    for(int i = e ; i ; i -= lowbit(i)){
        ret += a[i];
    }
    return ret;
}
ll queryC(int e){
    ll ret = 0;
    for(int i = e ; i ; i -= lowbit(i)){
        ret += c[i];
    }
    return ret;
}
ll query(int i){
    return sum[i] + (i + 1) * queryA(i) - queryC(i);
}
int main(){
    while(scanf("%d%d" , &n, &m) == 2) {
        memset(a, 0 , sizeof(a));
        memset(c , 0 , sizeof(c));
        memset(sum , 0 , sizeof(sum));
        for (int i = 1; i <= n; ++i) {
            scanf("%lld", &sum[i]);
            sum[i] += sum[i - 1];

        }
        char cmd[10];
        int a1, b;
        while (m--) {
            scanf("%s%d%d", &cmd[0], &a1, &b);
            if (cmd[0] == 'C') {
                ll c;
                scanf("%lld",&c);
                add(a1, b , c);
            } else {
                printf("%lld\n",query(b) - query(a1 - 1));
            }
        }
    }
    return 0;
}

再见了各位

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值