setはメモリ食い
Pythonのsetは1エントリーあたり90バイトも食っている。
10Mエントリー前後でatcoderの1024MBのメモリ制限に引っかかる。 定義域が[0, N)ならnp.zeros(N, np.bool_)がよい。座標圧縮でその形に持ち込むのも良さそう。 code:python
x = set()
for i in range(9_000_000):
x.add(i)
https://gyazo.com/afd0afef705664b82f9b3628c428add9
code:python
import numpy as np
x = np.zeros(9_000_000, np.bool_)
for i in range(9_000_000):
https://gyazo.com/e229d1c6443dd898728e827e4419e730