Code Monkey home page Code Monkey logo

oi-wiki's Introduction

Word Art

欢迎来到 OI Wiki

Gitpod Ready-to-Code GitHub Actions Uptime Robot Status Telegram QQ GitHub watchers GitHub stars


内容

编程竞赛发展多年,难度越来越高,内容越来越复杂,而网上资料大多零散,初学者往往并不知道如何系统地学习相关知识,需要花费大量时间摸索。

为了方便热爱编程竞赛的小伙伴更好地入门,2018 年 7 月份,OI Wiki 迁移至 GitHub。随着 OI Wiki 的内容不断完善,越来越多的小伙伴参与其中。

OI Wiki 致力于成为一个免费开放且持续更新的知识整合站点,大家可以在这里获取关于 编程竞赛 (competitive programming) 有趣又实用的知识,我们为大家准备了竞赛中的基础知识、常见题型、解题思路以及常用工具等内容,帮助大家更快速深入地学习编程竞赛。

目前,OI Wiki 的内容还有很多不完善的地方,知识点覆盖不够全面,存在一些低质量页面需要修改。OI Wiki 团队以及参与贡献的小伙伴们正在积极完善这些内容。

关于上述待完善内容,请参见 OI WikiIssues 以及 迭代计划

与此同时,OI Wiki 源于社区,提倡 知识自由,在未来也绝不会商业化,将始终保持独立自由的性质。


部署

本项目目前采用 MkDocs 部署在 oi-wiki.org

我们在 status.oi-wiki.org 维护了一份镜像站列表,它们的内容和 oi-wiki.org 都是相同的。

当然,也可以在本地部署。(需要安装 Python3 和 Pipenv

如果遇到问题,可以查阅 F.A.Q. 来了解更多信息。

git clone https://github.com/OI-wiki/OI-wiki.git --depth=1

cd OI-wiki

# 安装 mkdocs
pipenv install --pypi-mirror https://pypi.tuna.tsinghua.edu.cn/simple/

# 使用我们的自定义主题(Windows 下请使用 Git Bash 执行)
# 安装主题时将连接网络下载资源,可通过以下配置项控制下载链接
# .gitmodules:
# - url
# scripts/pre-build/install-theme-vendor.sh:
# - MATHJAX_URL
# - MATERIAL_ICONS_URL
./scripts/pre-build/install-theme.sh

# 两种方法(选其一即可):
# 1. 运行一个本地服务器,访问 http://127.0.0.1:8000 可以查看效果
pipenv run mkdocs serve -v

# 2. 在 site 文件夹下得到静态页面
pipenv run mkdocs build -v

# 获取 mkdocs 的命令行工具的说明(解释了命令和参数的含义)
pipenv run mkdocs --help

我们现在在服务器端渲染 MathJax,如果希望实现类似效果,可以参考 build.yml。(需要安装 Node.js)

镜像

# Gitee 码云 上的镜像仓库和 GitHub 仓库的内容相同
git clone https://gitee.com/OI-wiki/OI-wiki.git

离线版

可以使用 gh-pages 分支的内容

git clone https://gitee.com/OI-wiki/OI-wiki.git -b gh-pages

本地启动一个 http 服务器可能会更方便一些。

# 如果是 python3
python3 -m http.server
# 如果是 python2
python2 -m SimpleHTTPServer
# 有些环境下找不到名叫 python3/python2 的可执行文件,不妨运行 python 试试

Docker

详见 Docker 部署


如何参与完善 OI Wiki

我们非常欢迎你为 OI Wiki 编写内容,将自己的所学所得与大家分享。

具体的贡献方式在 如何参与


版权声明

知识共享许可协议
除特别注明外,项目中除了代码部分均采用(Creative Commons BY-SA 4.0) 知识共享署名 - 相同方式共享 4.0 国际许可协议及附加的 The Star And Thank Author License 进行许可。

换言之,使用过程中您可以自由地共享、演绎,但是必须署名、以相同方式共享、分享时没有附加限制,

而且应该为 GitHub 仓库点赞(Star)。

而如果你想要引用这个 GitHub 仓库,可以使用如下的 bibtex:

@misc{oiwiki,
  author = {OI Wiki Team},
  title = {OI Wiki},
  year = {2016},
  publisher = {GitHub},
  journal = {GitHub Repository},
  howpublished = {\url{https://github.com/OI-wiki/OI-wiki}},
}

鸣谢

本项目受 CTF Wiki 的启发,在编写过程中参考了诸多资料,在此一并致谢。

非常感谢一起完善 OI Wiki小伙伴们 和为 OI Wiki 捐赠的 朋友们

特别感谢 24OI 的朋友们的大力支持!

感谢 北大算协 和 Hulu 的支持!

oi-wiki's People

Contributors

24oi-bot avatar abc1763613206 avatar angelkitty avatar backl1ght avatar cbw2007 avatar chungzh avatar cjsoft avatar coelacanthushex avatar countercurrent-time avatar early0v0 avatar enter-tainer avatar frank-xjh avatar great-designer avatar greyqz avatar h-j-granger avatar hsfzlzh1 avatar ir1d avatar konano avatar ksyx avatar marcythm avatar nachtgeistw avatar orzatalod avatar ouuan avatar partychicken avatar shaochenheng avatar sshwy avatar studyingfather avatar tiphereth-a avatar xeonacid avatar yanjun-zhao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

oi-wiki's Issues

Should magic be removed/modified?

#23 added magic.md, which has little to do with OI, as an algorithm contest.

As we all know, its contents violate the law of PRC, making this project unsuitable to be spreaded publicly.

So I think we'd better remove it, or modify it. What do you all think?

进度统计

#9
【注】:这里打钩仅表示有内容添加了,不代表这部分内容已经定稿,所有内容仍然在持续更新中。
nav:

  • 简介:
    • Getting Started index.md
    • OI 赛事与赛制 intro/oi.md
    • ICPC/CCPC 赛事与赛制 intro/icpc.md
    • 学习路线 intro/roadmap.md
    • 学习资源 intro/resources.md
    • 常见错误 intro/common-mistakes.md
    • 常见技巧 intro/common-tricks.md
    • 非传统题 intro/non-trad.md
    • 工具软件:
      • 评测工具 intro/judgers.md
      • 编辑工具:
        • Vim intro/editor/vim.md
        • Emacs intro/editor/emacs.md
        • VS Code intro/editor/vscode.md
        • Atom intro/editor/atom.md
        • Eclipse intro/editor/eclipse.md
        • Notepad++ intro/editor/npp.md
        • Dev-C++ intro/editor/devcpp.md
      • WSL (Windows 10) intro/wsl.md
      • Special Judge intro/spj.md
      • Testlib:
        • Testlib 简介 intro/testlib/index.md
        • 通用 intro/testlib/general.md
        • Generator intro/testlib/generator.md
        • Validator intro/testlib/validator.md
        • Interactor intro/testlib/interactor.md
        • Checker intro/testlib/checker.md
      • OJ 工具 intro/oj-tool.md
    • Docker 部署 intro/docker-deploy.md
    • 关于本项目 intro/about.md
    • 如何参与 intro/htc.md
    • F.A.Q. intro/faq.md
    • 致谢 intro/thanks.md
  • 语言基础:
    • C++ 基础:
      • Hello, World! lang/helloworld.md
      • C++ 语法基础 lang/basic.md
      • 变量 lang/var.md
      • 运算 lang/op.md
      • 数组 lang/array.md
      • 结构体 lang/struct.md
      • 指针 lang/pointer.md
      • 分支 lang/branch.md
      • 循环 lang/loop.md
      • 函数 lang/func.md
      • 文件操作 lang/file-op.md
    • C++ 标准库:
      • C++ 标准库简介 lang/csl/index.md
      • STL 容器:
        • STL 容器简介 lang/csl/container.md
        • 迭代器 lang/csl/iterator.md
        • 序列式容器 lang/csl/sequence-container.md
        • 关联式容器 lang/csl/associative-container.md
        • 无序关联式容器 lang/csl/unordered-container.md
        • 容器适配器 lang/csl/container-adapter.md
      • STL 算法 lang/csl/algorithm.md
    • C++ 进阶:
      • 类 lang/class.md
      • 新版 C++ 特性 lang/new.md
      • pb_ds:
        • pb_ds 简介 lang/pb-ds/index.md
        • 堆 lang/pb-ds/pq.md
        • 平衡树 lang/pb-ds/tree.md
    • Pascal 转 C++ 急救 lang/pas-cpp.md
    • Python 速成 lang/python.md
    • Java 速成 lang/java.md
  • **方法:
    • **方法简介 basic/index.md
    • 枚举 basic/enumerate.md
    • 模拟 basic/simulate.md
    • 递归 & 分治 basic/divide-and-conquer.md
    • 贪心 basic/greedy.md
    • 排序:
      • 排序简介 basic/sort-intro.md
      • 选择排序 basic/selection-sort.md
      • 冒泡排序 basic/bubble-sort.md
      • 插入排序 basic/insertion-sort.md
      • 计数排序 basic/bucket-sort.md
      • 快速排序 basic/quick-sort.md
      • 归并排序 basic/merge-sort.md
      • 堆排序 basic/heap-sort.md
      • 基数排序 basic/radix-sort.md
      • 希尔排序 basic/shell-sort.md
      • 排序相关 STL basic/stl-sort.md
      • 排序应用 basic/use-of-sort.md
    • 二分 basic/binary.md
    • 倍增 basic/binary-acc.md
    • 构造 basic/construction.md
    • 前缀和 & 差分 basic/prefix-sum.md
  • 搜索:
    • 搜索部分简介 search/index.md
    • DFS(搜索) search/dfs.md
    • BFS(搜索) search/bfs.md
    • 双向搜索 search/bidirectional.md
    • 启发式搜索 search/heuristic.md
    • A* search/astar.md
    • 迭代加深搜索 search/iterative.md
    • IDA* search/idastar.md
    • 回溯法 search/backtracking.md
    • Dancing Links search/dlx.md
    • 优化 search/opt.md
  • 动态规划:
    • 动态规划部分简介 dp/index.md
    • 记忆化搜索 dp/memo.md
    • 背包 DP dp/knapsack.md
    • 区间 DP dp/interval.md
    • DAG 上的 DP dp/dag.md
    • 树形 DP dp/tree.md
    • 状压 DP dp/state.md
    • 数位 DP dp/number.md
    • 插头 DP dp/plug.md
    • 计数 DP dp/count.md
    • DP 优化:
      • 二进制分组解多重背包 dp/opt/binary-knapsack.md
      • 单调队列/单调栈优化 dp/opt/monotonous-queue-stack.md
      • 斜率优化 dp/opt/slope.md
      • 四边形不等式优化 dp/opt/quadrangle.md
      • 状态设计优化 dp/opt/state.md
    • 其它 DP 方法 dp/misc.md
  • 字符串:
    • 字符串部分简介 string/index.md
    • 标准库 string/lib-func.md
    • 字符串匹配 string/match.md
    • 哈希 string/hash.md
    • 前缀函数与 KMP 算法 string/kmp.md
    • Z 函数(扩展 KMP) string/z-func.md
    • 字典树 (Trie) string/trie.md
    • 回文自动机 string/pam.md
    • 后缀数组 (SA) string/sa.md
    • AC 自动机 string/ac-automaton.md
    • 后缀自动机 (SAM) string/sam.md
    • 后缀树 string/suffix-tree.md
    • Manacher string/manacher.md
    • 最小表示法 string/minimal-string.md
    • Lyndon 分解 string/lyndon.md
  • 数学:
    • 数学部分简介 math/index.md
    • 进制 math/base.md
    • 位运算 math/bit.md
    • 高精度 math/bignum.md
    • 快速幂 math/quick-pow.md
    • 整除及其性质:
      • 素数 math/prime.md
      • 最大公约数 math/gcd.md
      • 欧拉函数 math/euler.md
      • 筛法 math/sieve.md
      • 欧拉定理 & 费马小定理 math/fermat.md
      • 类欧几里德算法 math/euclidean.md
    • 同余方程相关:
      • 裴蜀定理 math/bezouts.md
      • 乘法逆元 math/inverse.md
      • 线性同余方程 math/linear-equation.md
      • **剩余定理 math/crt.md
      • BSGS math/bsgs.md
      • 原根 math/primitive-root.md
    • 线性代数:
      • 矩阵 math/matrix.md
      • 高斯消元 math/gauss.md
      • 线性基 math/basis.md
    • 复数 math/complex.md
    • 分段打表 math/dictionary.md
    • 牛顿迭代法 math/newton.md
    • 数论函数相关:
      • 莫比乌斯反演 math/mobius.md
      • 杜教筛 math/du.md
      • Min_25 筛 math/min-25.md
    • 多项式:
      • 多项式部分简介 math/poly/intro.md
      • 拉格朗日插值 math/poly/lagrange.md
      • 快速傅里叶变换 math/poly/fft.md
      • 快速数论变换 math/poly/ntt.md
      • 快速沃尔什变换 math/poly/fwt.md
      • 多项式求逆 math/poly/inv.md
      • 多项式开方 math/poly/sqrt.md
      • 多项式除法|取模 math/poly/div-mod.md
      • 多项式对数函数|指数函数 math/poly/ln-exp.md
      • 多项式牛顿迭代 math/poly/newton.md
      • 多项式多点求值|快速插值 math/poly/multipoint-eval-interpolation.md
      • 多项式三角函数 math/poly/tri-func.md
      • 多项式反三角函数 math/poly/inv-tri-func.md
    • 组合数学:
      • 排列组合 math/combination.md
      • 卡特兰数 math/catalan.md
      • 斯特林数 math/stirling.md
      • 康托展开 math/cantor.md
      • 容斥原理 math/inclusion-exclusion-principle.md
      • 抽屉原理 math/drawer-principle.md
    • 概率 & 期望 math/expectation.md
    • 斐波那契数列 math/fibonacci.md
    • 置换群 math/permutation-group.md
    • 数值积分 math/integral.md
    • 线性规划 math/linear-programming.md
    • 单纯形 math/simplex.md
    • 博弈论 math/game-theory.md
    • 卢卡斯定理 math/lucas.md
    • 数学杂项 math/misc.md
  • 数据结构:
    • 数据结构部分简介 ds/index.md
    • 栈 ds/stack.md
    • 队列 ds/queue.md
    • 链表 ds/linked-list.md
    • 哈希表 ds/hash.md
    • 并查集 ds/dsu.md
    • 堆:
      • 堆简介 ds/heap.md
      • 二叉堆 ds/binary-heap.md
      • 配对堆 ds/pairing-heap.md
      • 左偏树 ds/leftist-tree.md
    • 块状数据结构:
      • 分块** ds/decompose.md
      • 树分块 ds/tree-decompose.md
      • 块状链表 ds/block-list.md
      • 块状数组 ds/block-array.md
    • 单调栈 ds/monotonous-stack.md
    • 单调队列 ds/monotonous-queue.md
    • ST 表 ds/sparse-table.md
    • 树状数组 ds/bit.md
    • 线段树 ds/seg.md
    • 线段树 & 区间历史最值 ds/seg-beats.md
    • 划分树 ds/dividing.md
    • 二叉搜索树 & 平衡树:
      • 二叉搜索树简介 ds/bst.md
      • Treap ds/treap.md
      • Splay ds/splay.md
      • WBLT ds/wblt.md
      • Size Balanced Tree ds/sbt.md
      • AVL 树 ds/avl.md
      • 替罪羊树 ds/sgt.md
      • 笛卡尔树 ds/cartesian-tree.md
    • 可持久化数据结构:
      • 可持久化数据结构简介 ds/persistent.md
      • 可持久化线段树 ds/persistent-seg.md
      • 可持久化块状数组 ds/persistent-block-array.md
      • 可持久化平衡树 ds/persistent-balanced.md
      • 可持久化字典树 ds/persistent-trie.md
      • 可持久化可并堆 ds/persistent-heap.md
    • 树套树:
      • 线段树套线段树 ds/seg-in-seg.md
      • 平衡树套线段树 ds/seg-in-balanced.md
      • 线段树套平衡树 ds/balanced-in-seg.md
      • 树状数组套主席树 ds/persistent-in-bit.md
    • K-D Tree ds/kdt.md
    • 珂朵莉树 ds/odt.md
    • 动态树:
      • Link Cut Tree ds/lct.md
      • Euler Tour Tree ds/ett.md
      • Top Tree ds/top-tree.md
    • 析合树 ds/divide-combine.md
  • 图论:
    • 图论部分简介 graph/index.md
    • 图论基础 graph/basic.md
    • DFS(图论) graph/dfs.md
    • BFS(图论) graph/bfs.md
    • 树上问题:
      • 树基础 graph/tree-basic.md
      • 最近公共祖先 graph/lca.md
      • 树的其他问题 graph/tree-misc.md
      • 树哈希 graph/tree-hash.md
      • 树链剖分 graph/hld.md
      • 树分治 graph/tree-divide.md
      • 动态树分治 graph/dynamic-tree-divide.md
      • 虚树 graph/virtual-tree.md
      • 树上启发式合并 graph/dsu-on-tree.md
    • 矩阵树定理 graph/matrix-tree.md
    • 有向无环图 graph/dag.md
    • 拓扑排序 graph/topo.md
    • 最小生成树 graph/mst.md
    • 最小树形图 graph/mdst.md
    • 最短路 graph/shortest-path.md
    • 差分约束 graph/diff-constraints.md
    • k 短路 graph/kth-path.md
    • 连通性相关:
      • 强连通分量 graph/scc.md
      • 双连通分量 graph/bcc.md
      • 割点和桥 graph/bridge.md
      • 2-SAT graph/2-sat.md
    • 欧拉图 graph/euler.md
    • 哈密顿图 graph/hamilton.md
    • 二分图 graph/bi-graph.md
    • 最小环 graph/min-circle.md
    • 平面图 graph/planar.md
    • 图的着色 graph/color.md
    • 网络流:
      • 网络流简介 graph/flow.md
      • 拆点 graph/flow/node.md
      • 最大流 graph/flow/max-flow.md
      • 最小割 graph/flow/min-cut.md
      • 费用流 graph/flow/min-cost.md
      • 上下界网络流 graph/flow/bound.md
    • Prufer 序列 graph/prufer.md
    • 图论杂项 graph/misc.md
  • 计算几何:
    • 计算几何部分简介 geometry/index.md
    • 二维计算几何基础 geometry/2d.md
    • 三维计算几何基础 geometry/3d.md
    • 距离 geometry/distance.md
    • Pick 定理 geometry/pick.md
    • 三角剖分 geometry/triangulation.md
    • 凸包 geometry/convex-hull.md
    • 扫描线 geometry/scanning.md
    • 旋转卡壳 geometry/rotating-calipers.md
    • 半平面交 geometry/half-plane.md
    • 平面最近点对 geometry/nearest-points.md
    • 随机增量法 geometry/random-incremental.md
    • 计算几何杂项 geometry/misc.md
  • 杂项:
    • 杂项简介 misc/index.md
    • 读入、输出优化 misc/io.md
    • 复杂度 misc/complexity.md
    • 离散化 misc/discrete.md
    • 离线算法:
      • 离线算法简介 misc/offline.md
      • CDQ 分治 misc/cdq-divide.md
      • 整体二分 misc/parallel-binsearch.md
      • 莫队算法 misc/mo-algo.md
    • 分数规划 misc/frac-programming.md
    • 随机化:
      • 随机函数 misc/random.md
      • 爬山算法 misc/hill-climbing.md
      • 模拟退火 misc/simulated-annealing.md
    • 悬线法 misc/largest-matrix.md
    • 计算理论基础 misc/cc-basic.md
    • 字节顺序 misc/endianness.md
    • 约瑟夫问题 misc/josephus.md
    • Stern-Brocot 树与 Farey 序列 misc/stern-brocot.md
    • 格雷码 misc/gray-code.md
    • 表达式求值 misc/expression.md
  • 专题:
    • RMQ topic/rmq.md

support 中文搜索

用 jp 的分词可以有不错的效果,但是还是有点坑,感觉还是应该手动搞个结巴分词啥的

  • 听说文章很多的时候用 lunr 得到的 json 会太大 (这个要日后再 check 一下)
    upd: mkdocs v1.0 之后,改起来变得好麻烦,感觉要弃坑了

  • 可以试下部署个 elasticsearch

  • algolia https://github.com/squidfunk/mkdocs-material/issues/414 这个好像在 v1.0 修复了 感觉可以试一下的样子

  • 百度站内:

<script type="text/javascript">(function(){document.write(unescape('%3Cdiv id="bdcs"%3E%3C/div%3E'));var bdcs = document.createElement('script');bdcs.type = 'text/javascript';bdcs.async = true;bdcs.src = 'http://znsv.baidu.com/customer_search/api/js?sid=16621994376039180257' + '&plate_url=' + encodeURIComponent(window.location.href) + '&t=' + Math.ceil(new Date()/3600000);var s = document.getElementsByTagName('script')[0];s.parentNode.insertBefore(bdcs, s);})();</script>

add 动态规划-优化及其他

首先,十分欢迎你来给 OI WIki 开 issue,在提交之前,请花时间阅读一下这个模板的内容,谢谢合作!

  • 希望添加的是什么?
    动态规划-优化及其他

  • 英文叫什么?
    optimization

#203

建议cdq分治这一篇回炉重造一下

对于cdq分治的复杂度分析:一般来说是$T(n)=2T(\frac{n}{2})+f(n)$,然后需要主定理分析(不是什么玄学啊

然后就是log请使用\log 以及不要将$O(n\log^ n)$写成O(n(log n)^2)……

还有可能大概对偏序有什么误解……建议去维基上看看偏序的定义……

工作记录

Hi, all

大家有时间的时候可以 edit / reply 一下这个 issue,记录一下 正在填 / 打算填 的内容

cc: @24OI/wiki


请不要引入会导致 CI fail 掉的 commit

add 线性同余方程(congruence)

首先,十分欢迎你来给 OI WIki 开 issue,在提交之前,请花时间阅读一下这个模板的内容,谢谢合作!

  • 希望添加的是什么?

  • 英文叫什么?

  • 有什么参考资料?

issue 标题请写为 'add ' + 要添加的内容

Add std :: vector and Add std :: priority_queue 我在写

首先,十分欢迎你来给 OI WIki 开 issue,在提交之前,请花时间阅读一下这个模板的内容,谢谢合作!

  • 希望添加的是什么?

  • 英文叫什么?

  • 有什么参考资料?

issue 标题请写为 'add ' + 要添加的内容

状压DP的建议

比如下面这个常见模板

int maxn=1<<n; //规定状态的上界
for (int i=0;i<maxn;i++){
    if (i&(i<<1)) continue;//如果i情况不成立就忽略
    Type[++top]=i;//记录情况i到Type数组中
}
for (int i=1;i<=top;i++){
    if (fit(situation[1],Type[i]))
        dp[1][Type[i]]=1;//初始化第一层
}
for (int i=2;i<=层数(dp上界);i++){
    for (int l=1;l<=top;l++)//穷举本层情况
        for (int j=1;j<=top;j++)//穷举上一层情况(上一层对本层有影响时)
            if (situation[i],Type[l]和Type[j]符合题意)
                dp[i][l]=dp[i][l]+dp[i-1][j];//改变当前层(i)的状态(l)的方案种数
}
for (int i=1;i<=top;i++) ans+=dp[上界][Type[i]];

其实初学者第一眼完全看不懂,因为这个"状态i"以及其判断:状态i到底是个啥意思.
建议能加入其解释,就是将某一行的放置情况用01串表示,然后当成二进制数存储.
i&(i<<1)就是吧某一行的某种01串放置情况与其左移一位之后利用&运算判断是否有某两个位置都是1,因为对比串是(i<<1),所以即是判断这种情况是否存在两两不相邻
其次还要着重提醒初学者位运算的级别极低,全部都要打括号

Need CONTRIBUTING.md

A CONTRIBUTING.md tells contributors how to make a commit, like commit name style, code style, etc.

杂项里有个奇怪的页面

建议把它删了,并在 git 的历史里也删除(请使用 git rebase),然后把这个 issue 给删除,谢谢!

add IDA*

开始写IDA*(迭代加深搜索A*算法)啦!

suggest : Use squash merge and amend commit in certain condition

如果几个 commit 都是在做同一件事,或者说后面的 commit 是对前面的小修补,我们可以在 commit 时使用git commit --amend,或在 merge 时使用 squash merge,将几个 commit 合成一个,这样可以使 master 分支保持整洁。
snipaste_2018-08-19_11-17-46
(如果不是同一件事就别合并了23333

Example: #93 #122 #127

如何?

考虑统一内容格式

比如 toc 里面对于 参考代码、相关例题、定义 等等的称呼

再比如: C++11 如何称呼(c++11/C++11/Cpp11),新特性的说明

比如不建议使用 using namespace std,那么示例代码里也不要有

upd: 节点 & 结点

upd: 代码长度规定,比如长度超过十行就应折叠起来(clang-format可以干

upd:联通 & 连通

add 树套树

添加:

  • 树状数组套树状数组
  • 树状数组套线段树
  • 树状数组套主席树

(套线段树和主席树并不一样)

准备写划分树啦

开学前 (9.2) 会完成划分树的讲解,这里做一个提醒。如果大家有意,可以提供帮助。洛谷名:arfa,qq:2234545188

enhance doc

miller rabin实现有误

这份代码实现的应该是fermat素性测试,比较正确的miller rabin大概是这样:

bool millerRabbin(int n) {
  int a=n-1,b=0;
  while(a%2==0) a/=2,++b;
  for (int i=1,j;i<=s;++i) {
    int x=rand()%(n-2)+2,v=quickPow(x,a,n);
    if(v==1||v==n-1) continue;
    for(j=1;j<b;++j) {
      v=(long long)v*v%n;
      if(v==n-1) break;
    }
    if(j>=b) return 0;
  }
  return 1;
}

add mex

以及不太清楚这东西放哪……

关于 e-maxx 的进度

@sshwy置顶:翻译的时侯别忘在译文结尾加入下面内容

**本页面主要译自博文[俄文标题](链接)与其英文翻译版[英文标题](链接)。其中俄文版版权协议为 Public Domain + Leave a Link;英文版版权协议为 CC-BY-SA 4.0。** 

其中俄文官网为 http://e-maxx.ru/ ,英文官网为 https://cp-algorithms.com/


计划包含一些 e-maxx 以及 e-maxx-eng 的资料,已经着手的朋友们可以在这里记录一下,避免在填同一个坑。(目标不是重写,而是将 e-maxx / e-maxx-eng 里面我们之前没有的内容 merge 进来)

【注】:e-maxx 的页面较多,但是每个页面工作量不是很大,欢迎感兴趣的同学认领一下力所能及的部分

有的页面质量不高,也可以留言标注一下跳过 ❤️

e-maxx : Public Domain + Leave a link
e-maxx-eng : CC BY-SA

仓库在 https://github.com/cp-algorithms/cp-algorithms

@Tiphereth-A 目录已更新 2023-05-07

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.