Day 1
什么?今天要比赛?毫无心理准备,害怕场上板子打不出来。
果断开题。
A是大水题,切掉。测了一下大样例,过了,就没有多管。
B貌似并不难,直接 即可,期望得分 分。
然后看C,我们可以直接 暴力,另外特判一下链的情况即可。期望得分 分。
看来 是我啦!开心……
待会儿测大样例有你好受的
大样例没过,而答案却偏小?什么鬼?
并不慌地自造了一个样例,果然没过。经过简单的检查,发现——本题一个人不能被多次援救!如果你援救了同一个人正好 此,那你会认为所有人都被援救了!
所以显然简单 不行。经过简单的思考,开始打暴力。
暴力打了 分钟,代码才写了 行(太菜了),于是删掉了暴力代码,去看 。
反正没事, 应该没什么问题, 应该也有一个好名次。
但是 又炸了!
什么鬼啊,回去看了一眼,立即发现——
没有正确特判那两个条件。
然后在草稿纸上画了半小时,无果,放弃。
回去只好搞 ,并没有发现什么问题。最后,难受地交了。
我太菜了,
永远不是我了
期望得分:
实际得分:
。
(
,只不过是倒数的)
我 不知道我在干啥!!!
唉,如果要比菜的话,那我能吊打天下所有人。
Day 1.5
巨佬讲题。
T1
我们考虑开桶。对于每一个 ,我们在桶中找到是 倍数的数有多少个,记这个值为 ,显然这些数的最大公约数一定不小于 ;然后,对于每次询问的值 ,我们只需要找到 不小于 的所有 中的最大值,我们可以通过简单的预处理完成。时间复杂度为调和级数,时间复杂度 ,其中 。
这不就是我思路吗?
于是,怒喊改分数。讲课的 神犇看了看我的代码,接着说了一句话:
“ 没有 快啊”
看了一眼我的代码,发现竟然sb地用cout输出了 个数?!!快读记住了,快输却忘记了!还有谁比我菜???!!!
心态炸了,唉……
T2
对于每一个 ,我们跑一遍 。然后,我们就可以直接上 了。
状态转移就是状压的套路式:
状态设计: 目前到了 这个节点, 表示各个节点是否到达过的二进制状压数。
状态转移: ,其中 表示在二进制数 中 的个数, 表示 到 的最短路径的长度。
总时间复杂度 。
听完之后茅塞顿开。唉,这么水的题都做不出来了,要 预定了。
T3
对我表示无语。
首先,在考场上写了 链的部分分,特别好写,前缀和维护 行写完。但是,犯了一个 错误——每次我们单点修改的是节点 ,而不是 !
然后,听了 巨佬讲题。
我们可以发现,对于一条链 ,能够扩展出这条链的链一定走了 的到 的子边。我们每次单点修改即可。
考虑查询,假设我们枚举到的链是 ,那么所能扩展出来的节点数量就是 到 的路径上各边权之和,这个显然可以用前缀和 预处理+ 查询完成。
总时间复杂度 ,若用 求 ,可以将时间复杂度优化为 。
Day 2
总结一波。
本场比赛中途过于骄傲,自以为已有 分(话说我真的好二五)。事实上,思路都是胡扯,另外 还忘记了卡常,sb地使用了 。
想吃屎,唉