結果
問題 | No.1142 XOR と XOR |
ユーザー |
![]() |
提出日時 | 2025-03-20 21:11:01 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,853 bytes |
コンパイル時間 | 460 ms |
コンパイル使用メモリ | 82,400 KB |
実行使用メモリ | 163,444 KB |
最終ジャッジ日時 | 2025-03-20 21:11:12 |
合計ジャッジ時間 | 4,951 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | TLE * 2 -- * 23 |
ソースコード
MOD = 10**9 + 7def main():import sysinput = sys.stdin.read().split()idx = 0N = int(input[idx]); idx +=1M = int(input[idx]); idx +=1K = int(input[idx]); idx +=1a = list(map(int, input[idx:idx+N]))idx +=Nb = list(map(int, input[idx:idx+M]))idx +=M# Compute prefix XOR for apre_a = [0] * (N+1)for i in range(1, N+1):pre_a[i] = pre_a[i-1] ^ a[i-1]# Compute prefix XOR for bpre_b = [0] * (M+1)for i in range(1, M+1):pre_b[i] = pre_b[i-1] ^ b[i-1]# Calculate counter_acounter_a = [0] * 1024map_a = [0] * 1024map_a[pre_a[0]] += 1 # pre_a[0] =0for i in range(1, N+1):current = pre_a[i]temp_counter = [0] * 1024for x in range(1024):if map_a[x] == 0:continuexor_val = current ^ xtemp_counter[xor_val] += map_a[x]# Update counter_afor x in range(1024):counter_a[x] = (counter_a[x] + temp_counter[x]) % MOD# Update map_amap_a[current] += 1# Calculate counter_bcounter_b = [0] * 1024map_b = [0] * 1024map_b[pre_b[0]] += 1 # pre_b[0] =0for i in range(1, M+1):current = pre_b[i]temp_counter = [0] * 1024for x in range(1024):if map_b[x] == 0:continuexor_val = current ^ xtemp_counter[xor_val] += map_b[x]# Update counter_bfor x in range(1024):counter_b[x] = (counter_b[x] + temp_counter[x]) % MOD# Update map_bmap_b[current] += 1# Calculate the answerans = 0for x in range(1024):y = x ^ Kans = (ans + counter_a[x] * counter_b[y]) % MODprint(ans % MOD)if __name__ == '__main__':main()