Pixel 5 を買った。 2 台目。 Pixel 7a や 8 が小さいものになるならたぶん買わなくていいんだろうけど……不安なので買っておくことにした。
ABC156 : AtCoder Beginner Contest 156 の A, B, C, D を解いた。
- A - Beginner
https://atcoder.jp/contests/abc156/tasks/abc156_a
- 提出: https://atcoder.jp/contests/abc156/submissions/39559789
if n >= 10 { r } else { r + (100 * (10 - n)) }
- B - Digits
https://atcoder.jp/contests/abc156/tasks/abc156_b
- 提出: https://atcoder.jp/contests/abc156/submissions/39559817
- 手で計算するときは K で割って余りを残していく、その要領で割れる回数が答えになる
- C - Rally
https://atcoder.jp/contests/abc156/tasks/abc156_c
- 提出: https://atcoder.jp/contests/abc156/submissions/39559873
- 座標 P は
1..=100
なのですべて試して最も小さいものが答えになる
- D - Bouquet
https://atcoder.jp/contests/abc156/tasks/abc156_d
- 提出: https://atcoder.jp/contests/abc156/submissions/39560237
- 全体が
2^N-1
になる (各花を取る取らない、 0 本のケースを除く) - a 本になるのは
N choose a
- b 本になるのも同様に
N choose b
- 全体から a 本のケースと b 本のケースを除けば答えになる
N choose x
の箇所で冗長なことをしてしまっている
use modint::ModInt1000000007 as ModInt; use proconio::input; fn main() { input! { n: usize, a: usize, b: usize, }; let all = ModInt::new(2).pow(n as u64) - 1; let mut v_a = ModInt::new(1); for i in 0..a { v_a *= ModInt::new(n) - i; } for i in 1..=a { v_a /= i; } let mut v_b = ModInt::new(1); for i in 0..b { v_b *= ModInt::new(n) - i; } for i in 1..=b { v_b /= i; } let ans = all - v_a - v_b; println!("{}", ans); } // modint
『 ゆめフロ ランチの会 #11 』 https://yumemi.connpass.com/event/277423/ に参加した。Jest の高速化についての記事を読んでいた。
Expo のチュートリアル https://docs.expo.dev/tutorial/introduction/ を進めている。明日には終わる。
今日のコミット。
- rust-sandbox 1 commit
- rust-atcoder 1 commit