2021/5/30

真偽値DPの更新


dp[i+1] ... i番目までに条件を満たすものがあるか

この場合、dp[i + 1]が条件を満たしていなくてもそれ以前のdpが1つでも条件を満たしていればいいので、次のような書き方ができる。

//何らかの操作
dp[i + i] |= dp[i] // |はOR演算子なので、dp[i + 1]またはdp[i]がtrueの場合trueが代入される

こうすると、わざわざフラグを持つ変数を用意しておかなくてもよくなる