AtCoder,セグメント木,二分探索,整列

問題方針

モンスターの順序は問題に影響を与えないので、モンスターの座標について昇順に並び替えて考えます。

最適な攻撃方法

最適な攻撃方法は、モンスターの先頭から爆弾を使っていくやり方です。爆弾の位置は、爆弾の範囲の最も左を今注 ...

AtCoder,整列

問題方針

必殺技をHPの多いモンスターから使えば良いので、体力の順に整列させます。

コード#include <bits/stdc++.h>using namespace std;typedef long long ll;in ...

AtCoder,整列,貪欲法

問題方針

ロボット \( i \) は、区間 \(  (X_i – L_i, X_i + L_i) \) に存在しています。\( X_i + L_i \) について昇順に並び替え、先頭から順番に配置していきます。

AOJ,整列,貪欲法

問題方針

ジョイントの使う順番は給料に影響を与えないので、ジョイントを使うときは最大のものから使うべきです。したがって、ジョイントを降順に並べ、全探索を行います。ジョイントを使う度にパイプの本数が減る一方で、ジョイント分の長さが加算され ...

AOJ,全探索,探索,整列

問題方針

買い物をする駅の番号の順番を変えても影響がないので、\( d_i \) を昇順に整列させます。ここで、\( d_i < p \) を満たす最大の \( d_i \) を \( l \) とし、\( d_i > p ...

AOJ,整列,貪欲法

問題方針

\( i \) 番目のタクシーは、\( i + 1 \) 番目以降のタクシー乗り場に行くことができるので、\( N \) 番目のタクシーから考えていきます。\( N \) 番目のタクシーは、\( s_N \) の最大値を取るこ ...

AOJ,整列

問題方針

数列の要素を交換するたびに全ての要素が昇順に調べるのは効率が悪いので別の方法を考えます。昇順に整列させたときの数列と元の数列の要素が異なるものの数を \( t \) とします。交換を行う前に、\( t = 0 \) であれば、 ...

AOJ,整列,累積和

問題方針

空白のマスを〇で表すとします。”→←〇〇” という状態で ”〇→←〇” と矢印を動かしても点数に変化はありません。また、”→→←〇〇” という状態では、”〇→→←〇” と動かすと点数が \( 1 \) 増えます。

...

AOJ,整列

問題方針

トッピングを \( k \) 個乗せた時の \( 1 \) ドルあたりのカロリー数を \( f_k \) とし、\( k \) 個のトッピングのカロリーの総和を \( s_k \) とすると、

\

とな ...

AtCoder,整列

問題方針

\( i \) 番目の生徒が教室に来た時の教室にいる生徒の人数が \( A_i \) なので、\( i \) 番目の生徒は \( A_i \) 番目に教室に来たことになります。よって、\( A_i \) について昇順に整列させ ...