結果
問題 |
No.1493 隣接xor
|
ユーザー |
|
提出日時 | 2021-05-05 14:56:39 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
TLE
|
実行時間 | - |
コード長 | 514 bytes |
コンパイル時間 | 230 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 74,972 KB |
最終ジャッジ日時 | 2024-09-13 08:47:10 |
合計ジャッジ時間 | 5,250 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | TLE * 1 -- * 26 |
ソースコード
from bisect import bisect_left N = int(input()) A = list(map(int, input().split())) M = 10**9+7 B = [] P = 0 D = dict() for i in range(N-1): P ^= A[i] B.append(P) if P in D: D[P].append(i) else: D[P] = [i] dp = [1] + [0] * (N-1) for i in range(N-1): for k, v in D.items(): j = bisect_left(v, i) if j >= len(v): continue dp[v[j]+1] = (dp[v[j]+1] + dp[i]) % M cnt = 0 for i in range(N): cnt = (cnt + dp[i]) % M print(cnt)