Akvicor World 太棒了,我逐渐理解一切

判断两个线段相交

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

Akvicor 发布于 2019-05-29

最大子列和问题

求取数组中最大连续子序列和,例如给定数组为 A=1,3,−2,4,−5A={1,3,-2,4,-5}, 则最大连续子序列和为

Akvicor 发布于 2019-05-27

分解质因数

每个合数都可以写成几个质数相乘的形式,其中每个质数都是这个合数的质因数。如果一个质数是某个数的因数,那么就说这个质数是这个数的质因数。而这个因数一定是一个质数。 把一个合数用质因数相乘的形式表示出来,叫做分解质因数。如 30=2×3×530=2×3×5 。分解质因数只针对合数。 定义

Akvicor 发布于 2019-05-26

高精度(Arbitrary-precision arithmetic)

在运算过程中如果运算结果很大,普通的数据类型无法储存,就需要用到所谓的高精度算法,即用数组来存储整数,并模拟手算的方式进行四则运算。 Code # 1 #include <bits/stdc++.h> using namespace std; struct BigInteger { sta

Akvicor 发布于 2019-05-23

KMP 算法

Knuth-Morris-Pratt 字符串查找算法,简称为 “KMP算法”,常用于在一个文本串S内查找一个模式串P 的出现位置,这个算法由Donald Knuth、Vaughan Pratt、James H. Morris三人于1977年联合发表,故取这3人的姓氏命名此算法。 算法流程 假设现在文

Akvicor 发布于 2019-04-30

Green公式-判断多边形边界曲线顺/逆时针

判断一个多边形的边界曲线是否是顺时针或者逆时针 double d = 0; for (int i = 0; i < n - 1; i++) { d += -0.5 * ( y[i + 1] + y[i]) * (x[i + 1] - x[i]); } if ( d > 0) cout

Akvicor 发布于 2019-04-14

动态规划

背包的状态转换方程 : f[i,j]=Max{f[i−1,j−Wi]+<

Akvicor 发布于 2019-04-05

统计字符串中子串数目

统计一个字符串在另一个字符串中出现的次数,包含重叠和非重叠两种情况 子串可重叠情况 int count_substring_in_string_overlapping(const std::string &str, const std::string &sub) { int num = 0;

Akvicor 发布于 2019-03-22

欧拉降幂 && 快速幂

欧拉φ函数:在数论中,对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为φ函数、欧拉商数等。 φ(1)=1; φ(2)=1; φ(3)=2; φ(4)=2; φ(9)=6 欧拉φ函数 int GetEuler(int n) { //欧拉函数

Akvicor 发布于 2019-02-18
上一页 下一页