Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ACLにないものの追加 #6

Open
chaemon opened this issue Sep 7, 2020 · 5 comments
Open

ACLにないものの追加 #6

chaemon opened this issue Sep 7, 2020 · 5 comments

Comments

@chaemon
Copy link
Collaborator

chaemon commented Sep 7, 2020

標記の通り、現在、ACLにないものでなおかつ基本的そうなものの追加を検討しています。例えば以下のようなものがあると思います。おそらく、カテゴリ分けすると以下のようになるかと思います。他にあった方が良さそうなものがありましたら、お申し付けください!

  1. C++, pythonなどの主要な言語の標準ライブラリとしてすでに用意されているが、Nimにはないもの
    std::set, std::mapのような二分探索木, bitset,
  2. ACLに用意されていない基本的なライブラリ
    ダイクストラ法、Prim法、深さ優先・幅優先探索、ローリングハッシュ、modintのcombination、素因数分解、約数列挙
@chaemon
Copy link
Collaborator Author

chaemon commented Sep 11, 2020

あと、既存のライブラリの機能が少ないという問題がありそうです。

例えばlazysegtreeの一点更新やpropagationするときに左右で値が変わる(区間を指定して順に1, 2, 3, 4を足すなど)処理ができないようです。このへんは追加するのがいいか、元のACLの再現性を重視するかどちらがいいですかね?
ちなみに、この例ではすでに自分用に実装したものを持っているので、それをマージするだけで作れます。

@zer0-star
Copy link
Owner

少し思いついたのですが、ACL にないものや機能が追加されているものは atcoder/extra の下に作るというのはどうでしょう?

@chaemon
Copy link
Collaborator Author

chaemon commented Sep 12, 2020

そうしますかーextraの配下はgraphとかmathとかに分けるとかどうですかねー

@zer0-star
Copy link
Owner

それでいいと思います!

@chaemon
Copy link
Collaborator Author

chaemon commented Jul 15, 2021

最近思いついたのはextraの場所はatcoder/extraよりatcoderと同じディレクトリにextraを置いた方がatcoderディレクトリを汚さないという意味で美しいですかね?

呼び出しも
import atcoder/extra/graph/dijkstra
から
import extra/graph/dijkstra
に短くなって呼びやすくて嬉しいです。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants