[AOJ] No. 0282 プログラミングコンテスト
点数が更新されたとき、その時点で最も高い得点を持つチームの番号が分かればよいので、セグメント木を使います。クエリは全区間を対象とするので、根の値が最も高い得点を持つチームの番号となります。
コード#include < ...
[AOJ] DSL_2_A Range Minimum Query (RMQ)
平方分割でこの問題を解いたことがありますが、セグメント木を使って解きました。
コード#include <bits/stdc++.h>using namespace std;typedef long long ll; ...
[AOJ] No. 0300 フロッピーキューブ
パズルは最大でも \( 8 \) 回の操作で解くことができるので、\( 4^7 \) 通りのパターンを調べれば良いです。したがって、深さ優先探索を行い、実際にシミュレーションを行います。
コード#include < ...
[AOJ] No. 0299 鉄道路線II
買い物をする駅の番号の順番を変えても影響がないので、\( d_i \) を昇順に整列させます。ここで、\( d_i < p \) を満たす最大の \( d_i \) を \( l \) とし、\( d_i > p ...
[AtCoder] ABC 149 E – Handshake
一般ゲストの並びを変えても影響がないので、降順に並び替えます。つまり、\( A_{i}\geq A_{i + 1} \ (0 \leq i \leq N – 2)\) を満たすとします。
最終的な幸福度が最大 ...
[AtCoder] ABC 149 D – Prediction and Restriction
動的計画法を行います。\( N \) 回のジャンケンにおいてジャンケンの手が制約されるグループは \( K \) 個存在します。例えば、\( K = 2 \) のとき、\( 0, 2 ,4, \cdots \) と \( 1, ...
[AtCoder] AGC 041 A – Table Tennis Training
両者の距離が \( 2 \) の倍数のとき、向かい合うように進む事が最適です。また、卓 \( 1 \) または \( N \) に留まり続けることは最適ではありません。
\( (B – A) \bmod 2 ...
[AOJ] No. 0321 部活動調査
各生徒をノードに見立てて、隣接リストを構築します。生徒 \( i \) が所属している部活動を \( g_i \) とし、所属が未確定のときを \( g_i = 0 \) とします。生徒 \( a, b \) が同じ部活動に所 ...
[AOJ] No. 0320 品質管理
コースターの画像のピクセルの添え字は、\( i \) 行 \( j \) 列を表していて、\( 0 \leq i \leq N – 1 \wedge 0 \leq j \leq N – 1 \) として ...
[AOJ] No. 0341 繰り返す呪文
動的計画法を行います。\( d(i, j) \) を \( t \) の \( j \) 番目までの部分文字列において、\( b \) の \( j \) 番目までの部分文字列の出現回数とします。初期値は、\( d(i, 0) ...