結果
問題 | No.2430 Damage Zone |
ユーザー | noya2 |
提出日時 | 2023-08-13 02:00:40 |
言語 | C++17(gcc12) (gcc 12.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 20 ms / 2,000 ms |
コード長 | 812 bytes |
コンパイル時間 | 2,575 ms |
コンパイル使用メモリ | 211,392 KB |
実行使用メモリ | 11,776 KB |
最終ジャッジ日時 | 2024-11-20 18:22:19 |
合計ジャッジ時間 | 3,701 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 28 |
ソースコード
#include<bits/stdc++.h> #include<atcoder/modint> using namespace std; using mint = atcoder::modint998244353; int main(){ int h, w, k; cin >> h >> w >> k; vector<string> a(h); for (int i = 0; i < h; i++) cin >> a[i]; vector dp(h+1,vector(w+1,vector<mint>(k+1,0))); dp[0][0][0] = 1; for (int x = 0; x < h; x++) for (int y = 0; y < w; y++) for (int i = 0; i < k; i++){ if (x != h-1 && a[x+1][y] != '#'){ int j = i + (a[x+1][y] == 'o' ? 1 : 0); dp[x+1][y][j] += dp[x][y][i]; } if (y != w-1 && a[x][y+1] != '#'){ int j = i + (a[x][y+1] == 'o' ? 1 : 0); dp[x][y+1][j] += dp[x][y][i]; } } mint ans = 0; for (int i = 0; i < k; i++){ ans += dp[h-1][w-1][i]; } cout << ans.val() << endl; }