結果
| 問題 |
No.2531 Coloring Vertices on Namori
|
| コンテスト | |
| ユーザー |
PNJ
|
| 提出日時 | 2023-11-25 02:36:08 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 441 ms / 2,000 ms |
| コード長 | 639 bytes |
| コンパイル時間 | 486 ms |
| コンパイル使用メモリ | 82,156 KB |
| 実行使用メモリ | 120,420 KB |
| 最終ジャッジ日時 | 2024-09-26 10:09:46 |
| 合計ジャッジ時間 | 11,322 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 31 |
ソースコード
N,K = map(int,input().split())
G = [[] for i in range(N)]
d = [0 for i in range(N)]
mod = 998244353
for i in range(N):
u,v = map(int,input().split())
G[u-1].append(v-1)
G[v-1].append(u-1)
d[u-1] += 1
d[v-1] += 1
H = []
for u in range(N):
if d[u] == 1:
H.append(u)
c = 0
while len(H):
u = H.pop()
for v in G[u]:
d[v] -= 1
if d[v] == 1:
H.append(v)
c += 1
ans = pow(K-1,c,mod)
r = N - c
dp = [[0,0] for i in range(r)]
dp[0][1] = K
for i in range(r-1):
dp[i+1][0] += (K-2) * sum(dp[i]) + dp[i][1]
dp[i+1][0] %= mod
dp[i+1][1] += dp[i][0]
dp[i+1][1] %= mod
ans *= dp[-1][0]
ans %= mod
print(ans)
PNJ