Kyopro Library
 
読み取り中…
検索中…
一致する文字列を見つけられません
Today03

ライブラリのドキュメント

環境構築

  1. Docker, Git, make のインストール
  2. build (AHCの場合は build_AHC)をコピペ、実行
  3. make build でDockerイメージをビルドする(初回のみ)
  4. make run でコンテナを起動して入る

スクリプト

  • ./cmp <file> <file> をコンパイルする。
  • ./copy <file> <file> にincludeしたライブラリを展開し、./combinded.cpp に保存する。
  • ./test <solve> <generate> <naive> ランダムテスト用スクリプト。<solve> を実行し、<generate> で生成した入力を与え、<naive> で生成した出力と比較する。
  • ./contest カレントディレクトリで作成したファイルを削除する。スクリプトやライブラリは削除しない。コンテスト前に実行する。

使い方

  1. vim a.cpp
    #include<kyopro_library/graph/dsu.hpp> // 使うライブラリをincludeする
    int main(){
    // ここにコードを実装する
    }
  2. ./cmp a
  3. ./a.out
  4. ./copy a

データ構造に載せる代数構造の定義の仕方

例) モノイド

struct Monoid {
using Type = hoge;
static Type id() { return hoge; }
static Type op(const Type& l, const Type& r) { return hoge; }
};
モノイド
Definition monoid.hpp:5

各構造の要件

  • モノイド
    • Type id()
    • Type op(const Type& l, const Type& r)
  • 半群
    • Type op(const Type& l, const Type& r)
    • Type inv(const Type& x)
    • Type op(const Type& l, const Type& r)
    • Type id()
  • 作用素
    • Type id()
    • Type op(const Type& l, const Type& r)