数学
文章平均质量分 63
不见月光见星光
这个作者很懒,什么都没留下…
展开
-
海伦公式判断点和三角形的关系
一 海伦公式如果有一个三角形,它的三边分别为 $a, b ,c $, 则三角形的面积为 A=s(s−a)(s−b)(s−c)A = \sqrt{s(s-a)(s-b)(s-c)}A=s(s−a)(s−b)(s−c) , s=a+b+c2s = \frac{a+b+c}{2}s=2a+b+c二 判断一点和三角形的关系三角形的三点为A,B,CA, B, CA,B,C,我们需要判断的点是DDD如果S△ABC=S△BCD+S△ABD+S△ACDS\triangle ABC = S\triangle原创 2021-09-13 12:51:52 · 545 阅读 · 0 评论 -
拓展欧几里算法
一 定义拓展欧几里通常用于解决同余方程同余方程:形如ax+by=gcd(a,b)ax+by =\gcd(a,b)ax+by=gcd(a,b)的方程二 解法因为gcd(a,b)=gcd(a,b mod a)\gcd(a,b) = \gcd(a,b\space mod\space a)gcd(a,b)=gcd(a,b mod a)假设现在有bx′+(a mod b)y′=gcd(b,a mod b)bx^{'}原创 2021-09-08 14:33:37 · 106 阅读 · 0 评论 -
容斥原理及其应用
容斥原理一 定义容斥原理就是说对于一些集合,要去求他们的并集。from wiki二 解题容斥原理优化多重背包问题样板题 优化的方向:如果已经知道物品的全部价值,进行多次查询,每一次的物品数目都是不一样的,背包的容量也是不一样的,此时如果直接去使用多重背包的一般解法(使用二进制转化为01背包问题或者使用单调队列进行优化)都会…T掉。所以要利用前面的状态就可以使用容斥原理进行优化 在初始的时候,我们将其作为完全背包进行处理,得到在物品数目不受限制的情况下的所有的可原创 2021-09-06 16:51:12 · 382 阅读 · 0 评论 -
费马小定理及其应用
费马小定理一 定理内容如果p是质数,并且a不是p的倍数。那么就有ap−1=1(mod p)a^{p-1} = 1(mod\space p)ap−1=1(mod p)其次我们还需要去了解逆元的意义对于正整数a和p,如果有ax≡1(mod p)ax\equiv 1(mod\space p)ax≡1(mod p) ,那么称x的最小整数解为a模p的逆元由上面的结论我们可以得到a的逆元其实就是ap−2a^{p-2}ap−2 ,对于这个数我们可以使用快速幂来计算结果原创 2021-09-05 20:37:24 · 3814 阅读 · 0 评论 -
康托展开算法
康托展开一 定义 康托展开其实就是一个类似于hash的做法,是一个全排列到一个自然数的双射,常用于构建hash表的空间压缩,以此就能得到一个数的一个排列和根据这个排列得到这个数的大小,我觉得单独说这个东西可能有一点玄学,还是拿一道题目来看二 例题三 解题 在这道题目里面,我们首先得到这个最初始排列的字典序的位置,如 4 2 1 ,对于第一位4来说,这个数字前面就只有2 1两个数字,所以前面的数字为2*2!,对于数字2来说,前面的数字只有1,所以前面的数位1 *1,对于1原创 2021-09-04 14:27:29 · 106 阅读 · 0 评论 -
差分约束算法
差分约束算法一 定义 差分约束算法通常用于解决差分约束算法==(属于线性规划)==,解决差分约束问题我们通常将它转化为最短路或者最长路问题,比如我们有如下的差分关系{x1−x2>3x2−x3>2...\begin{cases}&x_{1}-x_{2}>3\\&x_{2}-x_{3}>2\\&... \end{cases}⎩⎪⎨⎪⎧x1−x2>3x2−x3>2...,我们可以将每一个变元都看作是一个点,x1−x2>3x_{原创 2021-08-16 11:50:18 · 122 阅读 · 0 评论 -
矩阵加速算法
矩阵加速一 原理推导 矩阵加速即利用矩阵的计算来得到一个数列的递推式,进行计算的矩阵可以利用数列的数项关系得到,以下面的一个数列式为例ax={1x∈{1,2,4}ax−1+ax−3x>=4a_{x}= \begin{cases} 1& x\in\{1,2,4\}\\ a_{x-1}+a_{x-3}& x>=4 \end{cases}ax={1ax−1+ax−3x∈{1,2,4}x>=4,求它的第n项的值 利用上面的关系式可以得到三个式子{ax=1∗a原创 2021-08-16 09:51:35 · 508 阅读 · 0 评论 -
裴蜀定理详解
裴蜀定理一 内容 对任何整数a、b和它们的d,关于x和y的线性不定方程(称为裴蜀等式):若a,b是整数,且gcd(a,b)=d,那么对于任意的整数对任何整数a、b和它们的d,关于x和y的线性不定方程(称为裴蜀等式):若a,b是整数,且gcd(a,b)=d,那么对于任意的整数对任何整数a、b和它们的d,关于x和y的线性不定方程(称为裴蜀等式):若a,b是整数,且gcd(a,b)=d,那么对于任意的整数x,y,ax+by都一定是d的倍数,特别地,一定存在整数x,y,使ax+by=d成立。x,y,ax+by都原创 2021-08-15 20:01:23 · 1809 阅读 · 0 评论 -
欧拉筛法
欧拉筛法用途 用于查找在一定范围内的所有素数原理 在一定的范围内,如果一个数不为质数,那么它一定可以被表示为一个数和另一个质数的乘积,我们可以借此在一定范围内筛选掉不为质数的数,最后剩下的都为质数。代码#include<iostream>using namespace std;#define MAXN 100000010#define ll long longll prime[MAXN];bool vis[MAXN];int cnt=0;void Euler_prime原创 2021-04-23 20:33:30 · 395 阅读 · 0 评论 -
浅谈位运算
一 数学基础 在离散数学 高考数学里我们知道了逻辑关系,如 “与”“ 或 ”“非”,而在计算机中,用1代表真,0代表假1 “与”(and) &需要两个数都为真,才为真位运算表示为1 1 11 0 0ans=1 0 02 “或”(or) |有一个为真,则为真位运算表示为1 1 11 0 0ans=1 1 13 “非”(not) ~也就是按位取反,真变假,假变真1 1 10 0 0在计算机中只有这种逻原创 2021-02-22 08:23:41 · 132 阅读 · 0 评论 -
排列组合的C语言实现
排列与组合一 排列数学定义Amn\quad A_m^nAmn表示在m个数中取出n个数,并进行全排列,当m=n时,为全排列,可写为n!n!n!。Amn=m(m−1)(m−2)....(m−n)A_m^n=m(m-1)(m-2)....(m-n)Amn=m(m−1)(m−2)....(m−n)代码实现(求排列的种类):int arrange(int m,int n){ if(m==n) return n; return m*arrange(m-1,n);}排列的具体形式原创 2021-02-09 21:39:50 · 10053 阅读 · 7 评论