2023-05-18 何気ないことを書くためのリハビリ / EDPC H を解いた
普段の何気ないことを書けなくなっているのでリハビリを続けている。
https://iris.to/note1kzdtrdxfm9rsdnrl94y60dlj2c32aa7p0e9vxcl6na3p3mchle7q7x24fm
今日は expo-file-system でイベントをローカルにキャッシュするよう実装してみた。 expo-file-system を使ったのは @react-native-async-storage/async-storage だと容量の上限が 6 MB で小さすぎるように感じたので。実際には 6 MB で十分そうだけど、いろいろ試してみるほうが楽しいからね。
まだリモートから取得するときに差分を取得するようになっていないので性能は落ちている。明日はそこからかな。
自虐的なことを書きそうになったので消した。寝よう。
- EDPC H - Grid 1 (Educational DP Contest H問題)
https://atcoder.jp/contests/dp/tasks/dp_h
- https://atcoder.jp/contests/dp/submissions/41498620
- 昨日の ABC129 C の踏んではいけない足場つきカエル問題を二次元にしたもの
- 遷移が右か下なので
for i in 0..h { for j in 0..w { ... } }
という順で更新していけば良い
use modint::ModInt1000000007 as ModInt;
use proconio::{input, marker::Chars};
fn main() {
input! {
h: usize,
w: usize,
a: [Chars; h],
}
let mut dp = vec![vec![ModInt::new(0); w]; h];
dp[0][0] = ModInt::new(1);
for i in 0..h {
for j in 0..w {
if j + 1 < w && a[i][j + 1] == '.' {
dp[i][j + 1] = dp[i][j + 1] + dp[i][j];
}
if i + 1 < h && a[i + 1][j] == '.' {
dp[i + 1][j] = dp[i + 1][j] + dp[i][j];
}
}
}
let ans = dp[h - 1][w - 1];
println!("{}", ans);
}
// modint
今日のコミット。