結果発表

作品の著作権について

プログラム作品の著作権は各作成者に帰属するものであり、その無断転載、無断引用を禁じます。

最終ランキング TOP 30

順位ニックネーム区分応募日時総ターン数時間(秒)
1 さはら 学生 2020-11-18 06:46:29 24,115 57.4609
2 じろう 学生 2020-11-18 11:55:45 24,262 56.6640
3 yochan 学生 2020-11-18 11:44:55 24,262 56.7187
4 nagiss 学生 2020-11-18 11:36:51 24,373 58.3828
5 nari 学生 2020-11-18 10:31:34 24,458 56.3437
6 roto_37 学生 2020-11-18 11:34:40 24,597 58.0781
7 toma 学生 2020-11-18 02:34:11 24,683 57.5703
8 arimatsu ハル研 2020-11-18 09:11:06 24,745 45.5546
9 Ark 学生 2020-11-18 10:38:29 24,815 59.9687
10 aquaCS 学生 2020-11-18 10:01:45 24,823 50.2265
11 Nyaan 学生 2020-11-18 02:18:49 24,918 54.5703
12 ninja 学生 2020-11-18 10:32:28 24,923 59.5703
13 phocom 学生 2020-11-18 11:41:37 24,932 58.4375
14 ごたんとう 学生 2020-11-17 08:57:28 24,956 54.7968
15 masayuki ハル研 2020-11-17 22:51:19 24,991 55.4843
16 ぴーよ 学生 2020-11-14 18:13:13 25,269 44.3906
17 tada 学生 2020-11-18 11:35:45 25,292 58.8046
18 long_ng 学生 2020-11-18 04:39:54 25,298 58.6875
19 31536000 学生 2020-11-18 11:20:42 25,392 59.3359
20 rk222 学生 2020-11-18 02:44:06 25,437 57.5312
21 aru 学生 2020-11-18 02:08:06 25,557 58.6484
22 ishimura ハル研 2020-11-18 02:04:16 25,564 20.0000
23 c7c7 学生 2020-11-07 12:00:31 25,650 58.6171
24 toto 学生 2020-11-18 05:59:10 25,698 52.2578
25 idaten 学生 2020-11-17 10:05:20 25,747 43.9687
26 千代大龍秀政 学生 2020-11-18 11:58:23 25,942 59.7500
27 kurakura 学生 2020-11-18 00:28:14 25,999 55.1250
28 olphe 学生 2020-11-18 11:50:22 26,030 57.2500
29 4bungi 学生 2020-11-14 18:45:59 26,043 59.6406
30 fal_rnd 学生 2020-11-17 21:05:39 26,070 43.6093

チャレンジスコア賞

全応募者のうち28%の方が、チャレンジスコア「33,333」を達成されました。
厳正な抽選の結果、以下の5名の達成者がチャレンジスコア賞に決定しました。

  • shamalさん
  • suetsuguさん
  • ishiiさん
  • koitanさん
  • yasakaさん

実行委員会による総評

問題の特徴

今回の問題は、複数の巻物と地形によるジャンプ移動可能距離の変化があり、取る順番やコース取りを効率化する問題でした。

今回の問題の一番初めのモチーフはゴルフで、ただ1つのゴールを目指すだけの問題でした。

その後、ゴールを複数個に増やすことを検討し、それが巻物を集めるというルールになりました。

問題の制作過程では、一時的なジャンプ力向上アイテムの導入やウサギの数を増やすといった複雑なルールの追加も検討しましたが、最終的には巻物を取ることでのジャンプ力向上のルールだけを追加することで、シンプルでルールが理解しやすい問題になりました。

理解しやすいルールでありながら工夫の余地がたくさんある、奥深い問題になったのではないかと思います。

作品の傾向

この問題では、どの順番で巻物を取るのか、そして地形を考慮してどのようなコースで移動するのかと考えることが多くあります。

そこでまずは、ウサギと巻物、巻物と巻物の間の移動経路を求めて、その上で巻物を取る順番を決定するという方が多かったようです。

移動経路について

今回の問題では、地形によるジャンプ移動可能距離の変化があるため、ただまっすぐ次の巻物を目指すだけでは最適な移動経路にはなりません。「プロコン速報 vol.2」でも触れたように「平地」でのジャンプ移動可能距離は「池」の10倍です。まわり道をしてでも平地を進んでいくほうが早くなる場合があります。「砂地」や「茂み」についても同様です。また、READMEに記載している通り、ウサギは巻物と同じマスに着地することで巻物を取ることができます。そのため、マス目の中心まで移動する必要はなく、マスの端っこをかすめていくように進むことでターン数を短縮することができるかもしれません。

いそがばまわれ
うさぎの位置間違い うさぎの位置正しい

高得点を出している作品では「巻物だけでなく、地形と地形の切り替わるポイントを経由点として探索に組み込む」、「次の一歩を大きく踏み出すために、地形の切り替わるポイントで一度着地する」、「できるだけターン数を短縮できるように探索結果を補正する」などの工夫が見られました。

巻物を取る順番について

そうして求めた移動経路を使うと、巻物を取る順番は巡回セールスマン問題に帰着します。

巻物の数は最大20個ですので、全探索するとステージによっては制限時間を超えてしまうかもしれません。したがって、一度調べたものは計算結果を保存しておき、再利用できるようにしておくといった高速化が必要です。このような高速化の手法を一般に「動的計画法(DP)」といい、特に状態をビットで表現する手法を「BitDP」と呼びます。そのほか、参加者の中では「2-opt」や「焼きなまし法」などの手法を取っている方もいたようです。興味のある方は調べてみてください。

評価環境

評価環境で使われた乱数は、

  • randomSeedX = 0x6bba8a51;
  • randomSeedY = 0xb4dca512;
  • randomSeedZ = 0x728bd6aa;
  • randomSeedW = 0x959df8b4;
  • randomSpinX = 0x81b;
  • randomSpinY = 0xcf;

でした。

まとめ

今年のプロコンは、開始当初よりかなりの数のご応募があり、例年よりも早いタイミングでランキングの「総ターン数」と「時間(秒)」を公開しました。週末を迎えるたびに応募数が増え、参加者同士で切磋琢磨している様子を見ることができました。

スコアの推移を見ていますと、今回の問題では一定のスコアごとに壁があるように思いました。壁を1つ乗り越えるたび、手ごたえを感じていただけたのではないかと思います。

参加者の声や作品のコメントからは、できることの多さや制限時間に悩まされながらも、初参加の方から常連の方まで各々のスキルに応じて取り組んでいただけたことが伺え、実行委員会としては大変うれしい限りでした。

最後になりますが、プロコン2020はお楽しみいただけましたでしょうか。

このようにプロコンが盛り上がりましたのは参加者のみなさんのおかげと、実行委員会一同、感謝しております。熱心にご応募いただき、本当にありがとうございました。

top