urashima0429

覚書

競プロ

C++ 組み合わせ列挙

#include <vector> using namespace std; vector<int> next_comb(int n, int k, vector<int> v){ for(int i = k-1; i >= 0; --i){ if (v[i] != i+n-k){ int t = ++v[i]; for (int j = i+1; j < k; ++j){ v[j] = ++t; } return v; } } for (int i = 0; i < k; ++i){ v[i] = i; }</int></int></vector>…

E - Cell Distance

atcoder.jp 考えたこと マスのうち任意に2マス選ぶと、その2マスの選び方は残りのマスの中からマス選ぶ選び方の個数回使われるということに気づけなかった。 #include <iostream> using namespace std; const long long mod = 1e9 + 7; long long modpow(long long a, </iostream>…

ABC126E 1 or 2

atcoder.jp 考えたこと 条件は 個のが与えられ、は偶数である。 なので、の偶奇が分かればの偶奇が一意に定まる。 そこで枝によって作られるグラフを考えると連結部分のうち一か所が分かれば、連結部分は一意に定まる。 よって枝によって作られるグラフの連…

ABC126D Even Relation

atcoder.jp 考えたこと 求めるグラフの条件は 同じ色に塗られた 任意の 2 頂点について、その距離が偶数である。 であるが、任意の2頂点間の距離を求めて、すべてが偶数かを確認する必要はない。 なぜなら考えるグラフは木なので、閉路を持たず、各頂点間の…

ABC126C Dice and Coin

atcoder.jp 考えたこと 愚直に各の確率を求めればよい。 以下のコードだとだが、テストケースの 14.txt だけどうしても通らず…。 なにか間違っているのか、それとも精度が足りないのか…。 #include <iostream> #include <math.h> #include <iomanip> #include <algorithm> using namespace std; int</algorithm></iomanip></math.h></iostream>…

テスト投稿 ABC113D Number of Amidakuji

D - Number of Amidakuji 問題 H : 横線を引くことのできる段数 W : 縦線の本数 のあみだくじを考えたとき, 1本目からK本目へいたるあみだくじの総数を1e9+7で割った余りを求めよ. 制約 $ 1 \le H \le 100 $ $ 1 \le W \le 8 $ $ 1 \le K \le W $ 解法 あみ…