2020北大集训游记
我的博客里竟然有一天能出现这样一篇游记。
Day -1
沉浸在 noip 爆炸的悲痛中无法自拔个鬼,放飞自我不香吗。
由于今天滚回了学校,于是被迫咕掉了 Global Round ,然而事实证明这可能是个正确的选择。
恭喜 jiangly 进首页! orz orz orz
Day 0
早上六点起床赶八点飞机,到北京十一点半左右。
然后地铁+打车来到酒店(差点把手机落在车上),然后去吃饭,在餐馆膜到了 zjk 并被一股假的气息呛死了。
下午开幕式并没有说什么,然后成功切掉两道试机题。
晚上被教练拉出去吃饭,遇到了好多好多大佬 /se
回到酒店之后就没干什么了,把想了一天的两道 GR 题写了,然后发现这两题好像难度不超过 2300 ……
室友神仙作息, 9:45 关灯睡觉。然而我还是咕到了 10:00 。
Day 1
室友神仙作息, 6:30 起床。然而我还是咕到了 7:00 。
搞了搞发现就七点半了,赶紧下去吃饭。早饭看起来挺不错的,可惜没时间吃太多。
到考场,真正坐下的时候已经 7:58 了,于是赶紧开始写板子。
T1
一张带权无向图(初始只有一个点),一条路径的权值是 k 进制不进位加法,允许经过一条边多次。要求支持加点、加边和询问两个点的最短路。\(Q\le 2\times 10^5\) 。
T2
给一棵树和 n 个点的一个序列,每次询问会拉出若干个序列的区间连在一起得到一个新序列,问这个新序列中有多少个点满足 在自己前面的点都在自己的子树内 。 \(n,m,Q\le 7\times 10^5\) 。
T3
交互题。有一个有根二叉树,你可以询问一个点集的虚树大小,来判断这棵树的形态,或是判断无法确定形态。
虚树的定义是任意两个点的 \(lca\) 组成的集合。
subtask1 : \(n\le 500\) ,保证每个点要么没有儿子,要么两个儿子,询问次数 4500 。
subtask2 : \(n\le 1000\) ,无特殊限制,询问次数 10500 。
开 T1 ,发现好像是个线性基裸题?想了想虽然不太会证明但感性理解是对的。
开冲。
冲了两个小时发现了事情的严重性:我竟然不会模合数的线性基……
滚去看 T2 ,发现好像不难。写了 30min 写完了,然后调几个 sb 错误调了 30min ……
此时 48+100+0 且只剩 1h 了,决定放掉 T3 改 T1 。写了个对拍之后开始意识流调错。
最后 2min 获得了 \(48\to 89\) ,自闭了。
这 89 竟然是 WA 了第二个包而过了最后一个包,也是神奇的很。谢谢出题人不杀之恩。
大概排到了 20~30 名,退役已经在招手了。
下午回酒店浪,然后听讲题,然后回酒店睡了一觉,然后去吃饭。从出酒店到坐下开始吃竟然花了 1h 。
晚上摸鱼。
Day 2
基本同上。
进门的时候人脸识别挂掉了,不给我进去 /fad
T1
定义一个序列的价值为:重排之后,相邻两个元素的差的绝对值之和,的最大值。
给定一个序列,多次询问一个区间的价值。 \(n,Q\) 是 \(10^5\) 级别。
T2
从 \((0,0)\) 开始随机游走 \(n\) 步,每步等概率走到一个曼哈顿距离小于等于 1 的点,求最终 \(|y|\) 的期望。 \(n\le 5\times 10^6\) 。
T3
给一个 \(n\) 个点的竞赛图,对于每一条边,求出翻转它之后强连通块个数。 \(n\le 5000\) 。
开 T1 ,显然左右横跳最优,推了下细节就过了。
开 T2 ,显然可以转化成 \(2n\) 个 \([-{1\over 2},{1\over 2}]\) 的随机变量的和的绝对值的期望,然后就不会了。尝试写暴力找规律然而没找出来。
开 T3 ,想到根据出度序列求强连通块之后就好做了,写了写调了调也过了。
这个 T2 总感觉是个套路题,于是疯狂回忆套路。莫名其妙就想起来了,然后大力找规律就找过去了。
就莫名其妙地 AK 了,然后提前离场去逛未名湖。
然后和昨天也差不多,不过晚上是和两个学长&教练&dqa出去吃。
Day 3
基本同上。
人脸识别又好了 /fad
T1
给一个排列 \(q\) 和一个整数序列 \(h\) ,定义一个排列 \(p\) 的价值为
求价值是偶数的排列个数。 \(n\le 300\) 。
T2
对一个序列进行一次操作:选择 \(a_{i-1}<a_i<a_{i+1}\) ,然后把 \(a_{i+1}\) 丢到 \(a_{i-1}\) 左边,即循环移位。
定义一个序列是好的,当且仅当它可以由一个上升序列经过若干次操作得到。
给一个排列,多次询问最长合法后缀有多长。每次询问前会先交换排列的两个位置。
\(n,q\le 10^5\) 。
T3
维护一个有根树森林,支持连边断边和求所有重链的价值中的第 \(k\) 大。重儿子就是子树 size 最大的儿子,有多个就选重链上 max 最大的那个。重链价值定义为所有点编号的异或和。
\(n,q\) 是 \(10^5\) 级别。
看 T1 ,不会。但旁边人好像都切了。做了 40min 啥也不会之后滚去看 T2 。
看 T2 ,很快推出 \(O(nq\log n)\) 做法,然后发现不能用树套树优化,于是弃了。
看 T3 ,这显然不是给人做的,编了个 30pts 做法就跑了。
然后一直做 T1 但啥也没做出来。
50+60+20 耻辱离场,被打爆了。出来一看人均 T1 ,还不少人过 T2 ,我裂开了。
总排名掉到第十了 /kk
Day 4
基本同上。
T1
对于一张以 \(s,t\) 为源点汇点的有向图,定义它是好的,当且仅当
- \(s\) 没有入度, \(t\) 没有出度。
- 其他点的入度出度恰好为 1 。
给定一张有向图和 \(s,t\) ,对于每个点 \(u\) ,求出包含 \(s\to u\) 的好的子图的个数。
子图是用边集定义的。
\(n\le 22\) 。
T2
\(n\) 个人坐成一个环,每个人 \(i\) 可以选择不甩锅(代价为 1 ),或是用 \(w_j\) 的代价甩给第 \((i+j)\text{ mod } n\) 个人,要求不甩出环。一个方案的代价是每个人的代价相乘。
求所有方案的代价之和,模 998244353 。
\(n=2^m,1\le m\le 20\)
T3
给定 \(G=(V,E),|V|=n,|E|=m\) ,你要构造 \(H=(V',E'),|V'|\le N,|E'|\ge M\) ,使得 \(H\) 的任意一个子图都不与 \(G\) 同构。
subtask1 (5pts) : \(G=K(3),M=\lfloor N^2/4\rfloor\) 。
subtask2 (10pts) : \(G=K(n),N\ge 50,M=\lfloor (1-{1\over n-1})N^2/2\rfloor-1\) 。
subtask3 (10pts) : \(G=K(2,2),M=2N\) 。
subtask4 (15pts) : \(G=K(2,2),N=p^2,M=p^2(p-1)/2\) , \(p\) 为一奇质数。
subtask5 (30pts) : \(G=K(2,2),N=2850,M=72900\) ,有部分分。
subtask6 (30pts) : \(G=K(3,3),n=7^3,M=O(7000)\) (记不清楚了),有部分分。
大概花了 1h 过了 T1 ,然后开始自闭。
T2 写了爆搜和 \(w\) 相等的分之后就不会了,完全不记得自己原来还会矩阵树定理。
几乎玩了一整场的 T3 ,玩过了前三个包,后两个包直接随机拿了 40 分。
出来发现 rank18 , dls 2h 就 AK 了,被打傻了……
T2 又过了一车,不过即使我想起来矩阵树定理也就多拿 20pts 而已,没啥办法。只能靠 T3 的随机 40pts 挽回一点颜面。
总排名掉到了第 11 。
我好菜啊……
总结
打完四场(算上 noip 五场),感觉头有点晕。
Day1 暴露出我没有数论基础,同时交互也没有任何思路。
Day2 不知道怎么就超常发挥了,大概是继 noi 之后打得最好的一场,但也只是刚好撞上两个知识点而已。
Day3 打了一坨*,不会行列式&不会数据结构&不会模拟。
Day4 中规中矩,靠乱搞拿分,结果把矩阵树定理忘了,同时也没有线代基础。
排名靠 Day2 强行撑着,但其实就是菜。
学到现在,还是啥也不会,稍微偏一点的知识点就一头雾水,更别说往哪个方向做稍微深入一点的研究了。
对 OI 的兴趣,或许只是停留在 atcoder 的人类智慧题上?
考虑一下提前退役,然后学数学。