ICPC 2022西安回顾

博主参加了ICPC热身赛和正式比赛,经历了紧张的时间管理和策略调整。在比赛中遇到难题,如子串处理、集合划分等,通过团队合作和思考最终解决部分问题。尽管过程中出现错误和延误,但最后一刻提交的解决方案意外通过,使他们获得了铜牌。博主反思自己的不足,认为需要更多练习,并表达了对未来的期待。
摘要由CSDN通过智能技术生成

ICPC首战铜尾,也算是尽力了

热身赛很仓促,十一点半才考完数学竞赛,本想卡点提前交卷,没卡好,最后半小时不让交了,没交成,考完出来吃了点东西和学姐坐地铁去学院路了,一点多一点就到了,调好设备就趴着睡了一会儿

热身赛A题 A × B A\times B A×BProblem,B题题意是,将 1 ∼ n 1\sim n 1n划分为 k k k个集合 S 1 , ⋯   , S k S_1,\cdots,S_k S1,,Sk,每个数属于且仅属于一个集合,并且若 v ∈ S v\in S vS,则 v − 1 ∉ S , v + 1 ∉ S v-1\notin S,v+1\notin S v1/S,v+1/S,定义 S i S_i Si p i = min ⁡ S i p_i=\min S_i pi=minSi,求 max ⁡ Σ i = 1 k a p i \max \Sigma_{i=1}^k a_{p_i} maxΣi=1kapi,都没转过来弯儿,而后从选中的数的角度来看,只有1,2必选,其他可选可不选,然后就显然了,3~n排个序取前k-2大的再加上1,2(只选正数),2min写了过了,C看了半天觉得像是无向图连通分量什么的,但是都好困,累了,不想动脑子了就润了

第二天早上起床不算迟,收拾好东西发现才八点五十,然后打了一会儿三国杀,一看九点十七不好,赶紧出宿舍跑到校车站,在校车上又刷了一会儿知乎想看看热身赛的C怎么写,但是不仅没找到反而给自己搞晕了,很难受,下了车做了个核酸买了桶水就直接去教室了

11:32的时候我忽然发现模板忘了带了,学院路这边不熟赶紧交队友去打印了,队友很给力,11:48就回来了,真的很感动虽然一点都没用上

开场读A长死了看不下去,B一看以为是贪心,枚举不同的 k k k O ( n m ) \Omicron(nm) O(nm)计算一下答案,然后一共 O ( n m k ) , n , m , k ≤ 250 \Omicron(nmk),n,m,k\le 250 O(nmk),n,m,k250很合理,但是没想到怎么计算(为后面埋下了伏笔),然后看榜J过了一车,但死活都想不出来怎么写,后来学姐发现F是签到,随便写点判断就行,优化了一下判断方式,22min才过了第一道题F,然后忽然间我想明白了J最多选两个数,跟队友讲了一下,感觉跟热身赛一样都有点脑筋急转弯,2min写了直接就交了,28min过了J,这时排名169心想稳住就行。

结果事与愿违

G看过的挺多的又是什么子串,想到昨天刚问了学姐后缀自动机有什么用,学姐说可以处理字串相关问题,我就把题意告诉学姐,然后看榜写C,结果我上来把C都错题了,和zp同时想到(错误题意下的)正解,写完发现样例都没过才发现读错了,然后就有点紧张了,zp想了正解我觉得可能有问题,我推完了证明没问题他正好也写完了,66min过了C,但此时已经掉到240妥妥的铁了

然后我和zp一起看的E,先开始我又口胡了(不过影响不大),他也想不到什么做法,这时学姐说有思路了,给我们讲了讲,暴力枚举子串,由于总长 ≤ 1 e 5 \le 1e5 1e5,答案长度一定是 n \sqrt n n 级别的, l e n 2 len^2 len2枚举子串,最差 Σ k = 1 , n k 2 \Sigma_{k=1,\sqrt n} k^2 Σk=1,n k2大概也就 n 3 n^3 n3过350还行,学姐一直担心hash比较慢,我说先写,大不了自己造个数据看看再说,学姐写了十几分钟,我造了个数据发现没过,结果是因为输错了还调了半天,然后跑满本地也就0.7s,交了也1A了,至此119min过了G,无错误提交,但是排名236

大为震惊,赛前vp都是4题或者4.5题铜

学姐写G的时候zp想到了E的正解,我和zp确认了正确性,但是细节还没想好怎么处理,想了很久具体的怎么处理,然后就让zp写,写的时间也挺长的,写完我也检查不下去,就写了个对拍, l , r l,r l,r很大的对拍都过了就交了没想到直接WA了,我上机准备改,但根本不知道怎么改,捣鼓了一会儿没啥进展,zp说dfs返回值少乘了个3,我说不可能因为这,那么多对拍都过了,改了对拍还是对的,交了竟然过了…此时198min过了E,排名200,必须得再过一道

这看起来至少5.5才有铜

zp写E的时候和学姐已经在看L了,心想过了一百队了,我们3个人2h不可能过不了这一道吧()仔细看我觉得很不像DP,不过学姐一直在推式子,想想以前很多场都是学姐独自做出来树型DP,我还是比较信任的,推出来一大坨式子,给我讲了一半发现挂了,然后三人沉默,中途换了很多个角度都没什么进展,感觉不能再卡了,就和学姐开始看B。

zp口胡了一个L的贪心,我们觉得不对,但又没什么办法就让他写了,写了一段时间造了一些数据,提交WA很正常()根本检查不出来,此时就剩40min了,心想,不急不急(然而我连榜都没敢看,实际封榜后应该是247名),只要想到正解10min就能打完()我期间提出多个B的贪心策略(属于是被开场的自己的思路误导了),但是都发现问题了,我最看好的一个思路竟然是 O ( n k ) \Omicron(nk) O(nk)这太不符合题目数据范围了啊啊啊,然而确实学姐也找到了反例

我就让zp放飞自我随意交L,他改了改变T后我以为单纯因为1e6个数输入T了,赶紧加快读,后来发现还是WA,气急败坏乱交了好几发反正都没过,此时内心无比痛苦


然后发生了惊天逆转(大雾)

还剩9min的时候,我把zp赶下去,说随便交个B吧,看我最后关头能打多少代码,然后就从#include开始一个一个打,打得飞快但是手误巨多,想用一个每次排序 O ( n m k log ⁡ n ) \Omicron(nmk\log n) O(nmklogn)的做法,但我打了一半提示还剩不到五分钟觉得打不完交不了,就写了那个 O ( k ( n + m ) ) \Omicron(k(n+m)) O(k(n+m))的贪心,学姐都证明错了,过了样例就提交,竟然还保留了测试样例的习惯(雾),等待评测,我说,必WA,zp说,说不定会出现奇迹呢,我说,不仅复杂度太低,而且学姐都证明这是错了,真这样也不可能封榜前就过四十多队啊,然后出现了四个红色的小字“答案正确”直接在教室咆哮了起来,为什么能过,这不是证明错误了吗?为什么啊?一时不知是喜是悲

看提示还剩不到一分钟,参照封榜前的排名应该是167名,不知道能不能掉出210

饭也没心情吃,在新北食堂负一看到一堆小情侣,不过对我也没啥影响,就等着看滚榜了,然后没想到滚榜是直接滚到210,看着飞快地动,第一个数字从3,到4,再到5,然后是6,罚时从一千出头到九百多再到八百多再到七百多,停到了786,想想我们752也算是有牌子了,赢!

两个多星期的忙碌告一段落了也算,然后见了几个大一的同学就打车回去了(学院竟然给报销真不错)

现在回想一下单纯就是菜了,失误并没有什么,硬说的话就是我C都错题,可能浪费了有10min,这样总计耽误的罚时也就40,也就前进个几名可以刚好超过家门口大学(),中间卡题也是真的没有办法,真的就是练的太少了,八月暑训后cf一共打了6场,队友打的更少,赛前一共就vp了四场,也还行,校内13名都捡漏有名额,铜尾也算铜吧

这场6题有9个银,18个铁就离谱,真是手速场了,题目咱这水平也不敢妄做评价(赛后才知道是南外出题,又是被oi爷爆杀的一次)

希望以后会更好吧
提交结果记录
波折的排名变化

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值