提出 #36438357


ソースコード 拡げる

mod=998244353

M=(10**5)*3+1 
fac=[1]*M
ninv=[1]*M
finv=[1]*M
for i in range(2,M):
  fac[i]=fac[i-1]*i%mod
  ninv[i]=(-(mod//i)*ninv[mod%i])%mod
  finv[i]=finv[i-1]*ninv[i]%mod

def binom(n,k):
  if n<0 or k<0:
    return 0
  if k>n:
    return 0
  return (fac[n]*finv[k]%mod)*finv[n-k]%mod

from sys import stdin
input=lambda :stdin.readline()[:-1]

n,m,k=map(int,input().split())
edge=[[] for i in range(n)]
for _ in range(m):
  v,u=map(lambda x:int(x)-1,input().split())
  edge[v].append(u)
  edge[u].append(v)

c=list(map(int,input().split()))

ans=0
dp0=[0]*n
dp1=[0]*n
dp2=[0]*n
dp0[0]=1

for _ in range(k):
  ndp0=[0]*n
  ndp1=[0]*n
  ndp2=[0]*n
  
  for i in range(n):
    s=len(edge[i])
    for to in edge[i]:
      ndp0[to]+=dp0[i]*ninv[s]
      ndp1[to]+=dp1[i]*ninv[s]
      ndp2[to]+=dp2[i]*ninv[s]
  
  for i in range(n):
    ndp0[i]%=mod
    ndp1[i]%=mod
    ndp2[i]%=mod
    if c[i]==0:
      ndp2[i]+=2*ndp1[i]+ndp0[i]
      ndp2[i]%=mod
      ndp1[i]+=ndp0[i]
      ndp1[i]%=mod
    else:
      ans+=ndp2[i]
      ans%=mod
  
  dp0=ndp0
  dp1=ndp1
  dp2=ndp2
  #print(dp0,dp1,dp2)

print(ans%mod)

提出情報

提出日時
問題 G - Random Walk to Millionaire
ユーザ toam
言語 PyPy3 (7.3.0)
得点 600
コード長 1180 Byte
結果 AC
実行時間 1635 ms
メモリ 105168 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 600 / 600
結果
AC × 2
AC × 35
セット名 テストケース
Sample example0.txt, example1.txt
All 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, example0.txt, example1.txt
ケース名 結果 実行時間 メモリ
000.txt AC 102 ms 81180 KiB
001.txt AC 90 ms 81400 KiB
002.txt AC 89 ms 81676 KiB
003.txt AC 91 ms 80836 KiB
004.txt AC 98 ms 82008 KiB
005.txt AC 86 ms 81576 KiB
006.txt AC 671 ms 88484 KiB
007.txt AC 697 ms 88452 KiB
008.txt AC 580 ms 87624 KiB
009.txt AC 580 ms 87464 KiB
010.txt AC 537 ms 87552 KiB
011.txt AC 545 ms 87828 KiB
012.txt AC 543 ms 87732 KiB
013.txt AC 624 ms 88344 KiB
014.txt AC 632 ms 87992 KiB
015.txt AC 1625 ms 104956 KiB
016.txt AC 1635 ms 105168 KiB
017.txt AC 717 ms 86804 KiB
018.txt AC 679 ms 88248 KiB
019.txt AC 127 ms 82280 KiB
020.txt AC 832 ms 102960 KiB
021.txt AC 393 ms 85052 KiB
022.txt AC 394 ms 83580 KiB
023.txt AC 548 ms 85136 KiB
024.txt AC 175 ms 82032 KiB
025.txt AC 403 ms 84632 KiB
026.txt AC 675 ms 86596 KiB
027.txt AC 605 ms 83636 KiB
028.txt AC 440 ms 84244 KiB
029.txt AC 491 ms 84448 KiB
030.txt AC 347 ms 82444 KiB
031.txt AC 372 ms 83028 KiB
032.txt AC 341 ms 82628 KiB
example0.txt AC 67 ms 71720 KiB
example1.txt AC 69 ms 72340 KiB