E問題をC++で解いてみました。ABC349は、2024年4月13日21:00に実施されました。紹介はこちらに、プログラミングの方針はこちらに記事があります。1464)問題はリンク先をご覧ください。Tic-Tac-Toe重み付きの三目並べを解きます。三目並べは、双方が最善を尽くせば引き分けになります。先手がかなり有利なゲームです。前日の記事で、三目並べを解くプログラムを紹介しました。重みを付けることによって、後手必勝の場合があり得るのは、非常に興味深い結果です。プログラム例(ABC349E)三目並べを解くプログラムをベースにしました(プログラムはここで紹介しています)。元のプログラムとの違いは以下となります。点数計算をして判定結果を返す処理を追加しました(今回の最大の改造点です)。今回の問題は制約から引き分けがありません。これによってかなり楽になっています。A(Aoki)に変更しました。再帰関数(バックトラック)を使って勝敗が決まるまで手を進めて、全通りを調べるという基本的な構造は同じです。以下が、C++プログラムとなります。0;}AC(Accepted=正しいプログラム)と判定されました。版の紹介は省略します。導入するなど、丁寧に実装しています。競技プログラミングの実装としては、タイプ量が多いかもしれません(まぁ、このブログで紹介しているプログラムは、全体的にタイプ量は多くなっていますが)。バックトラックを学ぶつもりでコンテスト後に書いたプログラムであることを留意していただけたらと思います。この問題を通じて多くのことを学ぶことができました。問題を紹介していきます。コメントをキャンセルメールアドレスが公開されることはありません。付いている欄は必須項目です上に表示された文字を入力してください。Contest)記事一覧ソフトウェア技術者アナダパンチ組込み製品の開発に従事しているソフトウェア技術者です。仕事でソフトウェア開発に従事しながら、趣味でもプログラミングを楽しんでいます。