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吧。。
    很多人都退役了。。。毕竟省队只有这么点人。。皆大欢喜是不可能的吧。。

  • 相关阅读:
    undefined reference to `sqrt' 问题
    linux上开发minigui的配置过程
    linxu select 返回值
    Unix/Linux C静态库的使用
    ubuntu 默认pdf阅读器乱码
    文件锁使用原理及其方法
    fileno函数与ftruncate函数
    Linux下select函数的使用
    unix linux 文件锁
    iOS 基础笔试题
  • 原文地址:https://www.cnblogs.com/mlystdcall/p/8983745.html
Copyright © 2011-2022 走看看