初めてメンクリに行った話

全然ブログを書いておらず、はてなのサーバ代がもったいないのでそろそろ復帰することにした。内容はタイトルの通り、最近初めてメンタルクリニックなるものに行ってきた。行くことを決意した経緯とか、行ってみた感想とかを書き散らしていこうと思う。 経緯…

鉄則本3-3 しゃくとり法

ついにしゃくとり法に来た。前々から小耳には挟んでいたけど実際に学ぶのは初めてなのでワクワクする。問題はこちら。 atcoder.jp 異なる2つの整数のペアを選んだ時、差がK以下であるものの総数を求める問題。全部でN(N-1)/2通りと書いてくれてるのはなかな…

すごいH本の覚え書き 第5章「高階関数」

第5章は関数に関してのもう少し高度なトピックを扱っている模様。 カリー化 有名なやつ。カリー化とは、複数の引数を取る関数に一つだけ引数を与えて呼び出した時、残りの引数を取る関数を返すようにすることである。例えば二引数を取るmax関数に一つだけ引…

鉄則本3-2 答えで二分探索

基本問題 タイトルからしてアプローチがもろネタバレなのだが、今回は答えで二分探索をするらしい。 atcoder.jp この問題の場合、答えの制約として 1 <= K <= 109 があるので、この範囲を探索すればいい。線形探索だとO(NK)となり間に合わないが、二分探索な…

鉄則本3-1 二分探索とlower_bound

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>…

すごいH本の覚え書き 第3章「関数の構文」

第三章はHaskellの関数についての独特な構文についての説明になっている。 パターンマッチ Haskellの関数では、特定のパターンにマッチした場合で、処理を分けることができる。以下のように書くと、7を取る場合と任意の数xを取る場合で処理を分岐することが…

すごいH本の覚え書き 第2章「型を信じろ」

Haskellの型についての章。 一般的なHaskellの型 Int 有界の整数値。範囲は環境依存。 Integer 有界でない整数値。大きい値を扱う場合はこっちを使う。動的にメモリを確保するため、Intの方が早い。 Float, Double 小数点型。他言語と同じ。 Bool 真偽値型。…