bitsetの使い方

概要 bit演算子を勉強しようしよう思っていたのですが、以下の問題にぶち当たってようやくやる気になりました。bitsetの使い方がわかればbit演算子の威力がご理解いただけると思う。自分は思い知った。。。 問題 https://atcoder.jp/contests/abc147/tasks/a…

ABC147 D - Xor Sum 4 をPythonで考える

概要 題ではPythonで考えると書きましたが、正確にはPythonではなくPyPy3でACでした。Pythonで通らなくてもPyPyで通ることがたまにある。。。bitsetの有用性に気付いた初めての問題でした。 問題 ABC147 D - Xor Sum 4 方針 dpでとく。dp[i][j]にはA_i番目ま…

pythonでCombinationっぽい探索

#!/usr/bin/env python def make_sub(in_li, pre_li): ans_li = [] result_li = [] total = -1 for main_li in in_li: for index in range(len(main_li)): sub_li = main_li[index+1:] total += 1 if sub_li == []: continue result_li.append(sub_li) for s…

pythonで累乗探索

#!/usr/bin/env python def make_ans(ans_li, stocked_li, input_li): total = -1 result_ans_li = [] result_stocked_li = [] for ans in ans_li: total += 1 for index, i in enumerate(input_li): for stocked in stocked_li[total]: if index == stocked…

累乗探索

長さがnのリストが与えられた時に、そのn個から重複を許してk個選び、k個を並べたリストを列挙する。 具体的には[0, 1, 2]のリスト (n=3) , k=3が与えられた時に、[0, 0, 0], [0, 0, 1], [0, 1, 1], ..., [2, 2, 1], [2, 2, 2]の33個のリストを列挙する。 #!…