精進記録

言語はc++です

競プロ

N個からK個取り出す組み合わせの列挙

簡単のため、まずN(>3)個の整数{1,2,3,,,N-1,N}のうちから3個取り出す組み合わせの列挙を考えます。 #include<bits/stdc++.h> #define rep(i,n) for(int i=0;i<(int)(n);i++) #define FOR(i,a,b) for(int i=a;i<b;i++) #define each(it,v) for(auto &it : v) #define mod 1000000007 #define all(v) (v).begin(),(v).end() #define vi vector<int> #define vl ve…</b;i++)></bits/stdc++.h>

深さ優先探索入門

今回の参考資料です。 実践・最強最速のアルゴリズム勉強会 第二回講義資料(ワークスアプリケーションズ & AtCoder) 例題 まずN人にM個のリンゴを配る組み合わせの数を出力するプログラムを考えます。 main() { //入力を受け取ります int n,m; cin>>n>>m; in…

E - 通勤経路

古い問題ということもあり、解説記事が少なかったので、 記事にします。 問題雑概要 atcoder.jp (1,1)から(w,h)までの経路を数えます。w,hはそれぞれ100以下です。 今回の問題では、交差点で「曲がる」という選択が2連続で出来ません。 「曲がった」場合には…

はじめての二分探索

やります。 atcoder.jp AtCoder TagsのAtCoder_Tags_Hintという機能で二分探索のタグがついていたので、*1 ちょうどよいと思い、練習することにしました。 Tagをクリックすると、 と出ます。 ででどん 1≦X≦109から条件を満たすXを探します。 sortされた整数…

動的計画法の練習

動的計画法はなかなか実装が慣れません。 一度時間を取ってちゃんと勉強してみます。 問題 この問題で練習します。 atcoder.jp 人は基本リンクを踏まないのでスクショを置きます。 解法その1 設定されうる暗証番号がたかだか103通りなのでそれを利用して解…