NOI 2024

省流:100+264+180=544,rk 45 极限进队。

赛前状态感觉还行,gzy 天天在模拟赛里爆标,给他磕头了。

day 0

开幕式。很想喷【】【】【】【】【】【】,算了不喷了。

笔试,开场 10s 大家就开始笑,笔试把答案发下来了。

”我们题目的配置出了一点问题,大家稍安勿躁“。

致敬传奇出题人。

推迟 15min 开始,然后发现题目没变。如果说我没有刷新的话不是直接抄爽。

乐子 1:楼阁出来说,我不知道你们在笑什么,我电脑上没有答案。

乐子 2:答案可能是错的,有人抄了被扣了一分。

真实情况是,去年也是这张卷子,系统没清空,你看到的是去年同一个准考证号的答案,如果去年没有同一个准考证号的,那么就没有答案。

day 1

看题,交互?密码 just remember 19。

t1,我一开始想的是,对于每个数,把相邻两个的距离的序列哈希一下,然后判这个哈希值的集合是不是一样。然后写写写,因为要处理第一个,所以继续写写写,写到一半发现因为两个序列取的是同一个区间,直接对下标的集合哈希就行了,双指针扫一遍就行。然后,我不知道为什么,写了一个 xorshift 套 xorshift,然后就完全不对。调了调意识到了可以不用外层哈希,加入的时候直接把上下各 3 个哈希值拿出来,看是不是相等就行,删除直接删,就是对的。写完发现只过了 70,零散挂点,把 xorshift 改成 mt19937_64 就过了。此时 1h 不到。

t2 先写了一个底层分治+顶层 n^2 暴力,调了调层数得到 51 分。上了个厕所发现分治为啥需要分成两半呢,写了个 dp:dp(i,j) 表示用 i 层识别 j 个数,代价至少是多少。直接转移是 n^2 的,但是分成的每一份显然不会太多,枚举分成 j/1,j/2,...j/50 份,每一份尽可能均匀分。然后发现就比限制多 eps。在这些数 -5 到 +5 之间枚举,就能过了,此时 1h30min,感觉有点稳了。

感觉给 t3 拼点暴力就行,性质 A,直接奇偶染色。性质 B,很显然的 2sat,但是发现这个 2sat,只会在 (u,0),(u,1) 之间连边,或者在 (x,z),(y,z) 之间连边,可以发现把所有能确定的确定了,直接钦定某个变量,是一定有解的。由此猜想,对于一般情况,不断地把还剩一条边的路径给确定了,然后因为可以奇偶染色,是一定有解的,直接把当前没定下的边给定下。拼了就 64 分了,此时 3h30min。

这个东西是可以数据结构维护的,瓶颈在于如何快速找出还有一条边没有被钦定的路径。考虑树剖,剖成 log 个区间,对于一个区间,在还剩一条边没被钦定的时候给它拎出来,拎出来后暴力就行。对于区间,维护连续段,然后维护一个 bit 套 pq 就行。大概算了算是 3log,然后因为一个是树剖,一个是 bit,一个是 pq,你就当他能跑 2e5 就行,然后开始写,没写完,摆烂。

查分没挂,100+100+64,发现 t3 1e5 的点只跑了 3.2s,有点不爽,但不管了。

比我高的不多,约等于我的也不是很多,day 2 稳着打,就行。

讲题没听,打乒乓球去了。很久没打了,进攻的期望收益是负的,因为上桌率不到一半(。

day 1.5

社会活动,一堆人回来中暑发烧,懒得喷。

建议改成真人吃鸡打到剩余 50 人,直接发金牌。

day 2

看样子三个题都挺正经的,第一印象 t1 感觉是萌萌结论提,t2 挺板正的一个题,t3 感觉是类似去年 d1t3 的题,那种不断发现结论不断优化的题。

t1 首先你可以看成一开始有两个数 (u,v)=(1,2),每次操作 u+=2v 或者 v+=2u,求能到达的点数。写个 dp 打个表可以发现,你从 1 到 n 枚举 u,u=1 时 v=2,4,6,8....,u>1 时,只需要把上面的转置下来,然后不断 +=2u,就能找完。直接搜可以不重不漏,得到 85 分,判掉最后一层得到 95 分,果断丢掉,这时候才 50min,打打暴力可能真就金了。

t2 你考虑倒推,就是你考虑用 dp(u) 往 u 的子树里面转移,先枚举一个 v,然后枚举 v 的一个祖先 w,看能不能从 dp(u) 转移到 dp(w)。这个过程对应的是,w 先不断休息滑到 v,然后从 v 冲刺到 u。能转移的条件很容易判断,而合法的 w 是一条以 v 为底端的链,也很容易求出,暴力枚举 v,其余用数据结构维护,就有 45 分了。h=0 拼一下就有 60 分,先别急着写,看看 t3。

t3 我一看就感觉会这个 B 性质了,但是编的做法漏洞百出,一边写一边调一边红温,最后感觉要有 C 性质才能做。先把一个点拎出来,随便找一棵 dfs 树,如果仅有树边和返祖边,就是一类点。然后考虑换根,然后怎么修都不对,改成最暴力的实现获得 20 分。此时已经过去 2h 多了。

先不急。

t2 写一写,拿到 60 分,过去了 3h。

然后试图继续修 t3,写了很多不对的东西,想的方向在平方暴力和 BC 性质之间来回徘徊,最后写的也是啥也不对,把第一个点拼一下,25 分跑路。

出来感觉我可能没戏,碰到 fyq,他说他只有 120,瞬间我觉得我还有救,回去问了几个人都是 200 上下,还有希望。

有人预估队线 530 左右,提前开香槟。

查分没挂,95+60+25,t2 怎么又有两个 2.1s 的点。

我:咋全是这些东西。

把数据拿出来跑一下,发现 20s 都跑不出来,我猜测的原因是:selfEval 对于程序不能正常执行的情况,首先,会设定一个稍微大于题目时限的限制,比如如果题目时限是 3s,它会设定 4s,超过 4s 会直接 Kill 你的程序,返回 TLE (Killed)。如果因为 RE/MLE 等情况程序自己退出,而且从开始执行到退出的时间正好在 3s 到 4s 之间,我猜想因为 TLE 的优先级要高于 RE,所以会返回 TLE,注意这里 TLE 没有 (Killed),原因是你的程序是自己跑完的,不是 selfEval 给你 Kill 的。

这么看来 d1t3 应该也卡了我的做法,释然了。

然后就是听题目讲评,听到一半得知可以去签约,赢!

因为选择学校的意见不合,和家长进行了长达 3h 的 battle,错过了嘉年华(悲。

坚持了我自己的选择,去了北大。

回去打了一把三国杀,启动了戏子内奸,最后剩两个反贼,一个一血一个两血,我手上有 ak,铁索,杀和雷杀。

正常的打法是,连上,雷杀一血的,然后杀另一个,两个都能收掉。

但是我不知道为什么我先给打了普通杀,另一个直接苦肉苦死不给我收,我直接投降。

回宿舍,大家都不想睡觉,聚集了我 gzy 怪兽 ylx,然后来了 alpha 和 wzk,然后又来了 kevin 和 xjc,我先困了两点半睡了,其他人好像是四点睡的。

day 3

上午演讲,zxb 的演讲很情真意切。才艺展示有蜂鸟,这首歌成为传统了,下一次谁来接这个任务(。

颁奖典礼上,因为有人没来,五哥和研讨上去凑数了,五哥以奇怪的方式集齐了 noi 三色牌。

很高兴拿到了大金牌,和同学们合了张影,大家都把金牌挂到了凯文身上,两个手各四个再加上脖子上一个。

“高亮的是我们,我们是 xqwjzq!”

posted @ 2024-07-21 18:24  znstz  阅读(281)  评论(1编辑  收藏  举报