blog.bouzuya.net

2022-03-14 アルゴリズムと数学 演習問題集 084, 085 を解いた

アルゴリズムと数学 演習問題集 084 - Sqrt Inequality を解いた。

問題: https://atcoder.jp/contests/math-and-algorithm/tasks/panasonic2020_c

パナソニックプログラミングコンテスト 2020 の C - Sqrt Inequality (https://atcoder.jp/contests/panasonic2020/tasks/panasonic2020_c) と同じ問題だ。

素朴にルートを計算すると浮動小数点数になってしまい精度の問題が出る。そこで式変形してルートを外す。両辺を二乗して a + b + 2 \sqrt{ab} < c 。移項してさらに二乗 4ab < (c - (a + b))^2c - (a + b) < 0 のときは No にすることに注意する。 Rust の場合は usize で入力を取ると判定なしには RE になるので自然と判定を入れることになる。

提出: https://atcoder.jp/contests/math-and-algorithm/submissions/30125408 解説: https://atcoder.jp/contests/panasonic2020/editorial


アルゴリズムと数学 演習問題集 085 - Two Conditions を解いた。

問題: https://atcoder.jp/contests/math-and-algorithm/tasks/math_and_algorithm_bo

例題。例題に記載のものとは違い abcd = Y から Y の約数を列挙してそれを 4 重ループした。 N 以下であるという制約を忘れて WA を出した。ちなみに例題の解法は a <= b <= c <= d の制約を追加しても答えに影響が出ないことを活かすもの。

提出: https://atcoder.jp/contests/math-and-algorithm/submissions/30125612


Java の record は private constructor を持てなさそう。レコード・クラスと同じ可視性になるようなので。必要なら interface で実装を隠せばいいけど相応に手間がかかる。

https://docs.oracle.com/javase/jp/17/docs/api/java.base/java/lang/Record.html


今日のコミット。