Submission #36571934


Source Code Expand

#include <bits/stdc++.h>
#include <atcoder/modint>
const int MOD=998244353;
using mint = atcoder::static_modint<MOD>;
using namespace std;
#define rep(i,a,n) for (int i=a;i<(int)n;i++)
#define per(i,a,n) for (int i=n;i-->(int)a;)
int read(){int r;scanf("%d",&r);return r;}

vector<int> G[3010];
int c[3010];

mint dp[3010][3010][2][2];// dp[i次移动][停止在j]
                          // [0][0] 用于(v,v), [0][1] 用于(v,\neq v), [1][0] 用于(\neq v,v),[1][1]:(\neq v,\neq v)
mint dinv[3010]; // 1/du[i]
int main(){
  int n=read();
  int m=read();
  int k=read();
  rep(i,1,m+1){
    int u=read();
    int v=read();
    G[u].push_back(v);
    G[v].push_back(u);
  }
  rep(i,1,n+1) c[i] = read();
  rep(i,1,n+1) dinv[i] = mint(G[i].size()).inv();

  dp[0][1][0][0] = 1;
  rep(i,0,k) rep(u,1,n+1) rep(a,0,2) rep(b,0,2) for(auto v: G[u]) rep(na,a,2) rep(nb,b,2){ // na >= a, nb >= b
    if(c[v] == 0 || (na==a && nb==b)) dp[i+1][v][na][nb] += dp[i][u][a][b] * dinv[u];
  }
  mint ans = 0;
  rep(i,1,k+1)rep(j,1,n+1) if(c[j]) ans += dp[i][j][1][1];
  printf("%d\n",ans.val());
  return 0;
}

Submission Info

Submission Time
Task G - Random Walk to Millionaire
User cromarmot
Language C++ (GCC 9.2.1)
Score 600
Code Size 1097 Byte
Status AC
Exec Time 822 ms
Memory 145500 KiB

Compile Error

./Main.cpp: In function ‘int read()’:
./Main.cpp:8:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    8 | int read(){int r;scanf("%d",&r);return r;}
      |                  ~~~~~^~~~~~~~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 2
AC × 35
Set Name Test Cases
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
Case Name Status Exec Time Memory
000.txt AC 93 ms 145196 KiB
001.txt AC 93 ms 145308 KiB
002.txt AC 87 ms 145192 KiB
003.txt AC 94 ms 145316 KiB
004.txt AC 92 ms 145284 KiB
005.txt AC 91 ms 145252 KiB
006.txt AC 597 ms 145412 KiB
007.txt AC 600 ms 145452 KiB
008.txt AC 500 ms 145460 KiB
009.txt AC 503 ms 145300 KiB
010.txt AC 485 ms 145332 KiB
011.txt AC 480 ms 145460 KiB
012.txt AC 479 ms 145424 KiB
013.txt AC 692 ms 145384 KiB
014.txt AC 694 ms 145436 KiB
015.txt AC 713 ms 145288 KiB
016.txt AC 712 ms 145292 KiB
017.txt AC 731 ms 145460 KiB
018.txt AC 732 ms 145332 KiB
019.txt AC 170 ms 145256 KiB
020.txt AC 305 ms 145476 KiB
021.txt AC 411 ms 145412 KiB
022.txt AC 573 ms 145264 KiB
023.txt AC 553 ms 145500 KiB
024.txt AC 165 ms 145356 KiB
025.txt AC 382 ms 145388 KiB
026.txt AC 731 ms 145460 KiB
027.txt AC 739 ms 145432 KiB
028.txt AC 527 ms 145360 KiB
029.txt AC 719 ms 145424 KiB
030.txt AC 816 ms 145416 KiB
031.txt AC 814 ms 145328 KiB
032.txt AC 822 ms 145324 KiB
example0.txt AC 92 ms 145424 KiB
example1.txt AC 90 ms 145232 KiB