发布于 ,更新于 

2023.8.10 闲话

在四机房尝试了一下双显示器(笔记本+机房显示器)

机房屏幕是真大,但是 dpi 太低了。将近 1.5 倍的尺寸于我的笔记本,但是 dpi 我的笔记本是机房显示器的 1.25 倍,实际观感要差的很多。

所以说啊,拯救字体渲染的最好方式还是换高 dpi 显示屏。

但是我觉得微软雅黑真是一坨大便。


学习 jijidawangcrimson000 进行一个推歌。

MY Heart Rate —— あよ,专辑:森羅万象《シンクロ2》

ayo 牛逼,没得说。

这首歌总能带来一些轻松的感觉呢,想必是编曲的时候考虑到灵梦日常的无聊心情吧(笑)

另外,Heart Rate 用比较 Japanglish 的口音读的话,应该能发现这是 はくれい(Hakurei)的谐音。


改天需要把 dotfile 分享一下了,还有安装指南的坑没填

pacman 实在是太好用了


改了 T2,因为这题能体现出来长时间摆烂让我的思维脱离了“OI”。

题面

首先看到题目要求断两条边,应当能够立刻想到暴力:\(n^2\) 枚举两条边。

但是我他妈没想到,我直接找的重心,导致这题就算不绑包我也就过了一个点。

枚举应当是最基本的东西,但是我没想到,说明我状态还没回来。
希望能尽快吧。

然后走向玄学乱搞。

这题显然不是让你找到一个点然后乱搞出分割方案的,因为要断两条边,所以找一个点的方式应当排除。

考虑枚举一条边,另一条边用根号或者 \(\log\) 的时间复杂度搞出来。

考虑当你枚举断掉一条边的时候,也就是拎出来了一棵子树,树的剩下的部分怎么选比较合适?显然是把它们切成一半。

于是大体思路形成:dfs,到每个节点的时候将这棵树从当前节点的父边断开,然后形成了两棵树,形如 Archlabs 的 logo。

开两个 std::multiset<int> 维护 dfs 过程中遍历过的所有子树的大小。

为啥是两个呢,对于 \(u\) 的父节点,其 \(siz\) 是包含 \(siz_u\) 的,所以对于 \(u\) 的祖先节点的 \(siz\) 需要单独维护一个集合。

然后对于这两种子树,分别利用 std::multiset<int>::lower_bound 找到最接近该树一半大小的子树,然后比大小更新答案。大于小于不知道哪个更接近的话,两个都判一下就完事了。


tho 和 thu,一个都去不了,这就是独属于我的悲伤吧。


闲话不够多,以后改进。