Skip to content
This repository has been archived by the owner on Nov 25, 2020. It is now read-only.

jprekz/procon26util

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Procon26 Util

Procon26のプログラムを書くにあたって,問題生成とか簡易サーバーとか作りたかったプロジェクト

結局くっそ適当な問題生成機能だけ作って結局使わなかったけど,もったいないのでここに供養


(以下,当時書いたメモ)

readmeとは名ばかりのメモ書き

  • ひと目で分かる?問題の仕様まとめ
    • 石 (Stone)
      • 1~16個のブロックからなる
      • 8*8マス内に収まる
      • バラバラにならない
      • 輪にならない
    • 敷地 (Field)
      • 32*32
      • 障害物は0~1023個, 敷地を分断しない
    • ルール
      • 石は裏返し・回転ができる
      • 石は敷く順番が指定される
      • 2つ目以降の石はすでに敷いた石と隣接させる
      • 石を敷かない場合はパスできる
      • 与えられる石のずく数の合計は,与えられる領域の空マス数以上
      • 与えられる石では, 全敷地を敷き詰めることができない場合もある
      • 与えられる石の数は, 敷き詰め尽くすことができる個数よりも多い場合がある
      • 複数回答した場合, 最後の有効回答が有効
      • 制限時間は1~10分
    • 順位決定法
      1. 得点が小さい(空き地ずく数)
      2. 敷き詰めた石の個数が少ない
      3. 回答時間が短い
      4. サイコロ

POSTの細かい仕様はどうなるだろうか。去年のを参考にしよう

  • ユーティリティの機能
    • gen - 問題ファイルの生成
      • パラメータ: 石の数(1256), ずく数合計(11024), 障害物の散らばり具合(小さいほど敷地が正方形に近くなる)
      • 出力: "quest[1-3].txt" ASCII CR+LF (各自ファイルリダイレクトして)
    • server - 競技サーバ(手軽に実行するため一問ごと)
      • パラメータ: 問題ファイル, -t 制限時間
      • 仕様:
    • benchmark - ベンチマーク(数問まるごと)
      • パラメータ: プログラムのパス, (benchmark.jsonのパス)
      • 仕様:
        1. サーバを立ち上げる
        2. プログラムに--benchmarkのオプションを付けて実行する
        3. プログラムは即座に問題をgetし, 随時回答をPOSTする
        4. 制限時間になったらプログラムを終了させる(プログラムにEOFを入力する)。また, それ以前にプログラム自身が最適解を出したと判断した場合は自ら終了するようにする
        5. benchmark.jsonにもとづき, 2番からの手順をループする
        6. 全てのテストが終わったら, 総合結果を標準出力とscore.logに出力する

About

第26回高専プロコンの競技部門のアレのアレ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages