ABC 297
Table of Contents
https://atcoder.jp/contests/abc297
A. Double Click
https://atcoder.jp/contests/abc297/tasks/abc297_a
B. chess960
https://atcoder.jp/contests/abc297/tasks/abc297_b
C. PC on the Table
https://atcoder.jp/contests/abc297/tasks/abc297_c
D. Count Subtractions
https://atcoder.jp/contests/abc297/tasks/abc297_d
E. Kth Takoyaki Set
https://atcoder.jp/contests/abc297/tasks/abc297_e
ダイクストラみたいな感じで解く。距離 0 のところから始めてコスト $A_i$ で別のノードに移動。距離最初のノードからまたコスト $A_i$ で移動・・・というのを繰り返す。訪れたノードの数が $K+1$ になったら終了(最初の 0 のノードを数えているので $+1$ している)。
void solve() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int N, K;
cin >> N >> K;
vll A(N);
rep(i, N) cin >> A[i];
set<ll> check, stock;
stock.insert(0);
while ((int)check.size() != K + 1) {
auto it = stock.begin();
ll x = *it;
stock.erase(it);
check.insert(x);
for (ll a : A)
stock.insert(x + a);
}
cout << *check.rbegin() << endl;
}
F. Minimum Bounding Box 2
https://atcoder.jp/contests/abc297/tasks/abc297_f
G. Constrained Nim 2
https://atcoder.jp/contests/abc297/tasks/abc297_g