コンテストURL: https://yukicoder.me/contests/405
yukicoderで初めてコンテストを開催させていただきました。他の方々のコンテストほどの高難易度帯は一切なし、問題数も5問のみとかなり優しめのコンテストだったと思います。
競技開催側に回るのは初めての経験でとても楽しませていただきました。参加者の皆様、testerの皆様にこの場を借りてお礼申し上げます。
A: No.2086 A+B問題 ★☆ | ||
---|---|---|
問題リンク:https://yukicoder.me/problems/no/2086 tester:遭難者さん | ||
多倍長の足し算を実装する問題です。加法の通常の再帰式では実行時間制限をオーバーしてしまうので、筆算を実装する必要があります。 この問題を通じて、(何進法かに依存する)筆算が(何進法かに依存しない)通常の再帰式と比べて利点があるということを改めて認識していただき、位取り記法(そしてゆくゆくは$p$進)のありがたさの1つを知っていただければという思いで出題してみました。 testerさんにPythonだと組み込み演算子で解けてしまうことを教えてもらいましたが、こういう問題もあったらあったで他の言語のverifyに使えるという利点もあるとも教えていただき、お言葉に甘えてそのまま出題させていただきました。 |
B: No.2087 基数の変換 ★☆ | ||
---|---|---|
問題リンク:https://yukicoder.me/problems/no/2087 tester:遭難者さん | ||
十進法から別の法への変換は高校数学などで頻出の問題ですが、こういった基数の変換は$p$進数の$p$進展開を理解するための大事な第一歩となります。 今後$p$進の問題を解いていくための足掛かりになってほしいと思い、復習の意味も込めてこの問題を出題しました。 |
C: No.2088 数当てゲーム ★☆ | ||
---|---|---|
問題リンク:https://yukicoder.me/problems/no/2088 tester:遭難者さん | ||
高々一次である方程式を「きちんと」解けるかを問うために出題しました。 具体的には移項後の一次係数が$0$となる場合も見逃さずに厳密な場合分けで方程式を解くことを要求しました。ちょうどサンプル1がそのような境界ケースとなるので、サンプルをきちんと確認すればデバッグもし易いと思います。 この問題の原案はもっと数学の問題寄りで難読だったのですが、testerさんにご尽力いただきより競技プログラマーにも読みやすいように推敲いたしました。 |
D: No.2089 置換の符号 ★★☆ | ||
---|---|---|
問題リンク:https://yukicoder.me/problems/no/2089 tester:taiga0629kyoproさん | ||
置換の符号のよくある定義(互換表示に現れる互換の個数の偶奇)で符号が実際に一意に定まることの証明を理解しているか否かを問うために出題しました。 つまり偶数個の互換の合成で表せることの否定(偶数個の互換では表せないこと)が奇数個の互換の合成で表せることと同値であるという非自明な結果の証明を実質問う問題で、転倒数を使った典型的な一意性証明や、巡回表示と互換表示の関係を使った典型的な存在証明をそのまま実装すれば解くことができます。 |
E: No.2090 否定論理積と充足可能性 ★★☆ | ||
---|---|---|
問題リンク:https://yukicoder.me/problems/no/2090 tester:taiga0629kyoproさん | ||
充足可能性判定のための真理値割り当ての全探索を、$2$進法などを使って適切に実装できるか否かを問うために出題しました。 $p$進法は単なる数の表記法に過ぎませんが、数以外の概念の表記法と組み合わせることでそういった概念の列挙に使えることは$p$進法の典型的な応用の1つなので初めて出会った人は覚えてきましょう。 |