全然ブログを書いておらず、はてなのサーバ代がもったいないのでそろそろ復帰することにした。内容はタイトルの通り、最近初めてメンタルクリニックなるものに行ってきた。行くことを決意した経緯とか、行ってみた感想とかを書き散らしていこうと思う。 経緯…
ついにしゃくとり法に来た。前々から小耳には挟んでいたけど実際に学ぶのは初めてなのでワクワクする。問題はこちら。 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を取る場合で処理を分岐することが…
Haskellの型についての章。 一般的なHaskellの型 Int 有界の整数値。範囲は環境依存。 Integer 有界でない整数値。大きい値を扱う場合はこっちを使う。動的にメモリを確保するため、Intの方が早い。 Float, Double 小数点型。他言語と同じ。 Bool 真偽値型。…