数学补天 By cellur925
质数

bool prime(int q)
{
if(q==||q==) return ;
if(q==) return ;
if(q%!=||q%!=) return ;
int cnt=sqrt(q);
for(int i=;i<=cnt;i+=)
if(q%!=||q%(i+)!=) return ;
return ;
}

//埃氏筛 筛出1~n的素数
void prime_select()
{
for(int i=;i<=n;i++)
{
if(vis[i]) continue;
printf("%d\n",i);
for(int j=n;j<=n/i;j++) vis[i*j]=;
}
}
线性筛还是要学的qwq(真香),它的原理是每个合数会被它的最小质因子筛一次,利用了当前已经筛出的质数。复杂度真·O(N)
//线性筛
void prime_select()
{
//v[]记录下标数的最小质因子 初值为0
for(int i=;i<=n;i++)
{
if(v[i]==) v[i]=i,prime[++m]=i;
for(int j=;j<=m;j++)
{//i是比prime[j]更小的质因子or超出n的范围
if(prime[j]>v[i]||prime[j]>n/i) break;
v[i*prime[j]]=prime[j];
}
}
}

//质因数分解--基于算术基本定理 复杂度O(根号n)
void divide()
{
for(int i=;i<=sqrt(n);i++)
if(n%i==)
{
p[++m]=i;c[m]=;
while(n%i==) n/=i,c[m]++;
}
if(n>) p[++m]=n,c[m]=;
for(int i=;i<=m;i++)
printf("%d^%d\n",p[i],c[i]);
}
丢几个例题跑嘤嘤嘤
例题1 LuoguP1865 A%B Problem ---(本博客开通不久的旧文)
因为数据范围较水,仅1e6,所以我们可以先使用线性筛筛出素数。区间个数用前缀和维护。它珂以当做一个练线性筛的不错模板题。
例题2 UVA10140 Prime Distance --(题解一篇)
我们知道,任意一个合数x一定包含不超过sqrt(n)的质因子。
所以我们就筛出2~sqrt(R)之间的所有素数,用他们来标记全部范围内的合数。最后没被标记的数就是质数,比较相邻的质数位置取最大。
例题3 阶乘分解 没有题面,口胡一下。
把N!分解质因数,按算术基本定理的形式输出。(N为1e6级别)
N!中质因数p的个数就等于1~N每个数含质因子p的个数之和。其他...详见lyd书p131,不会用LaTex,懒得打了...
时间复杂度O(Nlogn)
约数
// 这样写书式的复习我肯定干不完...以后会简洁一点...(真香)
- 基于算术基本定理,N的正约数集合个数为(a1+1)*(a2+1)*(a3+1)*........*(an+1)(基于乘法原理)($a_i$为算术基本定理中的各指数)
- 求1~N每个数的正约数集合--倍数法
//求1~N每个数的正约数集合--倍数法
void work()
{
vector<int>fac[];
for(int i=;i<=n;i++)
for(int j=;j<=n/i;j++)
fac[i*j].push_back(i);
}
复杂度为O(N+N/2+N/3+N/4+...+N/N)=O(NlogN)(调和级数)
例题1 LuoguP1463反素数
例题2 LuoguP2261余数之和
- $gcd(a,b)*lcm(a,b)=a*b$
int gcd(int a,int b)
{
return b ? gcd(b,a%b) : a;
}//辗转相除
int gcd(int a,int b)
{
while(a!=b)
{
if(a>b)
a-=b;
else
b-=a;
}
return a;
}//更相减损
- 欧拉函数:1~n中与n互质的数的个数

- 1~n中与n互质的数的个数为$n*φ(n)/2$
- 若a,b互质,则φ(a)φ(b)=φ(ab)。
- 若n为质数,φ(n)=n-1
void phi()
{
phi[]=;
for(int i=;i<=n;i++) phi[i]=i;
for(int i=;i<=n;i++)
if(phi[i]==i)
for(int j=i;j<=n;j+=i)
phi[j]=phi[j]/i*(i-);
}
- 费马小定理:当p为质数时候, a^(p-1)≡1(mod p)
- exgcd:https://www.cnblogs.com/nopartyfoucaodong/p/9514767.html
组合数学
- 求法:https://www.cnblogs.com/nopartyfoucaodong/p/9543206.html
- 圆排列:https://www.cnblogs.com/nopartyfoucaodong/p/9751569.html
- 第二类strling数:https://www.cnblogs.com/nopartyfoucaodong/p/9690393.html
- 卡特兰数:https://www.cnblogs.com/nopartyfoucaodong/p/9752461.html
数学补天 By cellur925的更多相关文章
- Luogu P2327 [SCOI2005]扫雷【递推/数学】By cellur925
题目传送门 推了好久啊.看来以后要多玩扫雷了qwq. 其实本题只有三种答案:0.1.2. 对于所有第一列,只要第一个数和第二个数确定后,其实整个数列就确定了,我们可以通过这个递推式得出 sec[i-] ...
- NOIp 2014 解方程 【数学/秦九韶算法/大数取膜】By cellur925
题目传送门 题意:求高次方程的解及其个数.其中 1° 我们知道,高次方程是没有求根公式的.但是利用逆向思维,我们可以进行“试根法”,因为题目中给出了所求根的范围.但是多项式系数过于吓人,达到了sxbk ...
- 茅台【思维/数学/剪枝】By cellur925
题目传送门 给你\(n\)根木棍,问有多少种方法,使得选出的三根木棍能组成三角形. 开始想要用搜索的,但是写着写着卡壳了(?),于是改用贪心,开始对拍,觉得很稳,只是最后两个数据可能有点卡.很第一题难 ...
- Luogu P2158 [SDOI2008]仪仗队【数学/欧拉函数】by cellur925
题目描述 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图 ...
- Luogu P1134 阶乘问题 【数学/乱搞】 By cellur925
输入输出格式 输入格式: 仅一行包含一个正整数 NN . 输出格式: 一个整数,表示最右边的非零位的值. 输入输出样例 输入样例#1: 12 输出样例#1: 6 说明 USACO Training S ...
- 数学思想:为何我们把 x²读作x平方
要弄清楚这个问题,我们得先认识一个人.古希腊大数学家 欧多克索斯,其在整个古代仅次于阿基米德,是一位天文学家.医生.几何学家.立法家和地理学家. 为何我们把 x²读作x平方呢? 古希腊时代,越来越多的 ...
- 速算1/Sqrt(x)背后的数学原理
概述 平方根倒数速算法,是用于快速计算1/Sqrt(x)的值的一种算法,在这里x需取符合IEEE 754标准格式的32位正浮点数.让我们先来看这段代码: float Q_rsqrt( float nu ...
- MarkDown+LaTex 数学内容编辑样例收集
$\color{green}{MarkDown+LaTex 数学内容编辑样例收集}$ 1.大小标题的居中,大小,颜色 [例1] $\color{Blue}{一元二次方程根的分布}$ $\color{R ...
- 深度学习笔记——PCA原理与数学推倒详解
PCA目的:这里举个例子,如果假设我有m个点,{x(1),...,x(m)},那么我要将它们存在我的内存中,或者要对着m个点进行一次机器学习,但是这m个点的维度太大了,如果要进行机器学习的话参数太多, ...
随机推荐
- 解决ubuntu12.04下安装gitlabError Compiling CSS asset的错误以及401资源错误
安装过程 https://www.gitlab.com.cn/installation/#ubuntu 解决过程 12.04ubuntu坑太多 解决有用的链接如下 https://blog.csdn. ...
- 使用electron静默打印
1.使用electron打印的理由 很多情况下程序中使用的打印都是用户无感知的.并且想要灵活的控制打印内容,往往需要借助打印机给我们提供的api再进行开发,这种开发方式非常繁琐,并且开发难度较大. e ...
- php 获取上上个月数据 使用 strtotime('-1 months')的一个bug
今天,使用php 日期函数处理数据,发现一个问题. 具体场景是这样的,我一直以为strtotime 格式化当前日期 或 指定日期可以找到对应的数据,比如我要查找上上个与的数据,因为我要获取当前时间的 ...
- Spring Boot2.0之多数据源事务管理
结合前面做的小项目,如果我把test01 test02下面的 service 都加了 事务的注解 这样启动时候会报错! 事务管理器里面不能有两个事务!!!! 这时候需要用 @Transactiona ...
- VS调试的问题
调试Vs,使用本地IIS也不行,使用外部服务器也不行,最后运行VS2013以管理员身份就可以了
- HTML5响应式模版Mocha
HTML5响应式模版Mocha,经典,html5,蓝色,扁平,HTML5响应式模版Mocha是一款宽屏大气的HTML5网站展示模板. http://www.huiyi8.com/moban/
- RQNOJ 624 运动鞋:dp
题目链接:https://www.rqnoj.cn/problem/624 题意: 小明有奖学金啦!所以他要去买运动鞋. 总共有n款鞋,分别属于t个品牌. 每款鞋的价格为c[i],在小明心目中的价值为 ...
- MCI支持的格式在注册表中的位置
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
- vue之axios+php+mysql
博主原创,未经许可请勿转载 哦 1.axios配置请看上篇 2.mysql数据库编写,表名为area_list 3.json.php文件在notebeans中编写 <?php header('C ...
- RMAN兼容性、控制文件自动备份、保存时间、备份策略、备份脚本(二)
RMAN 程序的兼容性 RMAN 环境由以下5部分组成:(1) RMAN executable(2) Recovery catalog database(3) Recovery catalog sch ...