10.18闲话

914 words

10.18 闲话

本来没有写闲话的打算的,但是大家都在写闲话,而且我这个博客已经八百年没更新了,所以我决定瞎写点水一水,顺便展示一下 S2 OieR 良好的精神风貌和健康的精神状态。

日记

我是傻逼。

上午不想写题,给自己博客文章都加了分类(之前一直忘了)。

为什么课间没有人 tankard 启动?

喵了一眼明天安排,发现我明天上午有 ZR,下午还有 CSP 全假模拟,累了,毁灭吧。

快中午的时候头疼加眼睛疼,就差性子疼了,也好,提醒我下午给自己小小放个假。

睡了一下午,什么也不想做,忽然觉得自己是不是太颓废了,于是起床打开了 Visual Studio Code,但是不知道为啥就跳转到 B 站了,一定是电脑搞的鬼。

晚上听着歌打了打各种板子,还是没写题,打完就删,接着打下一个,什么记录也没留,挺好。

感觉越临近考试越是有一种内耗感,好在自己还是能意识到这种感觉,并且给予调节。

啊,明天要面对双重打击了,早点睡了。

我推の歌

“在机房不要戴着耳机听歌”

但我回家了,欸嘿。

WATER ——A39

一曲很不错的电音,虽然许多人认识这首音乐是靠音游,但抛开音游,其独特的曲调和强烈的节奏也值得单曲循环。

Gone Angles ——Mili

带刀神曲(你知道的太多了),婉转凄凉,但主唱声线平静温和,Mili 的音乐常给人一种黑童话的感觉,搭配一个凄美的故事食用效果更佳

口胡式题解

P3629 巡逻

要求在树上加一到两条边使得从 1 号点遍历所有点并回到 1 号点的路程最短,加的边必须被且只被经过一次。

首先是一条边都不加的时候,这是遍历一遍需要把所有边经过两遍(正向一遍,反向一遍),所以初始答案 ans=2×(n1)ans=2×(n1)

接着考虑只加一条边,这一条边会与其他若干边成环,环上的边只用被经过一次,因为从环上某点绕环一周可以回到该点,不会有“回溯”。环上边的数量等于选中两点间边的数量加一,也就是说选中两点 i,ji,j,对答案的贡献是 1dis(i,j)1dis(i,j)。要使贡献绝对值更大,即要使 dis(i,j)dis(i,j) 最大,而树上距离最远的两点即为直径两个端点,所以找到直径即可。

之后考虑加入第二条边,第二条边会再成一个环,此时环上的边有两种可能:原来不在环上和原来在第一个环上。因为新加边必须被经过一次,又因为两条新加边不共环,所以两个环都要被遍历一遍,则原来在第一个环上的边会回退贡献,而原来不在环上的边可以被少走一遍。于是再选中两点 i,ji,j,设 i,ji,j 路径上有 numnum 条边在第一个环,则选 i,ji,j 对答案的贡献为 1(dis(i,j)num)+num1(dis(i,j)num)+num,于是可以将原来在环上边的边权设为 11,再找一遍直径即可。在这里,直径的意义由最长路径扩展到最大贡献。

做法上推荐使用树形 DP,第二次跑直径的时候别忘了初始化负无穷。

Comments
Powered By Valine
v1.5.1