• 5.21模拟赛总结


    5.21模拟赛总结

    赛时历程

    AM7:00来到一机房开始比赛,小困。

    通读题面,感觉T1最可做,想T1,大困,已经快八点,遂厕所洗脸。

    想到一个(n^2logn)的做法,考虑把gcd相同的区间都保存在一个vector里然后一起考虑。

    一开始很天真,以为直接将贡献(2^{len-1})分给vector的每个区间,树状数组区间加就行,九点搞完发现假了。

    然后稍微想了想要解决区间冲突的问题,所以考虑划分,不知道怎么解决冲突,总不能暴力,那就破坏了我好不容易处理的gcd区间。

    划分第一波,又假了。

    此时已经十点,先去搞T3的20分,全排列还是好搞的。

    十点四十再次回到T1,想到可以二分查找到nxt,pre,找到每个点左右第一个不相交的左右点,然后把区间左和区间右的方案给乘法原理一波,区间左和区间右的方案可以用递推来搞。十一点二十终于实现了,过了小样例,但是发现大样例除了前几个位置剩下的都不对。

    无奈,调不出来了。

    赛后发现

    1 T3看错题,它并没有直接给出拓扑关系,需要dfs,而我直接把输入的u当作v的父亲。。遂挂成5分。。

    2 T1,T2一分没有。

    3 又去搞T1,发现如果只是按照双关键字排序,那么只有考虑nxt的时候可以使得找到一个nxt之后后边的区间都严格不相交于枚举到的区间,而pre中以l作为第一关键字,r可能参差不齐,所以pre就求错了,方案也会跟着求错。需要两遍sort,更改关键字(交换l,r),然后进行两次针对每个区间的二分查找,然后把不相交的区间前的方案和区间后的方案累计到这个区间的id上,最后再统计才行。

    技术总结

    好像赛后发现里就写的是技术总结,而现在一道正解都没有搞出来,所以能够总结的关于题目做法的东西也就是上边的。

    那这里就写写”反思“吧。

    1这次比赛的前段时间不够清醒,生物钟还没调整过来,经过几天的出汗运动,感到精力比先前确实好了,但是早上早起还是容易困,考虑提早入睡来调整。

    2 这次的T1失分比较遗憾,T3失分比较sb,因为T1的(n^2logn) 是50分的,已经不算低了,但是因为写假做法浪费了时间(实际上整场比赛写了三个假做法,只是最后一个非常接近正确做法),所以最后没有时间调,感觉这样自己完成一个中档部分分还是有些作用的,这个部分分代码比std正解都长,希望我的码力和思考能力能多靠这样的实践来得到提升;T3这个读错题也是,而且T3也有一个比较显然的状压可以拿到40分,前边如果节省了时间,相信这个还是可做的。

    3 T2并没有来得及做任何部分分,感到无处下手,因为定义比较多,对我来说也比较新颖。

    4 打的不好的主要原因还是时间少了,前边发懵和写假做法浪费了太多时间,其实应该多想想再写。

    5 这次基本没写注释完成了代码(虽然也没得什么分数),T1也演草了不短的时间,我想如果这次我写了注释也只能是把假做法全写上去,虽然没什么区别,但是确实更浪费时间了,有些思路可以在纸上映射,还有一点是,绞尽脑汁的思考以及自己处理复杂的细节,我想更利于对题目印象的深刻理解,这点继续下去。

  • 相关阅读:
    centos7下编译安装redis5.05
    rest_framework:版本控制
    rest_framework:响应器(渲染器)
    rest_framework:解析器
    rest_framework:url控制
    针对用户做限制(频率)
    更改Android设备System目录的文件的写入权限
    monkey命令解析详解
    Pycharm2019最新激活注册码(pycharm激活教程)
    Windows下Linux虚拟机的配置以及Win10 linux子系统开启
  • 原文地址:https://www.cnblogs.com/mikuo/p/14797129.html
Copyright © 2020-2023  润新知