2024-05-01から1ヶ月間の記事一覧

AtCoder Regular Contest 178 C - Sum of Abs 2

問題 15 分くらい間に合わなくて悔しい。 解法 以下 0-indexed であるとする。 とする。 まず数列 はソートしても良い。 また、相対的な差にしか興味がないため、 であるとして良い。 数列の差分を図示して、各差分の寄与を から逆順に考えると以下のように…

AtCoder Regular Contest 178 B - 1 + 6 = 7

問題 解法 以下 0-indexed であるとする。 まず であるとして、 または の場合のみ考えれば良い。 (そうでない場合は答えは である。) 桁の正の整数と 桁の正の整数の和は 桁か 桁になるため、以下では 桁のものを数える。 もし の場合、 桁の正の整数は …

Codeforces Round 945 (Div. 2) D. Cat, Fox and Maximum Array Split

問題 自力で解けたが、コンテスト時間内に間に合わなかった。 割と面白いので解説を書く。 解法 まず、 回で を特定する。 次に、 の倍数を まで調べれば良い。 各判定は 回でできるので、全体で 回でできる。 #include "my_template.hpp" using namespace s…

std::minmax は参照を返すので右辺値を渡してはいけない

C++

ABC353 終了後にTLに流れてきた内容がためになったのでメモ。 罠について 以下のコードの実行結果について考えます。 #include <iostream> #include <algorithm> int main() { { int a = 1, b = 2; auto [mn, mx] = std::minmax(a, b); std::cout << mn << ", " << mx << std::end</algorithm></iostream>…

Educational DP Contest / DP まとめコンテスト

コンテストのリンク 今更過ぎるけど全部解いたので提出コードや感想メモなど。 A - Frog 1 #include "my_template.hpp" using namespace std; void solve() { INT(N); VEC(i64, A, N); vector<i64> dp(N, INF<i64>); dp[0] = 0; REP(i, N - 1) { if (i + 1 < N) chmin(</i64></i64>…