作者:Akvicor

网络流

网络流 引入 假设你所在的村庄开通了地下流水管道,自来水厂源源不断的提供水,村民们用水直接或间接用水,而村庄用完的废水统一回收于另一点(设从自来水厂流出的水全部回收)。当然每个管道有一定的容量,求出废水站最多可以汇聚多少水。 概念

Akvicor 发布于 2019-07-28

链式前向星

前向星是一种特殊的边集数组中的每一条边按照起点从小到大排序,如果起点相同就按终点从小到大排序,并记录下某个点为起点的所有边在数组中的起始位置和存储长度,那么前向星就构造好了。 len[i]来记录所有以i为起点的边在数组中的存储长度 head[i]来记录以i为边集在数组中的第一个位置 我们输入的边的顺

Akvicor 发布于 2019-07-26

最大子矩阵

最大矩阵 最大正方形 最大子矩阵和 最大矩阵 存到了队列里,可以求第k大 /** * author: Akvicor * created: 2019-07-21 21-00-00 **/ #include <bits/stdc++.h> using namespace std;

Akvicor 发布于 2019-07-22

直线划分平面

如果一个平面中有n条直线,最多能将平面划分成多少区域。 当1条线时 2个平面 当2条线时 4个平面(交叉1根线等多出2个平面) 当3条线时 7个平面 (交叉2根线等多出3个平面) 当4条线时 11个平面 (交叉3根线等多出4个平面) 其实已经可以递推了,前n项和

Akvicor 发布于 2019-05-31

判断两个线段相交

如何判断两条直线是否相交? 这很容易。平面直线,无非就是两种关系:相交 或 平行。因此,只需判断它们是否平行即可。而直线平行,等价于它们的斜率相等,只需分别计算出它们的斜率,即可做出判断。 但倘若我把“直线”换成“线段”呢——如何判断两条线段是否相交? 这就有些难度了。和 直线 不同,线段 是有固定

Akvicor 发布于 2019-05-29

素数判定

所谓素数,是指恰好有两个约数的正整数。 埃氏筛法 区间筛法 Miller-Rabin素性测试 判定单一的一个数是不是素数,素性测试: bool is_prime(int n){ /* 判定一个数是不是素数 ,假设输入的数都是正整数 */ for (int i = 2; i * i <= n

Akvicor 发布于 2019-05-28

线段树

线段树(segment tree),顾名思义, 是用来存放给定区间(segment, or interval)内对应信息的一种数据结构。与树状数组(binary indexed tree)相似,线段树也用来处理数组相应的区间查询(range query)和元素更新(update)操作。与树状数组不同

Akvicor 发布于 2019-05-28

最大子列和问题

求取数组中最大连续子序列和,例如给定数组为

Akvicor 发布于 2019-05-27

分解质因数

每个合数都可以写成几个质数相乘的形式,其中每个质数都是这个合数的质因数。如果一个质数是某个数的因数,那么就说这个质数是这个数的质因数。而这个因数一定是一个质数。 把一个合数用质因数相乘的形式表示出来,叫做分解质因数。如

Akvicor 发布于 2019-05-26

约数定理(约数个数定理,约束和定理)

约数个数定理可以计算出一个数约数的个数 约数个数定理 对于一个大于1正整数n可以分解质因数:

Akvicor 发布于 2019-05-26
上一页 下一页