zoukankan      html  css  js  c++  java
  • 2019ccpc哈尔滨打铜记

    小学生日记:

    2019.10.13,哈尔滨,打了个铜

    开头

    先说结论,这次失败,我的锅70%,sdl的锅5%,ykh25%

    Day0

    周五,
    我们队出现了奇怪的厄运上身
    首先是我中途在飞机上数据线突然出现在前面座位上,下了飞机发现数据线丢了(
    然后ykh的羽绒服被刮掉了一堆毛
    后来sdl比赛的时候也一直激动地拉肚子上厕所
    本来我是十分反对今天去吃东北菜的,但是还是架不住饿的诱惑,吃了一盆锅包肉

    Day1

    哈尔滨真的是冷的一笔,我们出发去东北林业大学
    学校很大很豪华,风景很美
    和女队一起报道完拍了照,就去学校食堂挂机等热身赛了
    我队的特色一直是ykh从a读到z,sdl从z读到a,我有代码敲代码,无代码读最短的(毕竟六级没过)
    热身赛开始,我先上机敲完了头文件,ykh此时看懂了A题并告诉了我
    然后一通操作过掉A题,此时rank40+
    这个时候ykh和sdl都在看B,并且好像有哪一句话没有看懂,让我读一遍看看题意
    我看了一遍居然直接看懂了并且脑子过了样例,跟队友讲了一遍就上机过了
    此时rank大概铜首,问了下队友c题意,我直接说出了算法并且上机
    这题细节有点多,我敲代码的时候出了不少问题,队友正在口胡d题
    过了样例之后直接交就过了,此时大概rank仍然是40+
    然后讨论了一会d题发现不可做,就开始了愉快的吹b时间
    此时sdl和我争论c题的出处,我就让他上机测试java以及各种c++奇怪的东西之后自己写一下c体验一下
    当然后面没写出来
    另外ykh对我说:明天f题肯定是签到,你信不信

    打完热身赛,我们站在东北林大门口等车的时候,我说“不知道明天这个时候我们是怎样的一种心情”,大家沉默
    后来我们得出了一致结论:无论如何,铜的话太丢人了

    Day2

    依旧的寒冷,队友早上似乎十分紧张,一直拉肚子
    我们刚开始叫的车还在来的路上被人蹭了,司机估计在和人干架,就叫我们取消了订单。。
    另外正式赛赛前两分钟,sdl还在厕所里,还好在倒计时前及时回来了。。
    正赛开始了,我依然是上机敲头文件,敲完之后队友还在看题
    我瞟了一眼,ykh居然在看真的在看F题。。。我就去看了最短的I题,发现题意比较简单就跟ykh互相交换了一下题意,
    F题直接就出了算法,我就开始敲F了
    敲了一半,队友告诉我I题特变简单,随便特判一下,我就先暂停F过了I题,
    然后继续F,因为很久没写状压了,敲完没过样例,叫sdl过来帮我看代码,改了一下初值,就过了
    然后看了一下榜,有点懵:I和K绿了一大片,F题没绿多少,我们反向签到了
    这个时候让队友赶紧去做K,ykh推了半张纸的公式,被sdl看了一下样例猜了一下公式秒掉了
    继续跟榜开F题,虽然还是签到状态,但此时已经是大家一起集火这一题了
    我和ykh各出了一些假算法和一些数据,sdl讲了一个我们没人听懂但是能过已知数据的做法
    果断(莽)让sdl上机写自己的思路,ykh帮忙解决了许多代码问题(sdl让此处对ykh提出特别表扬),然后交上去1A
    此时1h50m,我队4题均1A,但是由于过于求稳,时间比较慢,rank上是银尾
    开了E题,我先把这个问题分解了子问题,然后和队友逐个讨论解决子问题的可行性并证明复杂度
    发现复杂度大概O(n+k+nlogn),n,k<=1e6,通过昨天热身赛测的评测机感觉能(卡)过,就开始了不归路。。
    在ykh的监督下,大概30m敲完代码,过了样例,交上去,T,1300ms/1000ms
    这个时候看榜发现没有其他题可以做,果断打印代码和队友一起看
    中间上厕所,发现吉老师居然在我旁边(后来每次想到这个画面都会热血澎湃)
    我告诉队友,现在有几点可能性:1.复杂度分析有问题 2.代码写的不是这个复杂度
    冷静分析后(后来发现并不冷静),我们认为复杂度分析没有问题,就开始一起看我的代码
    我们不知道数据有没有跑完,所以先进行了一些卡常
    中间经过了漫长的过程。。优化掉了3个O(n),把快读改成了出题人给的快读,交上去后,T,2200ms/1000ms
    众人傻眼,这时候ykh认为我的dfs炸了,我让他讲一下为什么,他没有讲明白(我没有听明白),还反向说服了他
    封榜后我们感觉nlogn也许根本就过不去?然后我们就构思O(n)的方法:最后求的是出现最多次数的数的出现次数与sum/2的关系
    ykh说:求众数
    我说:对啊,求众数有一种O(n)的方法,(就是bzoj2456,我和ykh之前讨论过这个问题),扩展一下搞在这个题上不就完事了
    后来的事实证明,题解的O(n)算法这个时候其实我们已经出了
    因为我还没想好细节,而sdl此时又出了一个我们没听懂的实现,我就让他上机了
    sdl在我的代码上改了改,debug之后过了样例,交上去,T,2200ms/1000ms
    众人再次傻眼,此时比赛仅剩1m,铜首
    赛后大家分析了一下这两份代码,是dfs炸了,但是又没人能解释为什么,因为表面上它没有任何问题:一棵树n个节点,叶子节点上有序列,序列长度的和为k,dfs它的复杂度是 O(n+k)的

    Day3

    今天晚上,我们拿着比赛的代码开会分析,
    分析到了这个dfs后,我让ykh再讲一下当时反驳我dfs的时候,他构造出了一个图:这根本不是一棵树
    wdnmd(恍然大悟)
    这其实是一个DAG,dfs的时候用dag的方式处理即可

    总结

    分锅过程如下:
    我作为队长,前四题策略出现问题导致罚时较高,作为主代码手没有理性分析E的代码复杂度,队友提出质疑没有特别在意,占锅70%
    ykh其实知道这题我们最后差的关键所在,但是队友交流上出现了少许问题,当时没有讲清楚dfs出问题的关键原因,占锅25%
    sdl其实不该有锅,但是在我建出树的模型的时候其实该跟他说的,但是他又在厕所。。然后最后改我代码的时候赛后发现了一些bug,勉强占锅5%

    可以看出,我队交流上出现了大问题,如果我们三个人是一个人,这题在2h30m的时候就该过了(赛后得知nlogn也可以过),所以并不是硬实力问题(?)
    而是队伍训练太少,所以经过合计,我队将加大训练强度

    dbq,这次让关注我们的人失望了
    勉哉耘其业,以待岁晚收。
    下次会继续加油的

  • 相关阅读:
    电信生命周期说明
    find in linux 2 微信公众号
    GDB中应该知道的几个调试方法 2 微信公众号
    linux 下程序员专用搜索源码用来替代grep的软件ack(后来发现一个更快的: rg), 且有vim插件的 2 微信公众号
    linux下的 c 和 c++ 开发工具及linux内核开发工具 2 微信公众号
    linux下命令行发送邮件的软件:mutt 微信公众号
    腺样体肿大的综合治疗考虑 微信公众号
    打呼噜治疗方法 微信公众号
    vim 操作 2 微信公众号
    nginx之外的web 服务器caddy 微信公众号
  • 原文地址:https://www.cnblogs.com/wrjlinkkkkkk/p/11674822.html
Copyright © 2011-2022 走看看