私はプログラミング仲間に誘われてAtcoderで競技プログラミングを始めてこれまでで計30回以上参加してきたのですが一度もC問題が溶けません。ネットの記事だとみんなプログラミング未経験でも10回とか15回めとかで溶けたみたいな声があるのですが信じられません。ただAB問題の回答速度が上がるだけで一向にCが解けないのです。解説を読んだり、アルゴリズムを見たり、よく出てくるbfs dfsを重点的に学んだり、オーダーを学んだり、過去問を解いてみたりといった書籍を買う以外のことをだいたいやってきたのですが一向に溶けません。というか本番になると一切思いつきませんし、アルゴリズムを学んでしまったからこそそれに引っ張られて全然解けないみたいな感じにもなってしまいます。正直心が折れそうです。書籍を買うしかないのでしょうか?なにかC問題を解くためのアドバイスがあったら教えてください。
> 解説を読んだり
> というか本番になると一切思いつきません
「解説」を読んで理解はできているということですか?
単純に本番に弱いという事でしょうか?時間制限があるとダメとか?
単純に本番になると何も思いつかないor思いついてもそれが正解ではなかったり、全く関係ないアルゴリズムを選んだりそのそもアルゴリズムを使わないで良かったりなど、すべての的を外しているうちに時間だけが過ぎていく感じです。参加初期は単純に解法に近かったのですが勉強すればするほど誘惑が増えて逆にわからなくなっています。
今のところ1,問題を見る→2,制約を見る→3,ボトルネックを探す。→4,制約に収まる範囲のアルゴリズムを探す→5,実際に組み込む。みたいな思考回路でやっているのですが、主に4で条件を満たすアルゴリズムが思いつかなったり、そのそもアルゴリズムが違ったり不要だったり。するかんじです。
競技プログラミングは、純粋に趣味としてやっている感じでしょうか?それとも、競技プログラミングを通じて、実用的に伸ばしたい能力がある、と考えていますでしょうか?
数学的知見が欲しいのと、プログラミングの能力を伸ばすor維持したいと思ってやっています。これまで使ってこなかった生成AIを参考にしたりするようになって、プログラミング能力の落ちを感じていたので、解決法として元々興味を持っていました。友達に誘われたしいい機会だと思って始めた感じです。
ここで言うC問題とは、ABCのC問題ということでいいですよね。
「解けない」というのは、時間内に解けないということでいいですか。その場合、時間をかければ解けますか?
また、Atcoder ではアルゴリズムを検索したり書籍を横に置いたりすることは禁止されていないですが、ググってもどのアルゴリズムを使えばいいのかわからない、ということでいいですか?
> 過去問を解いてみたり
過去問は解けるのに本番になると「何も思いつかないor思いついてもそれが正解ではなかった」というのはメンタルが関係している気もします。過去問が解けるならアルゴリズムは身についていると考えられます。
> プログラミング仲間に誘われて……
先駆者に誘われたという話なのであれば,まずはその人にいろいろと尋ねてみたら良いのでは.
「何か特別な練習(?)をしたのか?」とか,「これを読むと良い,みたいな何かはあるか?」とか.
友達(?)であれば,問うのも気楽でしょうし.
物理的に接触できる相手ならば,本とか貸してもらえるかもしれない(とりあえず自分で買わなくていい).
回答の取得に失敗しました