求助

P2419 [USACO08JAN] Cow Contest S

位运算// “|”代表只要连上就行(单通路)也就是两者之间有一个通路就表示为通 “&”表示双通路,需要两者都通 这个代码应该可以这么读 ```cpp f[i][j]=(f[i][j]|f[i][k])&f[k][j] ``` 不知道是否对你有用 如有错误请指正,因为我也并不是很会(讨论一下 QAQ
by chrisDLkk @ 2024-03-11 17:29:13


@[chrisDLkk](/user/639288) 上面打错了,应该是```f[i][j]=f[i][j]|(f[i][k]&f[k][j])``` 即要么一开始i已经能赢j,要么i能赢k,k能赢j.
by fishing_fly @ 2024-03-12 21:17:35


但是我认为 ```f[i][k]==1 && f[k][j]==1``` 的作用与 ```f[i][k]&f[k][j]``` 相同
by fishing_fly @ 2024-03-12 21:21:11


@[JP8587cn](/user/713113) 应该是一样的,除非有一些其他赋值的场景(
by chrisDLkk @ 2024-03-14 23:07:27


|