代码源 NOIP 模拟赛 Day 11

我怎么这么菜啊,无语。

赛时

开 T1,刚读完题,准备想一下,因为据我经验,不可能很快切掉。

无意间发现 Heldivis 10 min 过了,意识到可能是诈骗/简单巨难题。

发现 \(k\) 就是最短路长度。对于非最短路径,只要保证赋有 \(1\sim k\) 的权值就行了。

对于边 \((u,v)\),边权赋为 \(\min(dis_u,dis_v)\bmod k\) 就行了,特判一下 \(\bmod k=0\) 的情况。

8:29 过了大样例,提交。

开 T2,发现 \(O(nq)\)\(30\) pts 做法是送的。

考虑优化,想想每个数贡献了哪些区间,发现这个东西很难维护。

然后不会了。

直觉告诉我,只要会了不带修的问题,稍微改一下就能成为带修的,一般是上个数据结构。

但是我想不出来。

罚坐 1.5 h。

开 T3,发现好像会了 \(n\le 100\) 的,但是细节差一些。口胡的 \(n\le 10\) 复杂度又不对,唉。

开 T4,没啥思路,写一个 \(2^n\times 2^m\) 的。花 20 min 写了个,过了样例,预估 15 分。

T3 又想了想,写了个复杂度很不对的爆搜,没办法。样例太小所以跑的飞快,希望数据水一些。

再次冲 T2。

终于在 11:30 会了不带修的做法,是个二阶差分,可以做到 \(O(n+q)\)

10 min 写完,又有了 \(20\) 分。

想要转成正解似乎需要上个 set,还需要删去一些贡献,再加上一些贡献。

开始写,但是有点晕了。12:00 还没写完。

虽然我的时间还有 \(20\) min,但是我放弃了,我选择吃饭。

吃饭时向另外两个不会 T2 的同学描述了我的思路,感觉很对。

细想了一下还需要一个 Fenwick Tree。

然后 12:30 回来开始写 T2,20 min 写完了并过了大样例。

但是由于题目原因不开放提交。

14:00 多支持提交了,过了,并且跑的很快,吊打线段树大常数。

讲题

T3 正解是观察出一些性质,然后转移。但是细节有点多。

T4 子集卷积,不会。

总结

还是要敢去写,敢去想。数据结构的题目一般思维难度都不是太高。

爆搜复杂度完全没有保证还是不要写了,不如去写暴力 DP。

ps:上次代码源有个 T3 爆搜 + 剪枝拿了 \(57\) 分,感觉良好

posted @ 2024-11-19 21:12  zhujiangyuan  阅读(63)  评论(0)    收藏  举报