2020牛客暑期多校训练营第六场
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
比赛链接https://ac.nowcoder.com/acm/contest/15880?&headNav=www
B Binary Vector题意随机n个n维01向量,询问这个n个向量线性无关的概率
题解考虑第一个向量,可以有$2^n-1$选择,你不可以选择全为0的向量
然后考虑与第一个向量线性无关的向量,可以有$2^n-2^1$个,因为第一个向量的0倍和1倍不能选。
然后考虑与第一个和第二个向量线性无关的向量,可以有$2^n-2^2$个
于是最终的方案数为$\begin{aligned}\prod_{i=0}^{n}2^n-2^i\end{aligned}$ , 考虑分母为$2^{n\cdot n}$$$\begin{aligned}&\frac{\begin{aligned}\prod_{i=0}^{n-1}2^n-2^i\ ...
蒙哥马利模乘
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
核心思想蒙哥马利运算是一种新的运算,他把乘模简化为对进制数的除法,以及简单加法,这就使得乘模避开了大量的取模试除。
蒙哥马利表示法例如$a%mod$的蒙哥马利表示法为$f(a) = a\times p% mod$,$p$是一个进制数, 我们储存$f(a)$的值,而不是a的值。
复原于是我们很容易发现,对于蒙哥马利表示法变回普通表示法时只需要乘p对mod的逆元即可。
p的取值蒙哥马利表示法会找一个进制数使得普通数字转化为蒙哥马利表示法,一般来说这是一个刚好大于模数的进制数。
乘法如果我们要计算$a\cdot b%mod$
在蒙哥马利表示法中,$f(a\cdot b)$并不是简单的$f(a)\cdot f(b)$, 实际上应该是$\frac{f(a)\cdot f(b)}{p}$
于是这里出现了除法,我们就是靠着这个除以p,避开了对非进制数取模,由于p是一个2进制幂,所以可以依靠 ...
群论
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
集合论集合论是群论的基础,群论是建立在集合论上的。
集合的基本操作集合的交$$A \cap B = \lbrace x \vert x \in A \wedge x \in B \rbrace$$
集合的并$$A \cup B = \lbrace x\vert x \in A \vee x \in B \rbrace$$
集合的笛卡尔积注意到笛卡尔积是一个二元组。$$A \times B = \lbrace (x,y) \vert x \in A \wedge y \in B \rbrace$$
集合的映射我们定义一个映射$f$满足 $f(x) = y $, 其中 $x\in A$, $y\in B$, 即映射可以把一个集合A中的元素映射到集合B中的一个元素。
可以称映射$f$作用于集合A,映射到集合B
群论二元运算给定集合$A$,不难发现$A\t ...
第45届ICPC亚洲赛区昆明站
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
L Simone and graph coloring链接https://ac.nowcoder.com/acm/contest/12548/L?&headNav=acm
题意给你一个排列,排列的长度不超过$10^6$。你要对他的每一个元素进行染色,要求染色后不存在任何一个逆序对的两个元素颜色相同。你需要输出染色的数组。
输入12345241 3 4 221 2
输出123421 1 1 2 11 1
题解逆向思维,我们假设自己已经有了一个答案,我们对着这个答案按照颜色对排列进行子序列拆分,则有几个颜色就有一个子序列,这些子序列恰好构成原排列的一个划分。
可以断言,每一个子序列都是严格单调增。
然后回到正向思维,我们要做的就是把这个排列分成n个单调增的划分,如何最小化n?
我们贪心地维护一些桶,并按顺序枚举排列中的元素,把他们放到这些桶里面,保证桶中的数据单调增,如果他无法 ...
latex常用公式
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
符号右键符号选择Copy to Clipboard即可复制代码。
数学
符号
查看
点乘
$$\cdot$$
集合论
符号
查看
交
$$\cap$$
并
$$\cup$$
笛卡尔积
$$\times$$
竖线
$$\vert$$
置换$$\begin{pmatrix}1 & 2 & 3\\3 & 2 & 1\end{pmatrix} \circ\begin{pmatrix}2 & 3 \\3 & 2\end{pmatrix}=\begin{pmatrix}1 & 2 & 3 \\2 & 3 & 1\end{pmatrix}$$
参考1
第45届ICPC亚洲赛区南京站
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
F Fireworks链接https://ac.nowcoder.com/acm/contest/10272/F
题意你想要放一个的烟花,你可以花费时间n来制作一个烟花,花费时间m点燃所有的烟花,烟花被点燃以后就释放了,但是他只有$\frac{p}{10^4}$的概率完美释放,你想完美释放至少一个烟花,那么需要的最少时间的期望是多少?
T组输入
数据范围$T<10^4, n<10^9, m<10^9, p<10^4$
题解假设准备了k个烟花,然后释放,这个期望值是$\frac{kn+m}{1-(1-\frac{p}{10^4})^k}$ , 这个应该只有一个极值点,也就是最小值,队友用三分过了,当然这个不好证明,其实直接使用模拟退火就可以了。下面提供了三分和模拟退火的算法。
代码123456789101112131415161718192021222324252 ...
第45届ICPC亚洲赛区济南站
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
A Matrix Equation链接https://ac.nowcoder.com/acm/contest/10662/A
题意给你两个01方阵AB,你要找到一个01矩阵C,使得在2的模群中$A\times C=B\cdot C$ ,其中 $\times$ 为一般矩阵乘积, 符号 $\cdot$ 为哈达马积(Hadamard product)
问你C有多少个解
数据范围AB的行列都小于2000
题解通过观察,我们发现C的每一列是互相独立的,不妨设他的第i列为$C_i$ 我们取出这里一列重新构建一个矩阵,这是一个n行一列的矩阵。$$\begin{bmatrix} C_{1i} \ C_{2i} \ C_{3i} \ . \ . \ . \ C_{ni} \\end{bmatrix}$$然后就有了$$\begin{aligned ...
httpd
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
123456docker run \-d \--name httpd \-p 8085:80 \-v $HOME/sharefile:/usr/local/apache2/htdocs/sharefile \httpd
CICD
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
CI/CD持续集成、持续交付、持续部署
Continuous Integration持续集成,即每当开发者对代码进行push,会自动化构建流水线,在流水线中进行自动化冒烟测试,进行集成测试,当测试通过,可以通过邮件的方式告知开发者。
Continuous Delivery 持续交付,当CI通过以后,流水线会自动化地将代码进行构建,并部署到类真实环境中(即测试环境、预发步环境)如果代码没有问题,可以继续手动部署到生产环境中。
Continuous Deployment持续部署,当持续交付之后,代码即可自动化部署到生产环境。
How To Do it创建项目首先在Github创建项目。
我们拿一个spring boot项目来说, 直接进入到Dockerfile下, 接下来简单介绍一下这个Dockerfile,第一个FROM表示用maven作为基础镜像,COPY . /app把整个 ...
腾讯云轻量级云服务器
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
选购服务器点击链接并登陆即可来到轻量级服务器的选购地址,然后我们选择香港,选择centos8。选香港是因为那边的服务器可以访问外网并搭建VPN,而且域名也不用备案,比较简单,选centos8是因为现在流行的服务器都是centos
我们可以看到这个服务器是非常非常便宜的,但是1核1G也有他自己的缺点,即只能开两三个应用。
死机了大家可以自己尝试,如果我们使用docker开启了msyql服务,整个服务器就死机了,原因是内存占用过高导致系统不稳定。
加大内存轻量级服务器的内存很小,我们需要使用交换分区来伪造出更大的内存,按照以下方案来构造一个8G的交换空间。
1234567cd /datamkdir swapcd swap# 我们使用10G的交换空间 , 既然都已经使用了最低配的机器,就不在乎速度了。dd if=/dev/zero of=swapfile bs=1M count=8192 ...