北大集训2020游记

Day-2 noip2020

时间久了有点忘了考试过程了。。。
上来倒序开题,T4稍微想了想会了 O ( ∑ w i ) O(\sum w_i) O(wi),然后冷静了一下觉得正解就是套个插值。然后一直想T3,中途看了下T1和T2。T2一眼 O ( n log ⁡ n ) O(n\log n) O(nlogn),再冷静一下发现利用异或的性质,加上exkmp就可以 O ( n log ⁡ 26 ) O(n\log 26) O(nlog26) 了,觉得AC稳了就没像djq一样继续想线性算法了。 T1一开始看错题了,以为10个点是包括起点和终点的,估了估感觉差不多恰好不会炸 long long
回去接着想T3,操作次数100W左右的 O ( n 2 m ) O(n^2m) O(n2m) 还是比较简单的,大概就是每次把一种颜色给弄出来。想了好久突然想到可以每次弄两种颜色,写了个程序测了一下大概只用60W步。噫我阿克了!
这个时候大概十点了,终于开始写得分代码了。
然后正序写题,仔细一看T1居然是中间节点不超过10个,瞬间气死了,咋T1就考高精度啊。冷静了一下发现无高精度也有80分,就先写了个unsigned long long的分数类晾在那里。
写完T2大概11点多了。T3的构造感觉很难写,但最后居然30min写完没怎么调就过完了样例,倒是自己gen数据测试花了点时间。
11点40几终于打开T4,先写了个暴力模拟验证猜想,发现确实是多项式。中途还花了好大力气把多项式次数卡满。开始写插值已经是12点10几了,结果拉格朗日插值调了一年,调到12点40几。测了下极限数据发现有个地方数组越界了,修好后本机好像要1.7s。姑且相信CCF少爷机的速度吧。
然后就滚去检查文操了。本来手够快的话还可以去把T4的 O ( n k 2 ) O(nk^2) O(nk2) 改成 O ( n k log ⁡ k ) O(nk\log k) O(nklogk),再把T1高精度写上去,可惜zx太菜了。

Day0 报道日

发现室友是nealchen。
试机题好像是去年的严格子集,花了几分钟把去年没写的交互题给写了写。
晚上我们几个人还有学长WuY和ztr去家园四楼吃火锅,我点了个冬阴功锅底,本来看图以为不辣的,结果吃起来跟标准辣锅底好像没啥区别。由于本人不太能吃辣,整顿饭就吃的非常自闭,啥东西都是辣味。然后就非常担心24h内的某个时刻肚子会爆炸,发生诸如半夜辣醒的惨剧。

Day1

好像前一天晚上肚子非常安详,不过半夜还是醒了一次,听教练说可能是北京空气过于干燥了。
开场把三个题看完并稍微想了想,T1题意就是个K进制线性基,好像以前做过类似的,但已经有点忘得差不多了。T2还比较simple,对于 a i a_i ai 序列也可以建出一个树结构,每个点的父亲就是它后面第一个是它祖先的点,然后随便爬下树就好了。T3虽然暂时不会,但感觉应该是经典的树上二分,搞搞就好了。手快即阿克
8:30开始动键盘,9点不到写完T1并获得48分的好成绩。眼调了一会开始对拍,发现少考虑了一种情况,大概就是插入一个元素的时候,我们可以将其乘上一个常数来篡改最高位。然后拼命拍拼命调,到10点的时候心态有点崩,觉得应该先搞下后两题。
然后花10min写了个T2,没有一发入魂,眼调不动又开始对拍,发现从T1拉过来倍增lca写挂了(过于戏剧性了),调完后把T1改了下重新交一发得分不变。回到T2,发现还要求个区间lca。写了个ST表维护区间dfn序最值后发现前面的倍增lca T了,马上改成链剖lca。于是这个题我一共写了两个倍增lca,一个链剖lca,两个ST表。
10:30的时候开始想T3,觉得T1调出来也就多50分,但T3搞出sub1就有50,性价比可能差不多。
中途还是放不下T1,又回去拍了拍调了调居然在11:00左右给过了,非常开心。
大概11:20多的时候大概会了T3的sub1,rua到11:40左右发现假了。
当时心态就崩了啊
当时发现还是能 1.5 n log ⁡ n 1.5n\log n 1.5nlogn,并且这题好像是有部分分的,写完拿了40,还剩10min多一点,长舒了一口气。
然后发现Itst在睡觉,在睡觉。。。
(其实只是头枕在手上,是否真睡着了也不好说)
瞬间开始怀疑sub2跟去年D4T2的 if(n>10)puts("0"); 一样来骗,来偷袭。
胡乱爆了几发OJ发现没这种事。
然后发现Itst头抬起来了。
考试一结束听到yhx说他T3只有50,不会处理一度点。

感觉是四天里观赏性最强的一天了,演员zx。

下午讲题得知pjy是T3出题人,跟上午预估的一样。
pjy 怒斥选手太菜了 吐槽说sub2数据白造了。

“按照去年惯例,D1T3是要没人过的,而且得是杭二学长出的”。嘻嘻嘻.jpg

Day2

座位非常神奇,我卡在中间一排离门最近的角上,我校另两个集训队txc和yzr相邻地坐在我左前方。

开场倒序把三个题看了下,T3好像是今年多校题。
前后因果关系说来比较复杂,首先那场多校是NOI疏散日,应该很多人都鸽了。但是我校有老鸽mocania后来补了下这题,补的时候跟我交流了一下,觉得这题很棒,就搬到五校联考的CSP模拟赛里去了。(说起来那场T1要用多项式开根,最后被教练喷太毒瘤了)。
不过具体题意记不清了,刚翻了一下原题好像只用判翻转后是否强连通,但原题题解里也提到了“可以问翻转后scc size的倒数和之类的”。
稍微想了下感觉还比较simple。
然后看T2,第一步先转45度变成两维独立,然后应该就是经典问题“给定若干个独立随机变量,要求出加和分布的一些信息”,应该随便推推就好了。
稍微推了一下好像细节有点多,决定先看下T1,发现周围人都在敲键盘了,于是花10min把T1写了下。
然后就是推T2,大概思路是把取值范围[0,2]的变量容斥成[0,inf]-[2,inf],然后再积分算一下。
推了一会手算过了第一个样例开始写,写完自闭了好久发现把[2,inf]当成[2,2]了。
最后答案式子应该是 ∑ i = 0 n − 1 ( n i ) ( − 1 ) i ∫ m a x ( 2 i , n ) 2 n ( x − 2 i ) n − 1 ( n − 1 ) ! ( x − n ) d x \sum_{i=0}^{n-1}\binom{n}{i}(-1)^i\int_{max(2i,n)}^{2n}\frac{(x-2i)^{n-1}}{(n-1)!}(x-n)dx i=0n1(in)(1)imax(2i,n)2n(n1)!(x2i)n1(xn)dx,大概9:40的时候过了。噫我要阿克了!
为了求稳先写了下T3 O ( n 2 ) O(n^2) O(n2) 枚举每条边再用度数序列 O ( n ) O(n) O(n) 求解的三方做法,过完样例一发交上去直接60分,改了改直接A了,这时是10:10多一点。其实挺怀疑数据强度的我觉得我的码力没这么强。
呆坐了一会就回宾馆做微积分作业去了,然后发现我对积分一无所知,一上午做了一个题(大概)。

“按照去年惯例,D2是要有若干阿克的”。

Day3

看到T3题目名称异常兴奋,决定倒序看题。
T3稍微想想就会了,当时还在纳闷出题人谁,放这么复古的LCT题。联想到考前看的一个严格LCT,感觉PKU的鸽鸽们还是有可能放这种题的。
然后花了10min多点写了下T2的60,至于后40分的DS优化,当时的第一想法是kdtree,不过点数30w有点虚,第二想法是log数量未知的分块。
DS专场实锤了
不过T1看起来很像牛逼数数,正解应该是个找了一堆性质的三方DP。我想了10min不会(滚粗前兆),觉得应该打打表找下规律。
然后果然有规律,h=0时答案只跟q[1]的值有关。
这时大概9点了,觉得应该先把后两题里挑一个写了。T3暴力这么低(当时没细想20以外的暴力分),T2暴力又已经到手了,不如先把这个T3写了吧,而且感觉也不是很难写。
写到10:00左右写完了,大概3.5k-4k。
然后写了个暴力和gen开始拍。
中途意识到这把可能要崩,至少T2,T1已经不可兼得了,但还是顶着压力调下去,主要是部分组件考前模拟赛里恰好有过类似的,有些迷之自信。
过完n=m=10的拍后非常兴奋,一发交上去25pts。当时骗自己T1神仙题,大家都不会,标准分也就50+100+20这样,我现在也差不多有个50+60+40吧,心态好了点接着调。
然后n=m=100拍停了,心态要崩了。
硬调发现是漏case了,非常慌张因为不知道这个case是否平凡。
这时已经11:10几了,冷静了一下发现这个case是平凡的。
说起来我觉得我最后一发提交有一个二分查找的顺序是写反了的,但写正之后还是WA的,把老版本的顺序拉过来直接复制粘贴就莫名奇妙过了。
这时已经11:30了。
“我在北大集训写大DS脑子写坏了,马老师你能不能教教我行列式功法帮助治疗一下”
“你这已经无可救药了,行列式功法也救不了你”
半小时还是没能rua出T1,最后拼了点暴力拿了50pts。
出来一听“行列式”就意识到T1做法及难度,知道自己可能无了,再一看榜发现35个过T1的,人都傻了。
T1一群100里赫然一个50,T3一堆20-40里赫然一个100,感觉自己打出来的分数分布非常滑稽,只增笑耳。
不过T2一堆人被常数杀,可能间接帮我挽了下尊。kdtree被卡得一个不剩,幸好当时没去写。
最后排名和分数好像还行,被卡写题节奏确实不适,可是自己菜不会T1又有什么办法呢。

下午讲题得知T1出题人cwy,“这是一道扶贫题”。
太菜了没被扶到啊,要被我校学长送走了。
T3居然是lxl&ccz出的,之前没看出来。

“按照去年惯例,D3是要有一个阿克的” 可惜zyy不再了。

Day4

T1集合幂级数exp板题,T2感觉是个有趣的计数。
发现是个矩阵树,8:30左右拿到40分,跟昨天一样打了下表,发现会60了。
100分好像就是个循环矩阵行列式,应该挺经典的以前见过若干遍,但就是回忆不起来。现在想来之前应该都是看到问题形式就吓跑了根本没看做法,可能也不配谈“回忆”两个字吧。
稍微看了下T3吗,感觉是个一个一个点堆上去的提答,不过至少是硬核构造而不是xjb随机化(flag,实际上可以冲随机化)。
但当时也没觉得不能随机化,只是我随机化水平低就不愿意去尝试了。
感受了一下T3得分效率还是挺低的,回去接着整T2。
乘循环矩阵等价于卷多项式(循环卷积意义), n = 2 m n=2^m n=2m 又明示DFT,可是又能怎么办呢。自闭了好一会,尝试硬猜最后做法,观察了一下矩阵 A A A A A A 对应的多项式DFT后对应的卷积矩阵 A ′ A' A 之间的关系。
突然灵机一动,发现对于任意向量 p p p p ⋅ A = p ⋅ D ⋅ A ′ ⋅ D − 1 p \cdot A=p \cdot D \cdot A' \cdot D^{-1} pA=pDAD1,其中 D D D 是DFT矩阵。于是 ∣ A ∣ = ∣ A ′ ∣ |A|=|A'| A=A,随手写了发NTT 10:14过了。
AC完后稍微膨胀了几分钟,但转念一想这种经典题应该很多人都会,还是得好好做T3。10:30写完了T3 15分。
之后就是4天里得分效率和思维强度最低的时间了。
先是搞了个构造可以通过sub3 n ≥ 100 n \ge 100 n100 的部分,但是 n < 100 n \lt 100 n<100会被卡常,出题人太不良心了。(这里100是个比较松的界)。
之后对着sub4硬构了许久得到了一个点数 2 p 2 2p^2 2p2,边数 p 3 p^3 p3 的做法,但是这个做法sub3和sub4都得被卡常数,sub5倒是得了22分。
之后就不知道在干什么了,感觉稍微顶一点也该把sub3常数给卡进去了。
可是最后花了很大力气搞了个很复杂的做法也没在结束前写完。
结束后看到zjc T3 71有点小慌,以为会一车人这个分,还听说邓老师两小时阿克离场。
虽然打得有点不知所以,不过最后分数和排名还行。

下午讲题得知T3是我校学长fyl的题,从数学讨论班里拉的。感觉题很棒,成功区分了邓老师和我这种平凡的有机物。T2很多人说做了114514遍了,myh说线代课上讲过,可惜我预科没报线代。

“按照去年惯例,D4也是要有阿克的”。邓老师好稳啊。

达成成就:从未在北大集训中AC本校学长出的题,包括两个30+人A题。

下午跟学长在小吊梨汤聚餐,吃得还是比较开心的,人均消费居然低于Day0晚上的火锅。
但人员组成上几乎就是19年ZJ杭二省队群聚,再加个ztr和cwy。
更年轻的后生们因为种种原因没来,从上帝视角看像是象征着某种隔阂,对我校未来的OI事业可能不是一件好事。

晚上是THU预科群聚,跟辅导员稍微聊了一下,dcx哥哥没带身份证进不来有点小惨。晚饭是在一个奇怪的印巴餐厅吃的,吃得还是比较开心的。
饭后听辅导员说可以去五道口感受一下人间烟火。
“五道口有啥呢?”“宇宙中心。”
我还以为是说五道口繁华如同整个宇宙的中心,直到我看到大大的“U Center"。
坐电梯到6楼再一层一层走下来,感觉确实很热闹,看起来有很多情侣,还有很多其它三两成群的,我这种孑然一身的可能根本就不是来逛街,而是来看人逛街的。
中途遇到个白发变黑发的店,本来想试试的,问了下觉得是智商税,要真有这种技术我爸妈咋没早给我用,就跑了。

总结

来之前觉得按照去年北大集训一车阴间题的经验,多来几个NOI2020D2T2或者CTT2019D3T1(的小清新做法)我就无了。这种有点trick的题确实不太擅长,不用啥科技,平时训练时有种自己也能做的错觉,但总得来说,在正式比赛里,我在这种题上的输出确实不高。
抱着反正2月初就要退役了的心态,觉得能学一点新东西赚一点,非常佛系,心态稳健。最后排名其实有点出乎意料,可能是题风比较习惯,阴间题少了,做起来比较顺手的阳间计数和DS多了。而且运气也确实比较好,Day1和Day3都是几乎用满整场时间在得分却没有玩脱。
逐场分析的话,Day3T1没秒确实是败笔,连带着Day3T2来不及写。还有Day4,感觉有点划,好端端的场感觉莫名少了20分左右,也不知道怎么办,构造确实没那么擅长。
总的来说发挥平稳,头脑还算清醒(除了Day3时写T3脑子烧糊了),考前21:30睡觉应该还是有用的。手速还是有提升空间,比如Day4最后没调完的sub3,或者Day1没卡过去的10分(虽然当时误判了)。

不知不觉地被慢慢推向风口浪尖了,就这样吧。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值