23【AtCoder】競プロ初心者でもできる300点問題C++競技プログラミングはじめにこんにちは、背の高い人と申します。今のところ何か特別強いものを持っているわけではありませんが、競プロが好きなので競プロの話をします(AtCoderのレートはたまに茶色パフォが出る程度の灰色です)。Problemsを見ていたら僕が自力でACできた300点問題を見つけたので2問ほど紹介しようと思います。200点問題が安定してきたから300点も解けるようになりたい!っていう人はぜひ解いてみて自信をつけてください。弊部のつよつよ1年生なんかは解けるのではないでしょうか。2019https://atcoder.jp/contests/abc133/tasks/abc133_cこの問題は全探索しようをするとTLEします。そこでループの回数を工夫しましょう。j)を2019で割った余り」のことです(僕は所見でググりました)。範囲を探索してあげればいいですね。すればなんと2重目のループの回数が最高でも2019回で済みます。endl;}この問題に限ったことではありませんが、300点問題あたりから非常に大きな数値を扱うことが多くなります。long型の変数を使ってあげましょう。僕はとある問題で変数のサイズの設定のミスに二日くらい気付かず頭を悩ませていたこともあるので、考え方は正しいはずなのになぜかWAが出る!というときはデバッグ時にそこも気を付けてみてください。Handlinghttps://atcoder.jp/contests/abc134/tasks/abc134_cこの問題は各ループで消去される変数が1個だけというのがポイントです。1個しか消去されないなら、数列の最大値が消去されない限りは何が消去されようと条件に合う要素の最大値はそのまま数列の最大値となります。いう変数にコピーしてあげましょう。同値の要素が消去されたときは2番目に大きい要素を出力する...というのは実は間違いです。いうのも、この考え方では最大値が複数ある場合に対応できません。いう数列の場合、2番目の3を消去しても3番目の3が残っているので、最大値は3になります。先程の考え方では数列の最大値である3を無視してしまうので適切ではありません。コピーするのではなく、隔離しましょう。格納し、その要素を0にしておきます。upLoginユーザーは見つかりませんでした。