zoukankan      html  css  js  c++  java
  • HAOI2018游记

    前言

    很懒。
    太懒了。
    不仅懒得写题。。连游记都懒得写。。
    花点时间填一下坑吧。。不过话说我去年的NOI/APIO/CTSC游记也没写。。


    省选前

    板子好像一早就打完了,没什么可干的。
    也不愿意开新题,学新东西更是不可能的了。就每天打打GTA和CR才维持的了生活这样子。
    还是有点慌的,HAOI会出什么样的锅?被退役了怎么办?
    平时我的考试策略已经非常保守了,决定这次采用更保守的。
    除了一眼秒掉又好写的题,其他题只写暴力,不管正解。
    省选这个东西嘛。。进队才是最重要的。像去年一样,在HA随便打打暴力就进队了,今年就干脆把暴力分拿稳,队长什么的,不去考虑了。万一写了正解又是和暴力分一样怎么办?


    考试日,上午

    去年的NOI教会我什么叫“心态第一”,决定这次按照自己的方法调整心态,只要心态不爆炸,最后1min翻盘都是可能的。
    早上8:30开考,窝故意迟到了两分钟,然后一脸淡定地进场。
    家长和教练等的很着急,教练不停地给我打电话我也没听见这样子。。估计都快急疯了吧qwq。
    算起来省选时间很紧,只有3.5h,根本没时间考虑什么正解啊喂。。。搞得像NOIp一样,题又这么难,怎么可能写正解啊?
    先看题,算暴力分。

    T1

    嗯?背包?NTT?
    显然不是啊。。。
    指数级枚举好像有40分,先看看。
    感觉有点像数论,和gcd有关的东西吧?
    是不是把裴蜀定理拓展一下啊?取所有数的gcd?(瞎猜结论)
    (大力证明中。。。)
    算了。。对于两个数来说是对的,那应该没问题吧?
    40pts到手

    T2

    这个题和CF某个题很像啊?是不是随便构一个生成树出来然后选择一条路径反转啊?
    假的啊显然不是。(脑抽ing)
    还是打暴力吧qaq。
    考虑70分,对每一个点列一个xor方程,直接用bitset解方程组就可以做辣~
    咦好像要询问多次?每个点删掉之后询问一遍?
    套个分治叭,感觉过不了,不过60分还是没问题的叭qwq。(脑抽ing)
    60pts到手

    T3

    这串串题怎么一脸不可做的样子啊?
    先套个SAM,然后?然后?然后咋办啊qaq?
    算了还是30分暴力吧。。平方求LCP也是很好写的,就不用写SA了。
    不过这数据范围这么鬼畜。。是不是低复杂度暴力能水不少分啊?
    如果有时间就写写SA吧,不过T2的分治码量这么大应该是没时间了。。
    30pts到手
    这样算下来有40+60+30=130pts,感觉还是凑合的,队长是没戏了,进队应该绰绰有余吧?
    开始写。

    T1

    写完了40分暴力,过了大样例,结论应该没问题。
    想想后面的分数?能不能DP?
    选取子集的问题怎么DP啊?肯定有高妙的做法。(脑抽ing)
    还剩2h

    T2

    2h的话应该足够写完调完线段树分治+线性基了吧?
    要不然这个题怎么写。。我这个思路除了这一档根本没什么分啊?
    硬刚吧。。。
    (30min后)
    好像真的和CF那个题是一样的。。确实反转路径就可以了啊?
    我刚刚在想什么啊。。。怎么肥四啊。。。
    那这个题不是BFS就没了?线性的?
    噢还有多次询问啊,那继续套分治+并查集,果然还是有log的。
    这个并查集维护的东西有点多啊。。现在只有1.5h了。。就算1h写完也不一定调出来啊?
    这样算起来70pts的平方暴力还是很好写的,n遍BFS就可以了。
    过了大样例,70pts到手。

    T3

    大概还剩20min,不写SA了吧,这做法细节好多的啊?
    很快写完了平方暴力。拿到30pts。
    然后延长30min。。。
    要是早知道延长30min我就写T2正解了啊喂!
    还剩40min,搜刮一下其他的分数。

    T1

    噢好像确实可以DP。。。我刚刚怎么回事啊?
    不过DP的话要把当前的gcd压进状态里面,复杂度O(np),有60分了。
    可以把p的因子都取出来,不过写map要多一个log,还有点复杂,时间不够了算了吧。
    最后还有个p=998244353白送的10分。
    这样T1就有70pts了,拍了一下没问题。

    T2

    就剩5min了。。慌慌张张去拍T2。
    先写了个指数暴力,又写了个数据生成器。
    生成器写起来有点麻烦。。因为不能有重边自环什么的。。不过这个对我的程序没影响吧?
    这时候考试刚刚结束。。赶快拍!
    WA。
    ???我大样例都过了啊?
    再拍!
    TLE,死循环了。
    ??????咋回事啊????
    看了一眼数据,好像是有重边自环的点我挂了。不过我的程序不是能处理重边自环吗?
    算了。。70变0。。。出考场了。。


    考试日,中午

    这样算下来只有70+0+30=100pts,还是挺危险的吧?
    下午打稳暴力就好了。
    imone说他前两题都会做,T3写了SA的低复杂度暴力,不知道能骗多少分。
    “至少有60吧?”我奶他一口。
    “那你上午就有260了,tql!”我又奶他一口。
    吃饭的时候心态爆炸。。脑子飞速运转,考虑T2到底怎么挂的。
    后来终于考虑明白了。。我的程序在处理重边自环的时候确实会出错。。
    而且根据我上午的输出来看,错的符合我的预期,那应该是没问题了。
    即使是这样,imone还是吊打我90分啊?
    Mike安慰我,让我下午翻回来,虽然我知道不可能,但还是答应了。
    听有人说T1是什么莫比乌斯函数。。好像有点道理啊?为啥我想起来因数的时候就没往这方面想啊?


    考试日,下午

    和去年一样,到场还没开考,上午的东西没删,先拍上午T2。
    (我去年也是到考场之后先拍上午T2 qwq)
    没问题了,放心了。
    开考,看暴力。

    T1

    这个题意。。这个范围。。。
    除了平方DP还有什么做法啊?
    而且似乎除了平方DP,也没什么做法能拿分了啊?
    三次方怎么写啊?这数据范围是搞笑的吧?
    除了100分就是20分,而且这20分的暴力还这么难写,当然是写100分。
    虽然我很不擅长数数,但是就是要硬刚。
    硬刚之前看一下T2叭qwq。

    T2

    yql给我讲过一个类似的题,这种题都和w[k]没关系的,肯定是先对于每个k算出来之后再乘w[k]。
    所以我先枚举k,然后怎么组合一下?
    怎么组合啊,好难难啊QAQ?
    这个模数有点奇怪啊?是不是NTT模数啊?
    果然是。。这要么是烟雾弹,要么真的是多项式。
    生成函数?假的吧?
    脑子好乱,不会,告辞。
    基本确定了策略,先去猛刚T1,然后来T2随便拿一点暴力分。
    顿时慌了。。这T1要是刚不出来,基本上下午就爆零了。
    不过数数也没几个人擅长吧?估计大家都是一丁点分数。

    T1

    推了好久式子,没任何进展。
    本来是16:30结束,我记成了16:00结束,慌的一批。
    不敢乱猜式子,很可能猜过了样例就FST。
    只希望做完这个题之后还能给我留0.5h写T2暴力。
    搞了半天,搞出来一个式子,过不了小样例。
    手算了一波,发现真的过不了,就开始对着样例调系数。
    瞎换了一波系数就过了大样例。。。
    顿时感觉栋栋挺真的,他当时给我讲《51nod 排列合并机》的时候,就说是自己瞎换了一波系数就过了,原来这种操作真的存在。
    数数题过了大样例拿头FST啊,肯定AC了啊。
    一看表发现离比赛开始才过了50min,十分舒爽,本来这个题预计2h做完的。
    就好像打CF Simulator的时候,突然过了某个题一样23333。

    T2

    继续,首先枚举k,然后呢?
    恰好出现k种颜色,是不是可以广义容斥啊?
    (瞎写了一个容斥式子)
    那是不是套一个NTT就没有了啊?
    板板讲过的!广义容斥套NTT!讲过好多遍!
    可是我一遍都没听懂啊QAQ?
    后悔没好好听课。。。
    (苦涩.jpg)
    然后开始慢慢推容斥变NTT的式子。
    推了半天推出来一个,这玩意儿对不对啊?看起来挺靠谱的。
    这时候还剩1h。。如果这东西写上去写挂了,肯定是调不出来了。。
    首先我容斥式子不一定对。。其次我NTT式子不一定对。。再其次我NTT还可能写错。。。
    决定先写平方容斥,先不管NTT的部分。
    发现直接平方容斥有50分,还是挺良心的。
    写完之后果然过不了小样例,继续手算,然后对着样例调系数。
    调完系数就过了大样例,爽啊。
    这时候只有15min了,把这个代码备份之后,开始疯狂地码NTT。
    NTT部分感觉不是很难写,也就是把式子写在代码里而已,但是边界问题还是值得考虑的,虽然实际上根本不会出现问题。。。
    然后延长了30min,爽快。
    写完之后过不了样例,发现是NTT写挂了,NTT改对之后就OK了。
    这时候已经16:45了,幸好延长了半小时,AK辣~
    然后开始担心边界问题,诸如n=0,m=0,s=0之类的,试了好多,又考虑好多,感觉没啥问题。
    又造了点极限数据,也能跑得过。
    然后下午就结束了。


    考试日,结束之后

    imone果然不会下午T2,意料之中。
    Cydiater打野刚考完的时候知道我AK了还D了我一波,没想到他也AK了,强啊。
    下午几乎没人A题,基本上得分都是20/30/100,看来数数题还是没什么人会啊。。。
    然后就是评测,又是各种锅什么的。。我写在知乎里了。
    戳这里https://www.zhihu.com/question/271131295


    结尾

    看了榜,觉得这次HAOI高手还是挺多的。。不再是菜鸡互啄了。。完全暴力也进不了省队了。。
    Primy退役了。。很难过。。却也不好说什么。。他大概是不会买D吧。。
    很多人都退役了。。。毕竟省队只有这么点人。。皆大欢喜是不可能的吧。。

  • 相关阅读:
    面向对象的继承关系体现在数据结构上时,如何表示
    codeforces 584C Marina and Vasya
    codeforces 602A Two Bases
    LA 4329 PingPong
    codeforces 584B Kolya and Tanya
    codeforces 584A Olesya and Rodion
    codeforces 583B Robot's Task
    codeforces 583A Asphalting Roads
    codeforces 581C Developing Skills
    codeforces 581A Vasya the Hipster
  • 原文地址:https://www.cnblogs.com/mlystdcall/p/8983745.html
Copyright © 2011-2022 走看看