2021-02-01から1ヶ月間の記事一覧
D - 射撃王 考えたこと 二分探索問題だということは分かっていた。だが、どこを二分探索すればいいのか全く分からなかった。 理解後の感想 参考にさせて頂いたサイト AtCoder Beginner Contest 023 D - 射撃王 の話 高度を探索するといった発想はなかった。 …
C - Snuke Festival 考えたこと Aの要素を基準にしてBのlower_bound()を求め、またBを基準にしてCのlower_boundを求めるといった2重ループで求めようとした。当然TLE 気付いたこと これ真ん中のBを基準にすれば、AとCは2重ループにしなくても直接アクセスで…
D - Equal Cut 問題概要 長さ N の整数列 A を 3 箇所で切って、4 つの連続する数列に切り分ける。このとき、4 つの区間の値の和を P,Q,R,S とするとき、max(P,Q,R,S)−min(P,Q,R,S) の最小値を求めよ。 4≤N≤2×10の5乗 考えたこと 切れ目をそれぞれ入れていっ…
C - Linear Approximation 問題概要 長さ N の整数列 A1,…,AN が与えられます。整数 b をいろいろ変えたときの A1−(b+1) + A2−(b+1) +⋯+ AN−(b+N) の最小値を求めてください。1≤N≤2×10の5乗 考えたこと 2次関数みたいなグラフになってると予想した。どっちか…
D - Snuke Numbers 問題概要 正整数nに対して、nを10進法表記したときの各桁の和をS(n)とし、関数gをg(n)=nS(n)と定義する。そして任意の正整数m>nに対してg(n)≤g(m)が成立するようなnを「すぬけ数」と呼ぶことにする。このとき、すぬけ数を小さい方から順に…
D - Patisserie ABC 問題概要 整数 3 つ組 (xi, yi, zi) が N 個与えられる。 このうちの M 個選んで、(x の選んだ M 個の総和の絶対値) + (y の選んだ M 個の総和の絶対値) + (z の選んだ M 個の総和の絶対値)が最大になるようにせよ。 制約 1 10の10乗 感…
問題リンク B - Ringo's Favorite Numbers 間違えたコード using namespace std; int main() { int D; cin >> D; int N; cin >> N; if (N == 100) { cout << 100; return 0; } if (D == 0) { cout << N; return 0; } if (D == 1) { cout << N * 100; return …