NOIP2021 游记

终于没有考崩,于是乎写了一篇游记。

\(Day \space -6 \sim 0\)

颓废 + 写莫名其妙的 \(DS\) + 瞎出题。

\(Day \space 1\)

在人大附门口遇到了 \(wsy\),被暴力膜了一整路。

走到 \(6\) 楼发现还是 \(CSP-S \space 2021\) 的那个承载了我噩梦的考场,\(rp--\)

不过这次加了隔板,所以应该不会被搞到心态。

考前没有看到 \(zzt\)\(rp--\)

\(8:30\) 钢 铁 之 心

看到这个 \(T3\)\(a_{i-1}+a_{i+1}-a_i\),我马上就想到了前几天 \(zzt\) 暴切的那场正睿 \(T1\)

推了一下,果不其然,这个操作等价于交换差分数组中相邻的两个元素,意思就是我可以随便排列差分数组。

然后就是极为痛苦的推式子,最终推出来一个 \(n\times \sum_{i=1}^n\limits a_i^2 - (\sum_{i=1}^n\limits a_i)^2\)。然后干瞪了半天莫得思路。

决定战略性放弃 \(T3\),转战 \(T1\)

一开始打了一个大暴力,以为能报出来的数会比较少。但是发现并没有。

又仔细想了想,发现可以直接暴力筛。

写了一个调和级数,又加了几个小剪枝,跑的还挺快的。

然后我就把 \(T1\) 放在了一边,转战 \(T3\)

我决定先打一个暴力,看看最优解的差分数组长啥样。

发现是个单谷,但是两边的分布很怪,于是决定先把暴力交上去拿 \(20\) 分。

折回来看 \(T2\),发现我看不懂题。

瞪了半天样例解释之后,终于把题看懂了,并且迅速想出了一个时间复杂度为 \(O(n^3m2^{2m})\) 的优异算法,但当时算错了,少乘了一车东西,于是开始瞎写。

写完之后发现这个东西过不了样例 \(2\),由于时间还足够充足,我就用人生中最快的速度 \(rush\) 了一个 \(O(m^n)\) 的大暴力。

一测大样例 \(2\),跟我的暴力 \(dp\) 一个输出。

我瞬间整个人都不好了,连忙重新看了一遍题目。

\(\textbf{二进制表示中 1 的个数不超过 k}\)

而我之前一直认为是等于,改了一改就过了。

但是这个代码跑的奇慢,第三个大样例跑了一年。

我把代码拉过来重新算了一下,发现 \(n = 30, m = 12\) 时我的代码运算次数是 \(5\times 10^{12}\) 量级的,当场就蚌埠住了。

我当时几乎就要决定 \(T2\) 交个 \(20\) 分上去然后摆烂了,但就在这关键时刻,我发现我在枚举 \(S\) 的时候每一次 \(dp\) 算的东西好像都是跟 \(S\) 关系不大的,准确来说 \(S\) 只是一个上界。

我当场就恍然大悟了,把 \(dp\) 放在了外面,然后每次枚举到 \(S\) 的时候直接查询对应的 \(dp\) 值就行了。

这样的时间复杂度就是 \(O(n^2m2^m + n2^m)\)。可以过!

于是我 \(T2\) 就拿到了 \(50\)。为了避免 \(fst\),我把暴力和我的代码放在后台拍,\(1\) 秒钟就拍了 \(100\) 组,机子十分可怕。

最后我 \(T3\) 瞎写了一个差分数组排序后左边放俩右边放俩的假到不能再假的贪心,和暴力拼在一起就交上去了。

\(T4\) 根本不想看,直接 \(puts \space zzttxdy\)

最后十分钟玩了两把五子棋,被吊起来锤,体验极差。

预估分 \(100+50+20+0=170\)

出考场身边一群人都写 \(T4\) 了,感觉又要垫底了。

洛谷预测 \(100+50+48+0=198\)

只有假贪心就能拿 \(40\) 分,震撼 \(lht\) 一整年。

感觉貌似没有那么垫底?

update on 2021.11.29:官方数据居然是 \(100+50+60+0=210\)
update on ???:终于有了一等
update on 2022.03.11:事实证明如果 \(T3\) 写的暴力是 \(2^n\) 的话能得 \(80\) 分,如果再拼上一个随机化能过。

posted @ 2021-11-21 14:52  David24  阅读(330)  评论(6编辑  收藏  举报