Day1
T1是一个x×yx\times yx×y的坐标区域,要求从(0,0)(0,0)(0,0)走到(x,y)(x,y)(x,y)离特殊点最近的距离最大。
大概就是一个左上联通右下的问题,一开始想二分,时限太卡可能过不去,于是就想最小生成树,以特殊点之间的距离/2为边权,左上联通右下时就是答案。
T2是找环套树两点最小距离最大,找出环后再环上随便处理一下,用单调队列或数据结构可以维护。
T3树dp+一些结论,比赛时没想出来。
注意到每条边最多贡献两次,转移时就以这个为考虑根据。设FxF_xFx表示从xxx点走完子树走回xxx点的最小权值。考虑一个儿子yyy,设vvv为x−>yx->yx−>y的权值,当vvv贡献两次时,FyF_yFy可以直接转移。当vvv只贡献一次时,则说明要在xxx点设传送门,往下走到yyy点,然后走到底再走回yyy,如此往复,最后在一个叶子处传送回xxx。考虑yyy子树内哪些边是不用走两次的,即从yyy开始往下的最长链,直接转移即可。
总结
T3没分比较吃亏,T2也少考虑一种情况少了5分,总体来说一般。
Day2
T1裸的dp,开始看错题,最后没判-1,还因为读入格式在老爷机上爆0了。
T2树上求k个点组成连通块权值和,可以建虚树但没打,用类似的思想打了链剖,最后跑得贼快。
T3想错题,缩了边双联通分量,导致只有树的40分。
总结
OJ上两天总分400多,不是很高,然而机子上少了许多分,是平常编译警告没开够的原因,以后要特别注意。

本文分享了算法竞赛中的解题策略,包括最小生成树、树DP、环套树问题的解决思路,以及裸DP、树上求连通块权值和、缩边双联通分量等技巧。作者反思了比赛中的失误,强调了细节处理和编译警告的重要性。
594

被折叠的 条评论
为什么被折叠?



