2022.04.07省选模拟赛总结

1.时间安排

7:20~7:50

T1:数据结构题,和异或相关应该是可持久化trie,40分应该很容易,可以想想70分。

T2:期望题,和二进制有关,30分的特殊二进制位也许能做。

T3:看不出是什么类型,但是n,m<=40,这题可能非常毒瘤,能拿个暴力就行。

7:50~8:30

先写了暴力跳父亲的20分。

还有20分是无修改,一开始想用莫队什么的搞,但是复杂度有点大,又想可持久化trie,很麻烦不想写,最后写了个询问按dfn序排序的可删除trie,因为右端点递增左端点不变所以复杂度是正确的而且似乎跑很快,就没管。

又想了会链的数据,想套离谱的回滚带修莫队,但trie有\(O(log|V|)=30\)的复杂度,显然跑不动,就先写后面题了。

8:30~9:00

推了一会发现了两个结论:

结论1:对于任何2的整次幂,期望为2

结论2:对于2的整次幂-1,期望为\(\frac{n}{2^{popcount}}+\sum_{i=1}^{popcount}\frac{i+2}{2^i}\)

很容易证明正确,写完30分就跑路了……

9:00~10:00

试着写\(n,m<=10\)的暴搜,写了半个小时140多行,只能跑动5以内,麻了。

然后想了想n=1的情况,就是个简单dp,\(O(n^3)\)复杂度写完跑路。

10:00~11:50

全力莽T1。

突发奇想写了个分块可持久化trie,空间很充裕,但是时间很危险,写和调了40分钟左右保证正确性没问题,就跑大数据,但是跑了20秒。

冷静下来仔细一算复杂度大概是\(1e9\)级别,心态爆炸。

突然又一想/32能跑动,而trie上又都是0/1,也许能套个bitset?(我也不知道怎么想到bitset去了)

想了20分钟左右怎么上bitset,觉得这太离谱了,放弃这个思路。

把之前的代码拆开跑,发现是重构的地方复杂度过高,就在想怎么优化重构,想到之前学的操作分块,也许能变成\(n^\frac{1}{4}\)

想了很久不知道怎么下手,之后又换了很多想法,但都写不了。

胡思乱想到时间只剩10分钟了,也没心时间T2T3了。

result:

T1:40 T2:0(输入是long long声明是int……改完30分,麻透了) T3:10

posted @ 2022-04-07 13:02  Displace  阅读(30)  评论(0)    收藏  举报