前言

感觉距离scoi2019scoi2019scoi2019的时间不多了博主因为太弱所以现在慌得一批,现在尝试梳理一些小知识点顺便复习。

素数与同余

线性筛部分

常识向,直接贴代码了,大佬们手动跳过吧。

最常用的是线性筛质数。

同时有两种常用的可以线性筛预处理的函数:莫比乌斯函数,欧拉函数。

线性筛代码:

typedef long long ll;
ll prime[N],pri[N],cnt=0,mu[N],phi[N];
inline void init(int len){
	mu[1]=phi[1]=1;
	for(int i=2;i<=len;++i){
		if(!pri[i])prime[++cnt]=i,mu[i]=-1,phi[i]=i-1;
		for(int j=1;i*prime[j]<=len;++j){
			pri[i*prime[j]]=1;
			if(i%prime[j]==0){
				phi[i*prime[j]]=phi[i]*prime[j];
				mu[i*prime[j]]=0;
				break;
			}
			mu[k]=-mu[i];
			phi[k]=phi[i]*(prime[j]-1);
		}
	}
}

素数

线性递推逆元

指数循环节降幂

当求逆元时模数与求逆元的数有可能不互质时的处理方法

一个神奇的结论

有个结论,对于 m >= 2,与m的互质的数的和为m * phi (m) / 2

拓展欧拉定理

杂乱的一些性质/技巧

二进制枚举子集

这是一个用循环实现的快速枚举子集的方法,代码如下:

for(int i=s;i;i=s&(i-1))

异或前缀和

一个蒟蒻博主听说可以打表证明的性质:

sumi=i,i≡0mod&ThinSpace;&ThinSpace;4sum_i=i,i\equiv0 \mod4sumi​=i,i≡0mod4

sumi=1,i≡1mod&ThinSpace;&ThinSpace;4sum_i=1,i\equiv1 \mod4sumi​=1,i≡1mod4

sumi=i+1,i≡2mod&ThinSpace;&ThinSpace;4sum_i=i+1,i\equiv2 \mod4sumi​=i+1,i≡2mod4

sumi=0,i≡3mod&ThinSpace;&ThinSpace;4sum_i=0,i\equiv3 \mod4sumi​=0,i≡3mod4

感觉挺有用的

O(n)预处理popcount

popcount(x)popcount(x)popcount(x)指xxx在二进制形式中二进制位为111的数量。

直接处理是O(logx)O(log_x)O(logx​)的,但是可以O(amax)O(a_{max})O(amax​)预处理。

代码:

for(int i=1;i<=lim;++i)Popcount[i]=Popcount[i>>1]+(i&1);

原理很简单(逃

多项式一类

因为太多之前特意写了一篇博客 才不是骗访问量呢

组合数学

卡特兰数通项

Catn=C2nn−C2nn−1=C2nnn+1Cat_n=C_{2n}^n-C_{2n}^{n-1}=\frac{C_{2n}^n}{n+1}Catn​=C2nn​−C2nn−1​=n+1C2nn​​

斯特林数

两类可以用fftfftfft预处理做到O(nlogn)O(nlogn)O(nlogn)

但是一般都只用O(n2)O(n^2)O(n2)(雾

下面给出递推式:

第一类斯特林数递推式:





第二类斯特林数递推式:





错排公式

看了这道题你就懂了。

递推式:fi=(i−1)(fi−1+fi−2)f_i=(i-1)(f_{i-1}+f_{i-2})fi​=(i−1)(fi−1​+fi−2​)

二项式反演

fn=∑i=0n(ni)gif_n=\sum_{i=0}^n\binom{n}{i}g_ifn​=∑i=0n​(in​)gi​

=>gn=∑i=0n((−1)i(nn−i)fi)g_n=\sum_{i=0}^n((-1)^i\binom{n}{n-i}f_i)gn​=∑i=0n​((−1)i(n−in​)fi​)

可以看这道题简单体会一下。

数学小知识点整理(TBC)的更多相关文章

  1. 求职之C++小知识点整理

    1.顺序容器 1.顺序容器:vector,deque,list,forward_list,array,string.其中除list和forward_list外,其它都支持快速随机访问. deque a ...

  2. Oracle数据库小知识点整理

    -- 数据库存储数据 -- 市面上主流的数据库有哪些 -- 甲骨文  oracle   mysql --  IBM  db2  金融 --  微软  sqlserver --这些是关系型数据库. -- ...

  3. 一些js小知识点整理

    string.substring(a,b)   从a点开始截取,到b点结束 string.substr(a,b)    从a点开始截取,截取b个 BOM的四个对象,navigator.screen.l ...

  4. Django小知识点整理

    一.Django中Choices字段显示中文的两种方式 1.get_xxxx_display():这种方式只能针对对象来使用 {% for row in server_list %} <li&g ...

  5. 【转】HTML5的小知识点小集合

    html5的小知识点小集合 html5知识   1.  Doctype作用?标准模式与兼容模式各有什么区别? (1).<!DOCTYPE>声明位于位于HTML文档中的第一行,处于<h ...

  6. html5的小知识点小集合

      html5的小知识点小集合 html5知识   1.  Doctype作用?标准模式与兼容模式各有什么区别? (1).<!DOCTYPE>声明位于位于HTML文档中的第一行,处于< ...

  7. kafka知识点整理总结

    kafka知识点整理总结 只不过是敷衍 2017-11-22 21:39:59 kafka知识点整理总结,以备不时之需. 为什么要使用消息系统: 解耦 并行 异步通信:想向队列中放入多少消息就放多少, ...

  8. JS知识点整理(二)

    前言 这是对平时的一些读书笔记和理解进行整理的第二部分,第一部分请前往:JS知识点整理(一).本文包含一些易混淆.遗漏的知识点,也会配上一些例子,也许不是很完整,也许还会有点杂,但也许会有你需要的,后 ...

  9. activity生命周期知识点整理

    activity生命周期知识点整理 Activity: 是一个应用组件,用户可与其提供的屏幕进行交互.窗口通常会充满屏幕,但也可以小于屏幕并浮动在其他窗口之上. 一个activity的什么周期: 启动 ...

随机推荐

  1. Linux之须知

    1.服务器有哪些硬件? 主板,cpu,显卡,内存,硬盘,声卡,网卡 2.内存,CPU,硬盘的作用? cpu是管理与运算.内存:cpu和磁盘之间的缓冲设备,服务器关闭后,数据从内存中释放掉. CPU,电 ...

  2. JavaScript各种继承方式(二):借用构造函数继承(constructor stealing)

    一 原理 在子类的构造函数中,通过call ( ) 或 apply ( ) 的形式,调用父类的构造函数来实现继承. function Fruit(name){ this.name = name; th ...

  3. PHP调用外部程序的方法

    很多情况下需要php调用其他程序如shell命令.shell脚本.可执行程序等等,此时需要使用到诸如exec/system/popen/proc_open等函数,每种函数有各自适合使用的场景以及需要注 ...

  4. iOS 10 之后权限设置

    iOS 10 之后权限设置 麦克风权限:Privacy - Microphone Usage Description 是否允许此App使用你的麦克风? 相机权限: Privacy - Camera U ...

  5. Jenkins+Jmeter+Ant自动化集成及邮件正文以html输出

    一.工具的安装与环境变量配置 1.依次安装Jenkins+Jmeter+Ant,具体安装步骤,此文不再详述 2.配置Jmeter&ant环境变量 Jmeter变量: 验证是否配置成功:cmd窗 ...

  6. UVALive - 3266 (贪心) 田忌赛马

    耳熟能详的故事,田忌赛马,第一行给出田忌的马的速度,第二行是齐王的马的速度,田忌赢一场得200,输一场失去200,平局不得也不失,问最后田忌最多能得多少钱? 都知道在故事里,田忌用下等马对上等马,中等 ...

  7. Kubernets 第一讲 初探

    1.kubernets的工作流程 (1)开始部署新的应用程序,使用kubectl客户端工具和一个准备好的包含应用程序的Deployment的yaml文件:用户通过kubectl命令将文件的内容发送给A ...

  8. Shell脚本中$0、$?、$!等的意义

    变量说明$$ Shell本身的PID(ProcessID)$! Shell最后运行的后台Process的PID$? 最后运行的命令的结束代码(返回值)$- 使用Set命令设定的Flag一览$* 所有参 ...

  9. 可迭代对象(Iterable)和迭代器(Iterator)

     迭代是访问集合元素的一种方式. 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一 个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退. 1. 可迭代对象 以直接作用于 ...

  10. UVA-1364.Knights of the Round Table 无向图BCC

    题目链接:https://vjudge.net/problem/UVA-1364 题意:有n个人参加会议,互相憎恨的人不能坐在相邻的位置,并且每个会议参加的人数必须是奇数,求有多少个人不能参加任何一个 ...