結果
問題 | No.74 貯金箱の退屈 |
ユーザー |
![]() |
提出日時 | 2022-10-05 03:57:05 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 42 ms / 5,000 ms |
コード長 | 1,497 bytes |
コンパイル時間 | 266 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 12,160 KB |
最終ジャッジ日時 | 2024-12-30 23:51:35 |
合計ジャッジ時間 | 3,177 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 30 |
ソースコード
import bisectimport copyimport decimalimport fractionsimport heapqimport itertoolsimport mathimport randomimport sysimport timefrom collections import Counter,deque,defaultdictfrom functools import lru_cache,reducefrom heapq import heappush,heappop,heapify,heappushpop,_heappop_max,_heapify_maxdef _heappush_max(heap,item):heap.append(item)heapq._siftdown_max(heap, 0, len(heap)-1)def _heappushpop_max(heap, item):if heap and item < heap[0]:item, heap[0] = heap[0], itemheapq._siftup_max(heap, 0)return itemfrom math import gcd as GCDread=sys.stdin.readreadline=sys.stdin.readlinereadlines=sys.stdin.readlineswrite=sys.stdout.writedef XOR_Basis(lst):xor_basis=[]triangulation=[]for i,x in enumerate(lst):xx=xfor j,xb in enumerate(triangulation):if xx>xx^xb:xx=xx^xbif xx:xor_basis.append(x)for j in range(len(triangulation)):if triangulation[j]^xx<triangulation[j]:triangulation[j]^=xxtriangulation.append(xx)return xor_basis,triangulationN=int(readline())D=list(map(int,readline().split()))lst=[]for i in range(N):x=0x|=1<<(i+D[i])%Nx|=1<<(i-D[i])%Nlst.append(x)_,tria=XOR_Basis(lst)W=0for i,w in enumerate(map(int,readline().split())):W|=(w^1)<<ifor x in sorted(tria,reverse=True):W=min(W,W^x)if W:ans="No"else:ans="Yes"print(ans)