結果
| 問題 |
No.2531 Coloring Vertices on Namori
|
| コンテスト | |
| ユーザー |
timi
|
| 提出日時 | 2024-02-13 15:52:48 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 392 ms / 2,000 ms |
| コード長 | 648 bytes |
| コンパイル時間 | 233 ms |
| コンパイル使用メモリ | 82,416 KB |
| 実行使用メモリ | 129,248 KB |
| 最終ジャッジ日時 | 2024-09-28 18:30:37 |
| 合計ジャッジ時間 | 10,982 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 31 |
ソースコード
N,K=map(int, input().split())
D=[[] for i in range(N)]
E=[0]*N
for i in range(N):
u,v=map(int, input().split())
u-=1;v-=1
D[u].append(v);D[v].append(u)
E[u]+=1;E[v]+=1
from collections import deque
d=deque();V=[-1]*N
for i in range(N):
if E[i]==1:
d.append(i)
V[i]=1
while d:
now=d.popleft()
E[now]-=1
for nex in D[now]:
if V[nex]==-1:
E[nex]-=1
if E[nex]==1:
V[nex]=0
d.append(nex)
mod=998244353
e=sum(E)//2
dp1=[1];dp2=[0]
for i in range(e-1):
p,q=dp1[-1],dp2[-1]
dp1.append(q)
c=p*(K-1)+q*(K-2)
dp2.append(c%mod)
ans=dp2[-1]*K
ans%=mod
ans*=pow(K-1,N-e,mod)
ans%=mod
print(ans)
timi