2023-08-01から1ヶ月間の記事一覧
ついにしゃくとり法に来た。前々から小耳には挟んでいたけど実際に学ぶのは初めてなのでワクワクする。問題はこちら。 atcoder.jp 異なる2つの整数のペアを選んだ時、差がK以下であるものの総数を求める問題。全部でN(N-1)/2通りと書いてくれてるのはなかな…
第5章は関数に関してのもう少し高度なトピックを扱っている模様。 カリー化 有名なやつ。カリー化とは、複数の引数を取る関数に一つだけ引数を与えて呼び出した時、残りの引数を取る関数を返すようにすることである。例えば二引数を取るmax関数に一つだけ引…
基本問題 タイトルからしてアプローチがもろネタバレなのだが、今回は答えで二分探索をするらしい。 atcoder.jp この問題の場合、答えの制約として 1 <= K <= 109 があるので、この範囲を探索すればいい。線形探索だとO(NK)となり間に合わないが、二分探索な…
3章では二分探索がテーマ。まずは一番シンプルな二分探索の問題から。 atcoder.jp 回答コード #include <bits/stdc++.h> using namespace std; #define dump(x) cout << #x << " = " << (x) << endl; #define REP(i, n) for (ll i = 0; i < (n); i++) #define ITOC(n) (cha</bits/stdc++.h>…
第三章はHaskellの関数についての独特な構文についての説明になっている。 パターンマッチ Haskellの関数では、特定のパターンにマッチした場合で、処理を分けることができる。以下のように書くと、7を取る場合と任意の数xを取る場合で処理を分岐することが…