2018-04-01から1ヶ月間の記事一覧

ARC095 F - Permutation Tree -

問題 F - Permutation Tree 解法 まず、数列から木を作ってみる。 作ると木に頂点を追加するときは、脚を増やすか胴体を伸ばす選択肢しかないことが分かる。 (こういう木をcaterpillarというらしい。確かに毛虫っぽい。) なぜ、caterpillarになるのかのイ…

ARC094 F - Normalization -

問題 F - Normalization 解法 この問題の部分問題として、S->Tに変換できるか考える。 まず、Sから変換している以上、同じ文字が連続している箇所がないとおかしい。 さらに、a->0 b->1 c->2 とそれぞれの文字に数字を割り当てS,Tを数列とみなしたとき、 (∑S…

ARC094 D - Worst Case -

問題 D - Worst Case 解法1 公式解説通り #include <bits/stdc++.h> using namespace std; using Int = long long; int main() { Int Q; cin >> Q; while ( Q-- ) { Int A, B; cin >> A >> B; if ( A > B ) swap(A, B); if ( B - A <= 1 ) cout << 2*A-2 << endl; else { In</bits/stdc++.h>…