template-generator icon indicating copy to clipboard operation
template-generator copied to clipboard

作問用機能

Open kmyk opened this issue 5 years ago • 0 comments

作問を補助する機能の追加はそう難しくないし、あるとよさそう。 ランダムケースの生成に関して、問題を解くときと問題を作るときとで特に差はないためである。作問時なら、入力フォーマット文字列 (N A_1 ... A_N みたいなやつ) や機械可読な形での制約 (Library-Checker の info.toml を発展させる感じ) がかならずあると仮定してよいはずで、完璧な結果を作ることはむしろ非作問時より簡単なはず。

現在できてるのは「問題を URL によって指定し、その入力フォーマット情報 (制約の情報を含まない) からランダムケースの生成器 (のテンプレート) を生成する機能」のみ。 やること:

  • [ ] 問題の情報をファイルを使って指定し、その入力フォーマット情報 (制約の情報を含む) からランダムケースの生成器 (ただし一切の修正なしでそのまま使えるもの) を生成する機能
    • [ ] 入力フォーマット情報 + 制約の情報をファイルから与えるときの仕様を決める
    • [ ] 典型パターンを生成するためのライブラリを用意する (例: https://github.com/yosupo06/library-checker-problems/issues/400 onlinejudge_random/__init__.py)
    • [ ] 制約の情報と典型パターンのライブラリとを組み合わせた出力を吐く
  • [ ] 問題の情報をファイルを使って指定し、その入力フォーマット情報 (制約の情報を含む) から validator を生成する機能

(この issue は、実装内容についてのみ言えば #36 と #37 の組み合わせになっている)


関連:

  • 制約の情報の解析と利用 #36
  • 典型ランダムケースの生成 #37
  • Library-Checker の common/random.h を拡張する案 https://github.com/yosupo06/library-checker-problems/issues/400
  • Library-Checker の info.toml の制約についての機能 https://github.com/yosupo06/library-checker-problems/issues/141
  • Rime version 3 https://github.com/icpc-jag/rime/issues/71
    • 特に

      問題文生成機能を追加

      Google DocsやGitHubで問題文テンプレートを準備し、サンプルや制約の値などを自動的に挿入する機能を追加したいです。 例えば、library-checker-problemsは同じような形式になっています。 https://github.com/yosupo06/library-checker-problems/blob/master/sample/aplusb/task.md

  • cc @monkukui

kmyk avatar Jun 29 '20 17:06 kmyk