2023-06-02 明日は PAST / typical90 H を解いた
明日は PAST を受けるつもりで居る。なんだか疲れている。
Firebase Emulator で functions がうまく読み込まれないと思ったら .env
を指定し忘れていただけだった。
- typical90 H - AtCounter (競プロ典型90問:008)
https://atcoder.jp/contests/typical90/tasks/typical90_h
- https://atcoder.jp/contests/typical90/submissions/41914224
- DP
- 手を抜いて modint を使わなかったら % p の位置を間違えて 2WA
use proconio::{input, marker::Chars};
fn main() {
input! {
n: usize,
s: Chars,
}
let p = 1_000_000_007;
let t = "atcoder".chars().collect::<Vec<char>>();
let mut dp = vec![vec![0; t.len() + 1]; n + 1];
dp[0][0] = 1_usize;
for (i, s_i) in s.iter().copied().enumerate() {
for (j, t_j) in t.iter().copied().enumerate() {
dp[i + 1][j] += dp[i][j];
dp[i + 1][j] %= p;
if s_i == t_j {
dp[i + 1][j + 1] += dp[i][j];
dp[i + 1][j + 1] %= p;
}
}
dp[i + 1][t.len()] += dp[i][t.len()];
dp[i + 1][t.len()] %= p;
}
let ans = dp[n][t.len()];
println!("{}", ans);
}
今日のコミット。
- tsukota 1 commit
- rust-atcoder 1 commit