くろたんく雑記帳

日常とか、わんちゃんとか、機械学習とか、競プロとか、

MENU

AtCoder Regular Contest 107 参加ログ・感想

今回もBが解けるところまでを目標にした。


内容

  • Python3でやっている。
  • 参加ログ。
  • 所感。
  • コンテスト中に何を考えたか。
  • コンテスト後に解説をみたり、少し整理したりしたくらいの内容。
  • 問題の詳細で細かく書こうと思うものは別記事とする。

結果

A完。Bは{\displaystyle n,k}の条件分けをごちゃごちゃやっていたら{\displaystyle k}が負の時に合わなくなってしまった。


どう考えたか + α

問題

A - Simple Math

問題タイプ:{\displaystyle 1}から{\displaystyle n}までの和

制約が{\displaystyle 10^{9}}なので、3つの{\displaystyle \sum}の掛け合わせでやる。{\displaystyle \sum_{k=1}^{n}k}の合計は{\displaystyle \frac{n(n+1)}{2}}
余りの処理はは適宜やっておく。

def sum_mod(n, mod):
    ans = n*(n+1)//2
    return ans % mod
a, b, c = map(int, input().split())
mod = 998244353
ans = sum_mod(a, mod) * sum_mod(b, mod) * sum_mod(c, mod) % mod
print(ans)

B - Quadruple

問題タイプ:数え上げ

  • {\displaystyle 1 \leq a, b \leq n}かつ{\displaystyle a + b = x}を満たす{\displaystyle a, b}の組み合わせ数を出せるようにする。
  • 問題を{\displaystyle (a+b) - (c+d) = k}なので、{\displaystyle (a+b) = x}として考える。
  • ここまでは考えられたけど、細かい条件分けで失敗した。もうちょっとでできそうなので、別記事にする。

おわりに

  • Aは、和にすればいいと考えられたのでよかった。
  • Bは、細かい条件分けでぐちゃぐちゃになってしまって、ダメだった。固定するところまではよかったが、あともう少しのところの実装の詰めが甘い・・・

参考になる書籍

けんちょんさんこと、大槻さんの書籍である、「問題解決力を鍛える!アルゴリズムとデータ構造」 ご本人の記事の中で難易度は、螺旋本ということで初学者でも非常に結構読みやすい!!!(実際に、けんちょんさんの記事はC++に疎い自分でも、その思考プロセスを学べるくらい丁寧に書かれているし、この書籍も非常に読みやすい)どのようなステータスの人にもおすすめの一冊になっている。

問題解決力を鍛える!アルゴリズムとデータ構造 (KS情報科学専門書)

問題解決力を鍛える!アルゴリズムとデータ構造 (KS情報科学専門書)

  • 作者:大槻 兼資
  • 発売日: 2020/10/02
  • メディア: 単行本(ソフトカバー)

書籍は読み終わったので、Pythonで章末問題をこなしていっている。

blacktanktop.hatenablog.com