海亮寄 7.7
前言
业精于勤荒于嬉,行成于思毁于随
正文(模拟赛)
卦象:平
模拟赛原题来源:You-Know-Where
感受:是 OI 赛制,\(3\) 个小时 \(4\) 道题,分数 \(143/400\)。算是暑假一期集训以来第二次受挫(第一次也是被 CSP 模拟赛薄纱)。今天犯了很多低级失误,果然只有 OI 赛制才能更多地暴露问题。T1 和 T4 寒假做过,但也尽数遗忘,赛时都是现推的。T1 是贪心题目,典型的结论题,硬控自己一个点,时间开销有点大,不过依旧可控。然后扫了一眼后三道题目,T4 做过就先不看,T3 没有读懂题,故决定死磕 T2。写了一个像模像样的 DP 之后,发现样例不过并且偏差很大,然后手模样例却无果,一度认为是题出错了。无法和出题人在 T2 上建立联系,遂放弃。发生上述意外之后,时间仅剩余 70min(最后发现读错题了,感觉赛时的自己还是太幽默了)。试图理解 T3 题意,但失败,无奈去思考 T4 正解。其实正确的做法应该是去搞 T4 的暴力分数,更稳妥一些。但考虑到 T4 寒假见过,不想拘泥于暴力分数,故试图思考正解。5 min 获得正解思路,剩余时间用来实现和调试。中间的过程一波三折,还重构了一次,在最后的 3min 内终于通过编译并且通过样例数据。由于样例比较大,所以当时预计得分 200/400,但实际 143/400。挂分原因是线段树数组仅开了一倍空间,有点忙中出错了(但其实由于这个题目卡常,所以即便空间开对也只能拿 59pts)。审题问题暴露的比较严重,T2 T3 两道题目放弃确实给心态给予了沉重打击,而且也给补题环节带来了极大的痛苦。如果不是脑海里还有一点点关于 T4 解法的印象并且非常幸运地调试成功,可能今天的分数就要和小登们做一桌了
T1
贪心结论题。优先删除子树深度较大的结点。
T2
比较神秘的 DP 期望题,赛时读错题目,补题听讲之后没有理解思路
重整旗鼓之后还是不会,听了墨鱼讲了一遍,疑似会了
每个点独立被选的概率是好求的,随便 DP 即可,记作 \(f_u\)
注意到 \(a_u\) 的只会给子树范围内的结点贡献,换言之 \(u\) 只会接受其祖先的贡献。所以记 \(ans_u\) 表示钦定选择 \(u\) 之后其所有祖先给它贡献的期望分数,然后考虑转移
假设已经有了 \(ans_u\) 和 \(ans_v\)(其中 \(v\) 是 \(u\) 的子结点),试图递推 \(ans_x\)(\(x\) 是 \(v\) 的子结点)。当钦定选择 \(x\) 的时候,\(v\) 一定不会贡献给 \(x\),所以只有 \(u\) 结点会携带着其祖先向 \(x\) 大踏步地贡献过来
注意到另外一个事实,即 \(ans_u\) 表示 \(u\) 被选择,而 \(ans_v\) 恰好对应 \(u\) 不被选择的情况,所以只需要全期望公式弄一下就可以递推出 \(ans_x\)
然而 \(ans_u\) 对应的概率并非 \(f_u\),注意到 \(x\) 钦定被选中,意味着 \(v\) 一定不被选中,所以 \(f_u\) 中间属于 \((1-f_v)\) 的贡献应当被刨除
综上所述,有
那这就是随便维护即可,时间复杂度线性
T3
语文不行呐!
其实读明白题目之后感觉自己一下子大脑清明了许多(当然也有可能是花露水提神醒脑了一下)
下午讲题收获颇丰,因为在午休的时候恶补了一下题意,然后多想了一会,感觉起来很不错
实际上可以通过手模一些连续且性质优秀的下标,观测到一些和 $\log $ 有关的结构,比如倍增
注意到蝴蝶变换可以两块合并,方式形如洗牌
题目形如一个字符串判等,容易想到字符串哈希
所以现在是用倍增数组维护哈希值,然后就没有然后了
可能实现上下标从 \(0\) 开始是需要特别注意的!
T4
赛场上想到的就是正解,但因为线段树空间开小挂分,并且题目卡厂,没有拿到全分
谴责 ban 题人调小时限的行为!
枚举 popcount,或总是越或越大的,与总是越与越小的,所以枚举 popcount 后就容易划分出两个集合,对于临界的部分,发现其存在合法的划分方案的必要条件是 popcount 为临界值的数都相等
剩下的是一些细节问题,因为需要查询区间与值或值,所以开 30 棵线段树维护
(哎,就是这个鬼地方卡常呐)
小结
今天补题非常痛苦,再次证明了审题的重要性
后记
世界孤立我任它奚落
完结撒花!

浙公网安备 33010602011771号