数学+数论
文章平均质量分 68
Peson_Du
这个作者很懒,什么都没留下…
展开
-
f(x)=1^x+2^x+3^x+.....+n^x;
#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;const double eps=1e-4;const int MAX=1e6+10;const ll mod=1e9+7;const int D=1000105;ll f[D...原创 2019-08-01 09:43:54 · 1693 阅读 · 0 评论 -
凸包板子
凸包就是给你一堆点,再给你一根绳子你用这个绳子把这堆点围起来!绳子与这些点所接触的点叫做凸包点,围成的图形叫做凸包!具体讲解看这里here下面是我个人的板子,做了好多题的磨练证明我的板子是可以带出门的#include<iostream>#include<cstdio>#include<cmath>#include<algorithm&g...原创 2019-08-05 20:46:25 · 245 阅读 · 0 评论 -
计算几何,点线面。
大家可以去看看我的一篇博客讲解的知识点,比较零散,加上大家的中学知识,理解下面的代码不难点击这个#include<bits/stdc++.h>using namespace std;const double pi=acos(-1.0);const double inf=0x3f3f3f3f;const double eps=1e-9;struct Point{ ...原创 2019-08-05 20:40:41 · 264 阅读 · 0 评论 -
计算几何 预备知识
pi的定义:const double pi=acos(-1.0)最大值的定义: const double inf=0x3f3f3f3f向上取整:int a=ceil(double t);向下取整:int a=floor(double t);四舍五入: int a=round(double t);内积运算又称数量积,点积α*β=|α||β|cosθ对加法满足分配律几何...原创 2019-08-05 20:37:18 · 198 阅读 · 0 评论 -
数论小知识点
1:一个数的所有质因子的和=oula(n)*n/2;2:调和级数Hn=ln(n)+c+1.0/(2*n)(n越大越靠近)(e5为分界线) c=0.57721566490153286060651209;3:n如果是一个正奇数 如果n=a*b(a,b为正整数),那么n可以写成c^2-d^2,而a=(c-d),b=(c+d)费马因子分解。。。。。。。。。。持续更新。。。。。。。。。。。...原创 2019-08-05 20:26:24 · 267 阅读 · 0 评论 -
欧拉函数 欧拉定理 欧拉降幂到底是个什么鬼??
欧拉函数:小于n与n互质的数个数欧拉定理:数论四大定理之一:若正整数a , n互质,则a^φ(n)≡1(mod n)其中φ(n)是欧拉函数(1~n)与n互质的数。 我有一篇博客专门讲解四大定理数论四大定理欧拉降幂: ...原创 2019-08-05 20:24:09 · 384 阅读 · 0 评论 -
数论四大定理(争取用最少的篇幅给你们讲解清楚)
1:费马小定理 我看好多博客在范围方面没有给清楚,我自己推了一下,给一个比较清晰的概念: 如果p是一个质数且a不是p的倍数,那么a^(p-1)≡1(mod p)。 那么如果p是一个质数,a是p的倍数呢??大家可以手推一下!a=kp,(kp)^(p-1)%p=1%p;坐便等于0;右边等于1;所以不成立,但是此时我们可以给一个统一式子! 对于质数...原创 2019-08-05 10:18:18 · 3096 阅读 · 0 评论 -
乘法逆元
一、相关定理介绍1.乘法逆元如果ax≡1 (mod p),且gcd(a,p)=1(a与p互质),则称a关于模p的乘法逆元为x。下文中,x都表示乘法逆元。2.费马小定理假如a是一个整数,p是一个质数,那么是p的倍数,可以表示为或者写作:3.扩展欧几里得定理已知整数a、b,扩展欧几里得算法可以在求得a、b的最大公约数的同时,能找到整数x、y(其中一个很可能是负数),使它们满足贝祖等...原创 2019-08-01 09:58:37 · 369 阅读 · 0 评论 -
大数的运算(c++)
#include <iostream>#include <string>#include <cstdlib>#include <algorithm>using namespace std;class BigInt{private: string values; bool flag; inline int co...原创 2018-08-01 14:23:59 · 394 阅读 · 0 评论 -
组合数取模运算模板(Pascal公式打表,逆元求取组合数,卢卡斯(Lucas)定理)
【杀鸡焉用牛刀?即便可以杀也要在乎鸡的感受!选取合适的方法可以减少出错率】(这就是为什么我要哔哔三种方法)1:Pascal公式打表const int N=3000;long long C[N][N];///组合数打表模板,适用于N<=3000///c[i][j]表示从i个中选j个的选法。void get_C(int maxn){ C[0][0...原创 2018-08-03 16:08:18 · 577 阅读 · 0 评论 -
米勒判定大素数,筛素因子
板子很详细,可以直接用#include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>#include<iostream>#include<algorithm>using namespace std;//*************...原创 2019-08-01 09:15:06 · 184 阅读 · 0 评论 -
O(1)快速乘
如果a与b都是longlong型 ,相乘取模可能存在溢出!inline long long multi(long long x,long long y,long long mod){long long tmp=(x*y-(long long)((long double)x/mod*y+1.0e-8)*mod);return tmp<0 ? tmp+mod : tmp;}...原创 2019-08-01 09:18:00 · 161 阅读 · 0 评论 -
大数开根号
#include<bits/stdc++.h>typedef long long ll;const int K=3,N=40003/K,M=pow(10,K),p=998244353,g=3,gi=332748118;int m,i,l,r,L,lim,re[N],f[11],a[N],b[N],inv;char s[10003];struct NUM{ int t...原创 2019-08-01 09:20:58 · 1786 阅读 · 0 评论 -
浮点数的高精度幂运算
#include<iostream>#include<string>#include<cstring>using namespace std;int a[201];string s;int n;#define rep(i,j,k) for(int i=j;i<=k;i++)#define repm(i,j,k) for(int i=j;i&...原创 2019-08-01 09:25:48 · 1296 阅读 · 0 评论 -
卡特兰数
这个博客讲的还行Catalan数的定义:令h(1)=1,Catalan数满足递归式:h(n) = h(1)*h(n-1) + h(2)*h(n-2) + ... + h(n-1)h(1);n>=2该递推关系的解为:h(n) = C(2n-2,n-1)/n,n=1,2,3,...(其中C(2n-2,n-1)表示2n-2个中取n-1个的组合数)因为我是数学选手,讲解在数学里的运...原创 2019-08-01 09:36:38 · 132 阅读 · 0 评论 -
多项式求整数解(代码注释比较详细)
#include<stdio.h>#include<algorithm>#include<iostream>#include<string.h>#include<math.h>using namespace std;const int MAXN=50;int a[MAXN][MAXN];//增广矩阵int x[MAXN]...原创 2019-08-01 09:42:05 · 1849 阅读 · 0 评论 -
STL入门
一:不定长数组(vector) 数组实际上就是一个指针,只是给他一个标记(数组名)就变成了我们常使用的数组,不定长数组就是不存在数组越界的行为,也就是指针越界。vector把一些常用操作封装在其内部。 作为一个模板类;定义用以下方式; vector<数据类型>名称。比如:vector<int>a;(你可以理解为int a[]) 其基本操作:...原创 2019-08-09 11:31:50 · 242 阅读 · 0 评论