摘要: 所谓仿射变换,是一种二维坐标到二维坐标之间的线性变换,保持了变换的图形平直性(直线还是直线,圆弧还是圆弧)和平行性(图形之间相对位置不变)。 仿射变换的实现方法包括平移, 缩放,翻转, 旋转和剪切; 最下面的0 0 1为为了其成为齐次坐标而添加的行元素, 假如是单纯的二维的话只能完成缩放和旋转的操作 阅读全文
posted @ 2018-08-18 21:03 LEVEL5 阅读(481) 评论(0) 推荐(0) 编辑
摘要: 弧长公式:L = n(圆心角度数)× π(圆周率)× r(半径)/180=α(圆心角弧度数)× r(半径) 扇形面积公式: 弓形面积公式: 弦长公式:推导思路是直线与圆相交 阅读全文
posted @ 2018-08-18 21:03 LEVEL5 阅读(5386) 评论(0) 推荐(0) 编辑
摘要: 判断两条直线是否相交,有两个步骤确定: 1、快速排斥。 2、跨立实验(啊啊啊,逼格好高) 然而事实解法的逼格却。。。 一 、快速排斥简单的说就是确保他们能相交的基本的要求是满足的: 如上图,明显的,要两个线段相交,就要竖直方向有重叠(min(a.y, b.y) < max(d.y, c.y) && 阅读全文
posted @ 2018-08-18 21:03 LEVEL5 阅读(879) 评论(0) 推荐(0) 编辑
摘要: //用的是freopen才能正常使用 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #includ... 阅读全文
posted @ 2018-08-18 21:02 LEVEL5 阅读(482) 评论(0) 推荐(0) 编辑
摘要: 欧拉函数: 在数论中,对正整数n,欧拉函数是少于等于n的数中与n互质的数的数目。 n的所有素因子的和就是euler[n] * n / 2; 欧拉函数的求法是eluer[n] = n * (1 - 1 / p1) * (1-1/p2) .......p1, p2是n的素因子,就是对于每个n的素因子都有 阅读全文
posted @ 2018-08-18 21:02 LEVEL5 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 多边形内核: 以上图,多边形的内核即为在多边形内的某一块点集,其中的点能直线的到达多边形内任意的一点。或者可以说在这个点集内可以“看见”多边形内的任意一点,如右图,明显是不存在这样一个内核的。 求解方法:增量法。按照顺时针或者逆时针顺序存储原多边形的边,每次取出一条,以它为直线割去已知平面的一部分, 阅读全文
posted @ 2018-08-18 21:02 LEVEL5 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 首先先讨论一下,对于一个三角形如何求面积: 很明显,S = |b| * |c| * |sinA| / 2 = | b × c | / 2; 学过叉积的都懂,由三角形的两个边向量就可以求出面积, 那么对于一个多边形呢(不规则的那种): 可以分解为S△ABC+S△ACD+S△ADE+S△AEF; 这个假 阅读全文
posted @ 2018-07-31 20:27 LEVEL5 阅读(3698) 评论(1) 推荐(1) 编辑
摘要: AC 自动机定义:多模匹配算法。相比于用KMP算法高效完成的单模匹配算法,多模大概就是有一个S(主串)和复数个T(模板串),对每一个模板串都进行一次kmp算是暴力的做法,而ac自动机就是用来高效解决这类问题的算法; AC自动机的构造:Trie树作为搜索数据结构+Fail指针作为当前字符失配时跳转到的 阅读全文
posted @ 2018-07-26 09:11 LEVEL5 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 一、KMP 作用:用于在一个文本串S内查找一个模式串P出现的位置 如上图,可得在第10与26处包含ptr数组; 暴力做法:暴力for,碰到不一样的直接返回,从后一个开始继续for,最差能到O(n * m) KMP 做法: 主要的思路是跳,比如你一开始从上面例子里的bacbababadababacam 阅读全文
posted @ 2018-07-20 20:32 LEVEL5 阅读(340) 评论(0) 推荐(0) 编辑