yu/logs/*

技術メモ など

AtCoder ABC185 C 解法メモ Kotlinで途中の値がLong(64Bit整数)型に収まらないような数式の計算をしたい(※階乗を用いた組み合わせの計算とか)

以前解いた似た問題*1の別アプローチがあったためメモ

解いていた問題

atcoder.jp

解法メモ

  • 組み合わせの計算を愚直に行ってしまうと、今回の制約では200!というかなり大きな数字になってしまうため、Long型では正しく計算できない
  • BigDecimal型で扱ってあげることで素直に計算可能*2

提出した回答

参考

*1:AtCoder ABC159 A 解法メモ n個のものからk個選ぶ組み合わせを計算したい(二項係数) - yu/logs/*

*2:パフォーマンス面ではLong型より劣るはずなので、計算量に余裕が無いとTLEしてしまうと思う