关于传递闭包
  • 板块学术版
  • 楼主Acfboy
  • 当前回复28
  • 已保存回复28
  • 发布时间2021/2/13 16:06
  • 上次更新2023/11/5 03:19:31
查看原帖
关于传递闭包
40318
Acfboy楼主2021/2/13 16:06

就是给定一张有向图,问一个点能否到达另一个。

显然,弗洛伊德可以在 O(n3)\mathcal O(n^3) 的时间内解决。

结果校内 OJ 告诉我有更快的做法,能解决 n8×104n \le 8 \times 10^4 的情况!

惊了!这枚举出点对都不够啊!

所以怎么做呢?bfs 未果。

当然输入输出有变化。

f(i,j)f(i,j) 表示 ii 能否到达 jj , 能是 11, 不能是 00

输出 nn 行,第 ii 行一个整数,表示 (j=1nf(i,j)×2(j1)mod64×wj64)mod264\left(\sum\limits_{j=1}^{n} f(i,j)\times 2^{(j-1)\bmod 64}\times w_{\lceil\frac{j}{64}\rceil}\right)\bmod{2^{64}}

2021/2/13 16:06
加载中...