2022.9.21 闲话

歌词部分:

ロストワンの号哭

刃渡り数センチの不信感が
刃长数厘米的不信任感

挙げ句の果て静脉を刺しちゃって
最后的最后还是刺向静脉

病弱な爱が飞び出すもんで
虚弱的爱飞奔而出

レスポールさえも凶器に変えてしまいました
就连电吉他也变成了凶器

ノーフィクション
并非幻想

数学と理科は好きですが
虽然喜欢数学与理科

国语がどうもダメで嫌いでした
国语却因怎么都学不好而感到厌烦

正しいのがどれか悩んでいりゃ
烦恼着哪一个是正确的

どれも不正解というオチでした
结果哪个都不正确

本日の宿题は
今天的作业是

无个性な仆のこと
毫无个性的我要如何

过不足无い 不自由无い
不多不少的 不限制自由的

最近に 生きていて
在最近活下去

でもどうして仆达は
但是为什么我们

时々に いや毎日
不是有时候 而是每天

悲しいって言うんだ
说着好难过啊

寂しいって言うんだ
说着好寂寞啊

黒板のこの汉字が読めますか
黑板上的这个汉字你会读吗

あの子の心像は読めますか
那能解读那个孩子想法吗

その心を黒く染めたのは
将那颗心染成黑色的

おい谁なんだよ おい谁なんだよ
到底是谁啊 到底是谁啊

算盤でこの式が解けますか
能用算盘解开这个式子吗

あの子の首の轮も解けますか
那个孩子脖子上的项圈也能解开吗

仆达このまんまでいいんですか
我们就一直这样也可以吗

おいどうすんだよ もうどうだっていいや
要怎么办才好啊 已经怎么样都无所谓了啊

いつまで経ったって仆达は
不知过了多久的我们都还

ぞんざいな催眠に酔っていて
沉醉于那粗陋的催眠中

どうしようもないくらいの「骄傲」をずっと
无可奈何的「骄傲」也一直

匿っていたんだ
隐藏着啊

昨日の 宿题は
昨天的作业也是

相変わらず 解けないや
和以前一样解不出来啊

过不足无い 不自由无い
不多不少的 不限制自由的

最近に 生きていて
在最近活下去

でもどうして 仆达は
但是为什么我们

胸元の 块は
胸口的这个结块

消えたいって言うんだ
呼喊着想要消失呢

死にたいって言うんだ
呼喊着想要死掉呢

黒板のこの汉字が読めますか
黑板上的这个汉字你会读吗

あの子の心像は読めますか
那能解读那个孩子想法吗

その心を黒く染めたのは
将那颗心染成黑色的

おい谁なんだよ おい谁なんだよ
到底是谁啊 到底是谁啊

算盤でこの式が解けますか
能用算盘解开这个式子吗

あの子の首の轮も解けますか
那个孩子脖子上的项圈也能解开吗

仆达このまんまでいいんですか
我们就一直这样也可以吗

おいどうすんだよ おいどうすんだよ
要怎么办才好啊 要怎么办才好啊

面积比の公式言えますか
能回答出面积比的公式吗

子供の时の梦は言えますか
能回答出小时候的梦想吗

その梦すら沟に舍てたのは
把那个梦想扔进下水道的

おい谁なんだよ もう知ってんだろ
到底是谁啊 其实早就知道了吧

何时になりゃ大人になれますか
我们什么时候才能长大成人啊

そもそも大人とは一体全体なんですか
可是说到底大人究竟又是什么啊

どなたに伺えばいいんですか
又要向谁问才行能知道啊

おいどうすんだよ もうどうだっていいや
要怎样才好啊 已经怎样都好了吧

一大部分人可能是认为这是描述学习压力等,然而呢?

その梦すら沟に舍てたのは
把那个梦想扔进下水道的

おい谁なんだよ もう知ってんだろ
到底是谁啊 其实早就知道了吧

到底是谁啊?其实早就知道了吧。


正文部分:

最终还是回到了闲话的初衷,杂谈感觉才是闲话的真正形态吧 .

Find The Multiset of All Pairs Maxflow

我也不太好描述这个问题是啥 .

后面纯属口胡,可能改日我会实现一下 😃

Find The Multiset of All Pairs Maxflow

给一张 \(n\) 个点 \(m\) 条边的无向图 \(G\),对于任意两点 \(u\neq v\),以 \(u\) 为源点,\(v\) 为汇点的最大流记作 \(\operatorname{maxflow}(u,v)\) .

求对于所有 \(u\neq v\)\(\operatorname{maxflow}(u,v)\) 组成的 multiset .

P.S. 可以证明,不同的 \(\operatorname{maxflow}(u,v)\) 只会有 \(O(n)\) 个 .

对图 \(G\) 建出 Gomory-Hu Tree(GHT),也就是最小割树 . 关于 GHT 的内容见 洛谷 P4897 .

这部分的时间复杂度就是 \(\Theta(n\cdot\operatorname{Maxflow}(n,m))\),其中 \(\operatorname{Maxflow}(n,m) \) 表示 \(n\) 个点 \(m\) 条边的增广路算法求最大流的时间复杂度 .

然后两点间最大流就是最小割,也就是 GHT 上的链 min,注意到链 min 有一个很不错的性质,于是可以用 Kruskal 重构树 .

具体地,将 GHT 上边按边权从大到小排序,在并查集上合并每条边两端点所在集合以及集合大小 .

每次合并 \((u,v)\) 的话就产生 \(\operatorname{size}(u)\cdot \operatorname{size}(v)\) 的贡献,这样丢掉 multiset 里压缩起来就好了 .

边权是整数,word-RAM model 下的排序我们不妨认为可以线性(就比如最近被宇宙射线轰过的 Radix Sort 就是一个不错的实现),毕竟范围很大的情况非常少见就不考虑了 .

这样这部分的时间复杂度就是 \(\Theta(n\alpha(n))\) .

然后如果要码的话感觉就是数据结构叠一起,直接贺就行 .

感觉比朴素 \(\Theta(n^2\log n)\) 树剖暴力也没快多少啊?其实本来也没啥用,在最理想的情况下增广路算法可以达到单次 \(\Theta(n)\)(实例:CERC2015 Juice Junctions,EK 算法),这样 GHT 建树的时间复杂度就是 \(\Theta(n^2)\) .

然后我们施一个奥秘算法使得可以 \(\Theta(n^2)\) 求任意两点间的链 min 即可 . 这样的复杂度是 \(\Theta(n^2)\),和 Kruskal 重构树一样 .

(不要以为我在口胡,奥秘算法是真实存在的,我不知道有没有什么高效算法,我的思路是首先两点链 min 可以拆成两段祖先到儿子的链 min,然后这个可以轻易预处理,LCA 做一个标准的 \(\Theta(n)-\Theta(1)\) LCA 即可,总时间复杂度 \(\Theta(n^2)\)

事实上只有增广路算法时间复杂度为 \(o(n)\) 时才会有用吧 /hsh

但是我觉得这种处理方法还是值得学习的吧 /youl

posted @ 2022-09-21 20:48  Jijidawang  阅读(76)  评论(1编辑  收藏  举报
😅​