Avatar
Taketo Sano 2/4/2020 7:27 AM
x -> y という頂点の組と辺をセットで消すんですけど,その際に a -> y なる 全ての a に対して,x から生えてる辺を mod 2 で足す,ということをしてます.
7:28 AM
a, x の両方から繋がってる b は辺を消して,x のみ x -> b となってる場合は a -> b とつなぎ直す,という.
7:29 AM
Generator 型で index されてるのが問題なのかと思って,さっき Int-indexed に書き換えてみましたが,それでも速度は変わりませんでした.
7:31 AM
let A = graph.cotargets[y] ?? [] let B = graph.targets[x] ?? [] for a in A where a != x { for b in B where b != y { if graph.targets[a]?.contains(b) ?? false { graph.disconnect(a, b) } else { graph.connect(a, b) } } } こういう風に A, B を外に出すのも試してみたけど変わりません…