前提
N個の2進数が与えられ、すべての排他的論理和を求める問題で、TLEが出ています。
TLEが出ない方法はありませんか?
制約
1 <= N <= 100
1 <= 2進数の大きさ <= 2 ** 1000
追記
TLEの上限は5秒間です
実現したいこと
TLEが出ないコードにしたい
発生している問題・エラーメッセージ
Time Limit Error
該当のソースコード
Python
1from sys import stdin 2n = int(input()) 3lis = sorted([int(stdin.readline()[:-1], 2) for _ in range(n)]) 4x = 0 5for i in lis: 6 x ^= i 7print(x))
試したこと
各桁の1の出現回数が奇数かどうかでその桁を1にするか0にするかを判定するやり方も試しましたがだめでした
追記
上記の処理を実装したコードです
Python
1from collections import defaultdict 2n = int(input()) 3dic = defaultdict(int) 4for _ in range(n): 5 arg = input() 6 for i in range(len(arg)): 7 if arg[i] == '1': 8 dic[len(arg) - i] += 1 9x = 0 10for i in dic.keys(): 11 if dic[i] % 2 == 1: 12 x += 2 ** (i - 1) 13print(x)
補足情報(FW/ツールのバージョンなど)
Python3.7.4
###補足:今回の問題について
皆さん協力ありがとうございます!
関係ないと思って書いてませんでしたが、答えを2のx乗で求めて10**9+7で割った余りを出す処理に問題がありました
pow関数を呼び出して処理を実行すると無事時間内に出来ました!

回答2件
あなたの回答
tips
プレビュー