Programming Coontest

競プロなど

yukicoder contest 374 感想

E - Concon Substrings (COuNt-CONstruct Version)(★3)

  • FA:Nachiaさん(15:43)

過去に「Concon Substrings」と題目のついた問題を3問出題し,その後も「con」という文字列からなる問題で何か作れないかと考えていたところ,うまい感じの構築問題が生えたので,yukicoderで出題してみることにしました.

私が最初に考えた解法では,N進法での展開を用いるものであり,割と典型構築に近いかなと思っていましたが,ふたを開けると本当に色々解法が出てきました(10000進法を考えていたのは,観測する限りではleaf_1415さんなどがいらっしゃいました).多かったのは「cococo...」の間に後ろから順に「n」を挿入するというものであり,三角数を用いて貪欲にシミュレーションしていました(それで可能なんですね......むしろ私のほうが勉強になります).

テストケースの数が多いという指摘がありましたが,これは噓解法が生える可能性が高そうだと思ったため(例えばM=xyz素因数分解してcをx個,oをy個,nをz個並べる,など),それを防ぐために色々なパターンのケースを入れたためです.

コンテスト終了後のnok0さんからのご指摘によって気づいたのですが,この問題,本質的に同じ問題が過去のAtCoderに出題されていたようです(G - FESTIVAL).基本的にyukicoderには本質的に同じレベルの既出は出題しないことを心掛けている*1のですが,AtCoderの高難易度帯/イレギュラーなコンテストの問題はあまり確認していなかったため,既出に気づくことができませんでした.大変申し訳ございませんでした.

おわりに

今回はほぼ同じ問題が過去に出題されたことに気づかずに出題してしまい,反省の多い回となってしまいました.今後の作問に今回の反省を生かしたいと思っております.

次にyukicoderに出題するのはいよいよ単独コンテストになると思います.そのときは是非とも参加していただけると,大変うれしいです.

*1:よくあるコンテストへの出題パターンとして,ジャッジ版と構築版を同時に出題する,ということが考えられますが,今回の問題の場合,ジャッジは一時期AtCoderでしばしば出題されていたものでした(https://atcoder.jp/contests/abc211/tasks/abc211_cなど)ので,それを出題することは流石にできませんでした.