結果
問題 |
No.3255 01 Matrix Counting
|
ユーザー |
|
提出日時 | 2025-09-05 23:13:52 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 41 ms / 2,000 ms |
コード長 | 1,378 bytes |
コンパイル時間 | 484 ms |
コンパイル使用メモリ | 82,376 KB |
実行使用メモリ | 53,776 KB |
最終ジャッジ日時 | 2025-09-05 23:13:55 |
合計ジャッジ時間 | 1,831 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 14 |
ソースコード
# n, m = map(int, input().split()) # ans = 0 # for bits in range(1 << (n*m)): # mat = [[0]*m for _ in range(n)] # for i in range(n): # for j in range(m): # if (bits >> (i*m+j)) & 1: # mat[i][j] = 1 # f = True # for i in range(n-1): # for j in range(m-1): # sm1 = 0 # sm2 = 0 # # (0,0)→(i,j)の和 # for y in range(i+1): # for x in range(j+1): # sm1 += mat[y][x] # # (i+1, j+1)→(n-1,m-1)の和 # for y in range(i+1, n): # for x in range(j+1, m): # sm2 += mat[y][x] # if sm1 % 2 == sm2 % 2: # f = False # if f: # ans += 1 # print(ans) # ×2 # 1 1→2 # 1 2→4 # 1 3→8 # 1 4→16 # 1 5→32 # ×2 # 2 2→8 # 2 3→16 # 2 4→32 # 2 5→64 # ×4 # 3 3→64 # 3 4→256 # 3 5→1024 # ×8 # 4 4→2048 # 4 5→16384 # n<m # 1: 2 2 2 2... # 2: 2 2 2 2... # 3: 2 4 4 4... # 4: 2 8 8 8... # n-1回繰り返す. # 2^max(1, n-1) n, m = map(int, input().split()) if n > m: n, m = m, n # (1, m)まで行く. ans = pow(2, m, 998244353) if n == 1: print(ans) exit() if n == 2: print(ans*2 % 998244353) exit() ans *= 2 ans %= 998244353 ans *= pow(pow(2, m-1, 998244353), n-2, 998244353) ans %= 998244353 print(ans)