PyConJP2014で競技プログラミングについてLTしてきました。 発表で出した問題と、主要な競技プログラミングのコンテストについて紹介したいと思います。 発表資料 発表で紹介した問題の回答について 発表でみなさんに考えてくださいと言った問題です。 単純に全探索をすると時間制限にひっかかってしまうこの問題。 a + b + c + d = 0 は、 a + b = - (c + d) というのを利用して解いた例がこんなかんじになります。 Pythonではじめる競技プログラミング 例題の解答例 create_pairsの関数でAとB,CとDをそれぞれ足し合わせた数を計算し、それがいくつあるかをカウントしておきます。 あとはAとBの合計値をfor文でまわして、CとDの合計値のなかに-(A+B)がいくつあるかを探しています。 この解法だと計算量はO(N **2)なので、Nが200でも間に合いま