这是本蒟蒻的第一次编程复赛,成绩不是很好。
8:30 比赛开始,但是因为网站的问题延迟了大概 25 分钟才开始比赛。
9:00 看 T1 ,发现是一道数学题,暴力!
9:10 嗯?为啥样例超时了,想了 3 分钟,先判断一下 n 是不是质数就行了,自己造了组大样例,完美通过。
9:15 开 T2 ,第一点想到的是暴力, O(nm) 的复杂度,肯定不行。
9:25 写好 T2 暴力,样例过了,开始思考如何优化,顺便喝了一口冰红茶(真好喝!)。最先想到预处理,但是没能想到。
9:40 在苦思冥想 15 分钟后,没有想出优化方法,于是转战 T3 。第一看到 T3 是一个贪心,于是直接模拟了一下样例,似乎发现了一个结论,于是便直接开始瞎写。
10:00 写好 T3 暴力,发现样例完全不对,在考场上愣了3分钟。
10:10 尿意来袭,去上厕所,在厕所想到了 T2 中的一句话:保证 𝐴 是排列,即 1 ∼ 𝑛 每个数恰好出现一次。这样的话,就可以用一个 k 数组来记录每个数的位置,因为第 i 次交换交换 k_{a_i} 和 i 位置中的数,所以可以以 O(1) 的复杂度完成一次排序。如此优化,复杂度降至 O(n) ,直接过掉。
10:20 开始构思 T2 优化细节(此时已经从厕所里出来了),在源代码上修改,期间遇到了如何交换的细节问题。但是想了一会,写了个 swap 。
10:50 T2优化完毕,样例通过,转战 T3 。
11:00 T3还是没有很好的思路,看了一下数据范围,打算先写特殊点,自己构造了一组特殊样例。
11:15 写完特殊点的贪心,过了自己的样例。发现可以用搜索暴力求解, O(Tn) 的复杂度,算上特殊点,一共可以拿下 55 分。
11:35 T3暴搜完成,通过样例,想使用最优性剪枝,但是发现不会。开 T4 。
11:40 What!!! T4二叉树 !!! ,完全不会,想了一会,模拟了样例。看了一下特殊点,感觉有点想法,但完全不会。唉,没学过能怪谁呢。
11:50 想了一下,搞了个寂寞。感觉自己废了,把冰红茶喝完了。
12:00 把自己所有的代码提交了,祈祷上苍,不要连前两题也 AC 不了呀,那就真的废了…
12:01 \longmapsto 12:25 一直在等,期间想到了 T4 ,结果连暴力都写不出来。当时机房里还有大佬在超快的敲键盘。
12:30 离场了,教室在 801 ,坐电梯下去。在电梯里听到 T2 可以用线段树, O(n) 解决,蒸食乌鱼了。
分数:
预测分数: 100+100+55+20=275 分
预测排名: 80 名
自测分数: 100+100+35+0=235 分
自测排名: 69 名
自测分数: 100+100+30+0=230 分
自测排名: 90 名左右
愿可以拿到一等,祝大家都有光明的未来!!!