[AtCoder] キーエンス プログラミング コンテスト 2020 B – Robot Arms
ロボット \( i \) は、区間 \( (X_i – L_i, X_i + L_i) \) に存在しています。\( X_i + L_i \) について昇順に並び替え、先頭から順番に配置していきます。
[AOJ] No. 0260 パイプつなぎ職人の給料
ジョイントの使う順番は給料に影響を与えないので、ジョイントを使うときは最大のものから使うべきです。したがって、ジョイントを降順に並べ、全探索を行います。ジョイントを使う度にパイプの本数が減る一方で、ジョイント分の長さが加算され ...
[yukicoder] No. 832 麻雀修行中
全探索を行って和了しているかを調べます。また、七対子は特殊な形なので、\( 7 \) 種類の対子があるのかを調べます。他の手は、\( 4 \) 面子 \( 1 \) 雀頭の形をしているかをチェックすれば良いので、まず初めに雀頭 ...
[AtCoder] ABC 151 E – Max-Min Sums
配列 \( A \) の順序は影響しないので、昇順に並び替えます。\( {}_{N} \mathrm{ C }_{K} \) 個の組み合わせの中で、最大値と最小値を求めます。最小値の総和を \( f_1 \) とし、最大値の総 ...
[AtCoder] ABC 151 D – Maze Master
良くある迷路の探索のアルゴリズムを使って、全探索を行います。ここでは、全ての道となっているマスから幅優先探索を行い、到達可能なマスの最短距離を求めます。
コード#include <bits/stdc++.h>usi ...
[AtCoder] ABC 151 C – Welcome to AtCoder
\( i \) 番目の問題を正解したかどうかという情報と \( i \) 番目の問題を初めて正解するまでに “WA” となった個数を数えれば良いです。これは、配列で管理することができます。
コード ...
[AtCoder] ABC 150 D – Semi Common Multiple
整数を考えるうえで、\( X = a_k (p + 0.5) \) という式の \( 0.5 \) という部分は考えにくいので、式の変形を行います。\( a_k \) は偶数なので自然数 \( b_k,\) を用いて、 ...
[AtCoder] ABC 150 C – Count Order
順列の生成を行えば良いので、next_permutuation を使います。
コード#include <bits/stdc++.h>using namespace std;typedef long long ll; ...
[AOJ] No. 0282 プログラミングコンテスト
点数が更新されたとき、その時点で最も高い得点を持つチームの番号が分かればよいので、セグメント木を使います。クエリは全区間を対象とするので、根の値が最も高い得点を持つチームの番号となります。
コード#include < ...
[AOJ] DSL_2_A Range Minimum Query (RMQ)
平方分割でこの問題を解いたことがありますが、セグメント木を使って解きました。
コード#include <bits/stdc++.h>using namespace std;typedef long long ll; ...