我的第一次省选!
也许也是最后一次了。
毕竟学的晚,最多也只能参加两年省选。
3.20
第一次集训,早上考三个小时,一开题就发现 B 之前见过原题,但是并不会解法。。40 min 整完 A 和对拍就去冲 C 的正解,在我印象中 B 那 20 分思维难度不太与我匹配,因此写无脑的 C,写了 1h,然后对拍老不对,调试了好久,后来发现貌似是暴力写挂了,测极限数据却被卡常了,1.4s,那确实不太行,xtq 说不开 \(O_2\),那我岂不是不太行。
最后出考场很自闭,跟暴力分一样。
初发分居然 rk 1,\(100 + 80 + 100\),就好像梦一场,T3 爬过了,震撼。一堆人写挂了,测的也有问题,更新榜是 rk 2,可能是我现场打的 oi 比赛最好的一次了,个人的优势也许是代码水平还算凑合?毕竟思维太弱了。
T2
讲题人精髓完全跳过了,让人怀疑是临场强行让上去糊弄人的(
这里读完 std + 自己的一点优化写一下题解:
首先考虑插入 \(1, 2\),注意到为了最后合法我们仅需要让当前序列中空隙必须插入用 \(3, 4\) 隔开即可,因此只需知道当前序列有多少个相邻相同对,这步可以 \(O(n_1^3)\) DP。
然后考虑忘空隙中插入 \(3, 4\),利用刚才的数组可以预处理出一个 \(g_i\) 数组流出恰好给 \(3, 4\) 插 \(i\) 个空(定义这个空为段)的 \(1, 2\) 分配方案。
接着考虑把这个空分成三组,注意到 \(3, 4\) 在一个空里插的必须交替,因此 \(3, 4\) 在一个连续段中数量差不超过 \(1\)。如果枚举了 \(3\) 数量 \(>\) \(4\) 数量的段数,那么可以推出 \(<\) 的段数。
我们可以用 \(O(n_1^2)\) 枚举这样的 \(3>4, 3=4, 3<4\) 的段数 \(a, b, c, a + b + c + s\),我们先把这些段分成这三组即一个多重集组合数:\(\frac{s!}{a!b!c!}\)。
紧接着就是本题精髓,我们目前要解决的是把固定数量,这样分配进去,让他们和恰好等于题目要求并且满足刚才的限制,看起来不太能做。但是考虑构造一个映射,如果我们确定每个段里 \(B\) 的个数,还有刚才的分组信息,是否就可以不重不漏映射出一组方案呢?确实是可以,但是要注意 \(3=4\) 的情况有两种形式,所以外面 \(\times 2^{b}\) 就可以。
问题变成了求一个长度为 \(s\) 的 \(x_i\) 数组满足有 \(b\) 个位置 \(x_i \ge 0\),剩下位置是正整数的方案数。考虑建立一个映射,将 \(b\) 个位置 \(+1\) 就变成了经典问题。
这个局部 \(+1\) 还是蛮神奇的。
到这里就做完了。
3.21
今天蛮自闭的,早上想着换一个机房坐,结果开题发现一道自己见过但不会。
之后一直爆肝这道也就是 C,最后忘记 100pts 咋写了,写了个 70 pts,但最后跑太慢无奈打了个表,剩下就没时间了,打了 AB 的暴力。后来发现 A 很简单,只是一个猜结论。。自闭了。
最后全场就我 A 低于 \(80\) 分。。耻辱。
不过好在 C 的 70 分还很有用,稳在 10 名。感觉这个排名已经非常满意了,希望能稳在这里(flag
A:结论连通图可以最后变成完全图,考虑每次缩一个长度为 3 的链变成一个环缩成一个点。我这都不会,就这, 就这。
B:考虑大力容斥,枚举强制选的禁点,强制选的行列,要统计剩下可选的点,斜着会不好弄,考虑三个共点只会出现在 \(i, n - i\) 这种形式,所以每次把这些行列放在一起暴力枚举情况做背包。
C:考虑最后对调值域
3.27
今天完全做了暴力老哥,非常的逊。
最后还是 rk10 其实能保持在吊车尾挺好的蛤。
学到的东西:
-
考虑联通块建图不行的时候考虑能不能把点拆开这样更加形式化。
-
神奇的黄金分割比
-
通讯题也有平衡思想
-
T2 分治!!所有选段问题其实都可以考虑就是链上分治。、
-
T3 考虑函数性质可以考虑迭代、找规律等等。还有就是一个货仓寻址问题的扩展版本,通过平移变换来转化成原问题。
今天的 T1 jkp 讲了还不会是真的逊。
3.28
越来越逊。
学到的东西:
- 有时候要猜结论不能硬刚。
- 考场也想到了当成多项式可时间不够。
- 一堆多项式的东西。
4.9 Day 0
摸了一天鱼,回家很快便进入梦乡。
4.10 Day 1
早上起来有点困困的,可能是睡的太多了吧。
进场,看了一会 T1 发现自己好像会把一副牌拆开,双指针,一个值域区间合理等价于 \(n\) 个都有一个在,并且只有下面在的不超过 \(\le m\) 个,瓶颈在排序 \(O(n \log n)\)。
然后写了,过了大样例,拍到结束,大概有一百万组(?
然后就是自闭 5h,BC一个不会,B 这种构造我做过一个类似的 APIO 题,所以就一直想用 \((1, 1), (i, 1), (1, j)\) 这样状物的去表示 \((i, j)\),构成一个差分约束啥的,但是写到一半发现还有和的限制,自闭了。。C 这个东西我先写了个按照题意模拟,然后改成 \(O(mn^3)\) 这样的,因为动态加边维护强连通分量这个东西我一点不会。。后来发现只用写很短,枚举一对点对的贡献二分就可以 \(O(n^2m\log m)\)。。感觉 \(44\) 很悬,但是大样例跑的还行。
最后一会还是不会 B,连 \(m = 2\) 都不会也是没谁了,一直陷入自己的怪圈里。
然后最后 B 整了个随机生成,那必然是爆零了。
预计得分大概是 \(100 + [0, 35] + [16, 44]\) 这样的,这破东西估计最少也都三四十名了吧。。
回家自闭睡了会,晚上很晚也没有睡着很自闭。
4.11 Day 2
第二天到了考场,结果回收系统上不去睡了半个小时。
后来起来,看了三个题,好家伙,一个不会。又想了半天,总算会了 T1 的两只 \(\log\) 做法,那就写呗,写了一个小时过了大样例,貌似是 \(0.8s\) 不开 \(O_2\),感觉还是不错的。又搞了半个小时整对拍,又双叒叕拍到结束。
BC 又不会那真的是经典回放了,一开始 B 还看错题了,暴力写挂,然后发现居然可以 \(O(n!n)\) 算贡献啥的,那我写暴力干啥呢?
C ,我实在是太愚蠢了,连多项式做法都不会,咍咍,连断掉 \(u\) ,DFS 都不会,我还有救吗?最后整了个树的部分分,自闭了半小时,就结束了。
大概得分是 \(100 + 60 + [10, 25]\)。
感想
可能一直以来都是一个人在自己乱整 OI 吧,可能方向走的挺偏的。
对于若干简单算法的应用,需要灵活转化的题始终学不来。这段时间反而学了很多没有用到的科技,最终考试用到最难的算法也只有线段树。
如果还有机会,会着重放在 CF、AtCoder 这上面吧。不要再做板子了。
Update:回顾这次比赛,感觉没有挂分是最大的特点,但是 matrix 的几乎爆零和 d2t3 的不会 dfs 真的太屑了。要多练练打暴力能力(
摸鱼就摸鱼,训练就训练,要有详细的计划,不能整天随便乱看,一点作用没有。
4.15
yls 说貌似进队了,rk 7 左右,还蛮震撼的。感觉学校还蛮好的,居然有这么多优惠政策,可以天天旷课肄业了
今后的计划:
- 每天一套 CF div1
- NOI 往年题做
- 一定要补题!
- CF、AtCoder 比赛尽量参加练手感。
有意思的题写题解记录下来。