这个东西其实在考完第二天就写了,但是一直没放到博客上。
源代码是 \(\rm{Tex}\) 文件,直接用 \(\rm{pandoc}\) 转换,可能会有些问题。
赛前
Day 0
\(7:00\) 从学校出发,没想到 \(7:30\) 左右就到了,酒店名字是亚洲大酒店,看起来似乎有点旧,但是还是很豪华。
晚上的时候想着“好不容易出来玩玩,还是要吃顿好的。”,于是去 \(\rm{M}\) 记吃了点东西,顺便请 \(\rm{ljz}\) 和 \(\rm{tjp}\) ,沾一沾光。
爸妈居然跟过来了,有点震惊。
Day 1 Morning
早餐非常好,就是餐厅转得有点慢,吃完早餐也只是转了个几十度。
进考场之前被告知食物和水不能带进考场,表示非常无奈,只好提前吃了两个巧克力,喝了半瓶水。
赛时
开考的时候心跳很厉害,尝试冷静\(\dots\dots\)
先看第一题,题目似乎很好理解,想到了一个类似某素数筛法的算法直接打出所有合法数字,然后用一个数组 \(\verb|nxt|\) 记录一下某个位置之后的第一个合法数字,大样例用了大概 \(0.53s\) 左右,看起来还行,下一题。
第二题开局看错题,序列看成了集合,还好多看了几遍。可以设出 \(\verb|dp|\) 方程,状态看起来有点鬼畜,要考虑到第几个 \(v\) ,当前用了序列中的多少个位置,当前的 \(k\) 以及进位信息,状态数是 \(O(mn^3)\) 的,貌似可以,转移很简单,要把可重排列的阶乘逆元乘进去做贡献,最后统计答案的时候再把 \(n!\) 乘上,一个傻错误调了很久,还好还是过了样例,下一题。(当前用时 \(\rm 1\ hour + 20 \min\))
看第三题,熟悉的 \(a_i=a_{i+1}+a_{i-1}-a_i\) (\(\%\%\%yyc\)) ,弄成差分数组,原操作就是交换相邻两项差分值,因为 \(a\) 必定递增,只能让较小的差分值放在中间( \(d_1\) 另当别论),然后 \(\dots\dots\) 然后就不会了,考场的时候拆差分数组化式子,化了个寂寞。(当前用时 \(\rm 2\ hour\))然后看看原始的计算式,发现 \(88\rm pts\) 实际上就是记录当前用了多少个多少个差分值,当前序列的和是多少,然后让平方的和最小的 \(\verb|dp|\) ,新的差分值可以插到当前序列的开头或者结尾,转移式子非常恶心,当时太贪心,想拿 \(100\rm pts\) ,但是脑子已经抽了,想不到差分值 \(0\) 一定是放在中间的,想了半天,于是只好写 \(88\rm pts\) ,但是脑子没缓过来,式子写错了很多次,花了大量时间终于过了样例,下一题 (当前用时 \(\rm 3\ hour+10 \min\))
第四题看背景以为是博弈论,结果不是(幸好),是个非常多细节的数据结构题,看起来似乎是线段树合并一类的东西,但是只剩一个小时多了,只好去写部分分了,部分分依然恶心,想写一个只有直行道路的离线并查集都难,放弃思考,去冲暴力了。没想到暴力就写了\(100+ \rm lines\),过了前三个样例,\(\rm run\)了。(当前用时 \(\rm 4\ hour+15 \min\))
检查前三题,过样例\(+\)检查数据范围\(+\)心理安慰。
赛后+感想
最大愿望:不挂分,除此别无所求。
\(\rm AFO\)
左脚长疣,拖了一段时间才治疗,恐怕最近是动不了了。
11.29
成绩出来了,没有挂。有点不爽,\(\rm T3\) 写随机化轻松 \(100 \rm pts\) ,数据有点水啊。