結果
| 問題 |
No.1952 xooooooooooor
|
| コンテスト | |
| ユーザー |
titia
|
| 提出日時 | 2022-05-20 22:58:38 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 623 bytes |
| コンパイル時間 | 83 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 10,880 KB |
| 最終ジャッジ日時 | 2024-09-20 09:21:28 |
| 合計ジャッジ時間 | 2,426 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 16 WA * 23 |
ソースコード
import sys
input = sys.stdin.readline
N,M=map(int,input().split())
mod=998244353
if M<=100:
ANS=0
for i in range(M):
ANS^=N*(1<<i)
#print(ANS)
print(ANS%mod)
exit()
S=list(map(int,list(bin(N)[2:])))
A=[S[0]]
for i in range(1,len(S)):
A.append(A[-1]+S[i])
B=[0]*len(S)
B[-1]=S[-1]
for i in range(len(S)-2,-1,-1):
B[i]=B[i+1]+S[i]
ANS=0
#print(S)
#print(A)
#print(B)
for i in range(len(S)):
ANS+=pow(2,i,mod)*(B[-1-i]%2)
#print(bin(ANS))
ANS+=pow(2,i+M-1,mod)*(A[-1-i]%2)
print(ANS)
if B[0]%2==1:
ANS+=pow(2,M-1,mod)-pow(2,len(S),mod)
print(ANS%mod)
titia