=======================
== BigOrangeQWQ Blog ==
=======================

浅说 ST表

数据结构 算法 动态规划
ST 表 ST 表是利用倍增思想做预处理的一种数据结构,而预处理所指的算法自然就是动态规划。 这是一个二维的的动态规划,它的状态如下: 设 $f(i,j)$ 代表第 $i$ 个数到第 $i + 2^j - 1$ 个数的最大值,即为:$f(i, j) = \max(i,i + 2^j - 1)$ 这里需要画下重点,请劳烦读者再观察一次该式,后面的推导全部基于此 $$f(i, j) = \max(i,i + 2^j - 1)$$ 可以发现 $f(i, j)$ 所管辖的区间取决于 $[i, i + 2^{j - 1} - 1] , [i + 2^{j - 1},i + 2^j - 1]$ 这两个区间。 得转移公式:$f(i, j) = \max(f(i, j - 1), f(i + 2^{j - 1}, j - 1))$ Read more...

个人的收藏网站

网站收集
CS Course Rust 官网 Rust 期刊 Rust TRPL Rust 圣经,不推荐入门 RISC-V 官网 Lua 官网 Lua 手册 License 选择自己喜欢的开源许可证吧! Python 文档 Python Cookbook 绘制流程图 画图 字节码/汇编 每日资讯 有向图/无向图编辑器

浅谈 Docker in Docker 的两种方法

容器 Docker DinD
DinD (Docker in Docker) 简介 在运行某一个容器时,该容器若存在运行其它容器的需求时,需要在需要运行其它容器的容器安装一个 Docker 环境 但是我们会发现安装一个 Docker 环境来启动其它容器的代价是巨大的,这样的容器会十分笨重且难以管理 于是可以自然的想到一个很重要的点,需要在容器里面复用容器外的 Docker 环境,这样既能启动容器,也很轻便快捷。 怎么复用呢?有什么方法能够支持复用? 当我们每次启动 Docker 容器时,是不是可以提供或者同步什么东西过去?环境变量,挂载文件还是网络呢? 是不是可以通过网络的形式做通信?藉此来连接到外部的 Docker 环境,我们是不是只需要一个 Client 而不需要启动一个 Docker 了。 有两种技术可言,一个是 DinD 容器,启动一个 DinD 容器,让其它容器通过 Network 形式连接到该容器后来创建新的容器,但这种方式因为要使用到 –privilege 选项而容易有安全风险问题。 第二个 DooD(Docker outside of Docker) 使用套接字(Socket)的解决方案,我们只需要将 /var/run/docker.sock 文件挂载到容器内部即可: docker run -v /var/run/docker.sock:/var/run/docker.sock ... 只需要在需要启动其它的容器内安装 Docker Cli 或者是其它能连接的 Client 即可解决此事。
1 of 1