2021-02-01から1ヶ月間の記事一覧

ABC 023 D - 射撃王

D - 射撃王 考えたこと 二分探索問題だということは分かっていた。だが、どこを二分探索すればいいのか全く分からなかった。 理解後の感想 参考にさせて頂いたサイト AtCoder Beginner Contest 023 D - 射撃王 の話 高度を探索するといった発想はなかった。 …

ABC 84 C - Snuke Festival 二分探索

C - Snuke Festival 考えたこと Aの要素を基準にしてBのlower_bound()を求め、またBを基準にしてCのlower_boundを求めるといった2重ループで求めようとした。当然TLE 気付いたこと これ真ん中のBを基準にすれば、AとCは2重ループにしなくても直接アクセスで…

ABC102 D - Equal Cut

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乗 考えたこと 切れ目をそれぞれ入れていっ…

ABC102 C - Linear Approximation

C - Linear Approximation 問題概要 長さ N の整数列 A1,…,AN が与えられます。整数 b をいろいろ変えたときの A1−(b+1) + A2−(b+1) +⋯+ AN−(b+N) の最小値を求めてください。1≤N≤2×10の5乗 考えたこと 2次関数みたいなグラフになってると予想した。どっちか…

ABC 101 D Snuke Numbers

D - Snuke Numbers 問題概要 正整数nに対して、nを10進法表記したときの各桁の和をS(n)とし、関数gをg(n)=nS(n)と定義する。そして任意の正整数m>nに対してg(n)≤g(m)が成立するようなnを「すぬけ数」と呼ぶことにする。このとき、すぬけ数を小さい方から順に…

ABC 100 D Snuke Numbers

D - Patisserie ABC 問題概要 整数 3 つ組 (xi, yi, zi) が N 個与えられる。 このうちの M 個選んで、(x の選んだ M 個の総和の絶対値) + (y の選んだ M 個の総和の絶対値) + (z の選んだ M 個の総和の絶対値)が最大になるようにせよ。 制約 1 10の10乗 感…

ABC 100 B Ringo’s Favorite Numbers

問題リンク 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 …