上の子が暗い場所などを怖がりはじめた。以前は平気だったのになあ。不思議なもんだ。
下の子は 1 時間おきに問い合わせればトイレに行けるらしい。それは行けると言えるのか?
- Matching (Educational DP Contest:O問題)
https://atcoder.jp/contests/dp/tasks/dp_o
- https://atcoder.jp/contests/dp/submissions/42297703
- 解説 AC
- DP
- 流れ的に bit を使った DP なのは分かるものの遷移 (更新順序) が分からず
bits.count_ones()
を使ってi
を表現すれば良いみたい……以前見たことある気がするけどまったく見えなかった
use proconio::input; fn main() { input! { n: usize, a: [[usize; n]; n], } let modp = 1_000_000_007_usize; let mut dp = vec![0_usize; 1 << n]; dp[0] = 1_usize; for set in 1_usize..1 << n { let i = (set.count_ones() - 1) as usize; for j in 0..n { if a[i][j] == 1 && (set & (1 << j)) != 0 { dp[set] += dp[set ^ (1 << j)]; dp[set] %= modp; } } } let ans = dp[(1 << n) - 1]; println!("{}", ans); }
今日のコミット。
- tsukota 1 commit
- rust-atcoder 1 commit