Open rsk0315 opened 3 years ago
Mod
みたいな実行時に決まりうる値をトレイトにするの、Mod
っていう限定的な名前にする必要ないね
Distributive
を実装するためのヘルパーがないじゃん
2-SAT のインタフェース、
ts.add_clause(i, -j);
じゃなくて
ts.add_clause((i, true), (j, false));
の方がうれしい?
セグ木とかでよく境界チェックしてるけど、毎回書くんじゃなくて https://doc.rust-lang.org/src/core/panicking.rs.html#67-77 みたいな感じで関数を作っておく方が楽そう
fn panic_bounds_check(by: impl Debug, safe: impl Debug) -> ! {
panic!("index out of bounds: the safe range is {:?} but accessed by {:?}", safe, by)
}
とかみたいな感じで
by: usize, safe: Range<usize>
に限定していい? だめかな
セグ木のアーチのところ、左側.chain(右側) みたいなイテレータを返す内部関数を作っておけば、見かけの実装がきれいになりそう
Vec
を使わないようにもできそうだし片側しか吐かなくていいなら他方はシフトだけしてればいい? だめか、だめだね