Loading

【游记】NOIP2021

本来觉得没什么好写的,但想来是最后一次参加 NOIP 了,还是留点纪念。

Day0

今年在外地考试,换了个环境有点不适应。

晚上在宾馆大喊 lpf ak noip 可惜没有人听见。

Day1

8:10 分进的考场。先敲了个配置,然后趴桌上打了个盹。

8:30 发了试题,瞄了一眼发现 T4 是个 4s+1G 的题目,显然是个毒瘤。

然后开 T1,有儒略历的既视感,但看完题才发现大概是个普及组的题目。

接着看 T2,发现比 CSPS2 水多了,大概 CF 1900 的难度》?

然后看 T3,发现题面很短很清晰,简单推了以下就是求 \(n\sum a_i^2 - (\sum a_i) ^2\)​​ 最小值​,并且这个操作显然就是个套路,直接做差分然后邻项交换即可,并且最优答案的差分数组应该是先减再增。

返回去写 T1、T2,然后一遍过了样例,看了下时间现在才 9:20 感觉非常不真实,又肉眼检查了一下还是没有问题。

接着想 T3,最优化问题先想 DP。定义状态 \(f_{i,j,k}\)​ 表示排序后前 \(i\) 个数,选了 \(j\) 个数放左边,剩下的放右边,和为 \(k\) 的最优值,发现转移起来非常诡异,并不是很可做。

试着把式子拆成差分形式,大概是使 \(n\sum a_i^2 - \sum\limits_{i=1}\sum\limits_{j=1}(n-i+1)(n-j+1)b_ib_j\)​​ 最小,\(b\)​​ 为差分数组。

前面一部分还是比较好算,后面一部分貌似可以将 \(i\)\(j\) 拆开算。

最后 DP 还要加一个维度,复杂度直接 \(\mathcal{O}(N^4M)\)。好家伙这复杂度直逼T2。

就这样瞪了一个半小时还是没有看出什么问题。一看时间 11 点了决定还是先写 T4,免得后两题都抱零了落得 CSP 下场。

T4 题意有点长,读完题发现暴力分就是个大模拟,然后开始码。码了半个小时终于能过第 \(1\) 个样例,但非常诡异的是第二个样例一直输出 3 4 5 2 5 5 1

一直调到 12:10 才发现一个地方本来是 \(p,q\) 结果写成 \(x,y\)。改了之后一发过了样例 \(3\)。看了下发现 \(9\sim 11\) 的点可以被卡到 \(nmq\),但貌似可以 vector 记录链然后二分。还有 \(19\sim 21\) 的点非常迷惑,不知道是不是给 \(nmq\) 的分。

试图写 vector,但是到了 12:30 还没有写出来,冷汗都出来。

决策一下还是写 T3 比较划算,暴力分还是不少。显然我们可以直接 \(2^n\) 枚举每个 \(b_i\) 是放左边还是放右边。写到一半突然意识到我们将相同的 \(b_i\) 放到一起决策,然后直接搜索剪枝。12:50 敲完并且过了三个样例,测了下 \(n\le 100\) 发现跑的飞快。再测一下 \(n=400\) 发现 10s 都不出结果。果断数组开 \(100\)。赛后才知道 \(n\le 10^4\)​ 的点 \(b\) 中有一堆相同的点,搜索剪枝跑的非常稳,亏死。

最后两分钟检查文件,结果发现 T2 中 fac[i] = fac[i - 1] * i 没有开 long long,吓出一身冷汗。

哈哈哈哈哈哈哈哈天不亡我。

下午拿到代码发现大家分都不高?也对就 JX 这小地方怎么会内卷呢是吧/doge

posted @ 2021-11-27 19:42  7KByte  阅读(130)  评论(0编辑  收藏  举报