今天要讲数学,莫名慌张TAT。
一看目录确实是很难很难啊。
======================分割线=====================
Day 9 1.23AM
先开始讲了极限,这一部分的内容在高等数学上就有,在此不多讲。
写一些OI中会”常用“的结论??
lim+∞(1+1n)n=lim+∞(1−1n)n=e
lim0sinxx=lim0tanxx=1
lim+∞n−−√n=1
lim0arctanxx=lim0ex−1x=1
等价无穷小
limx→x0f(x)g(x)=1
等价无穷大
limx→x0f(x)=limx→x0g(x)=∞
这二者是对偶的。
高阶小量,一般用于分析时间复杂度,是在极限下的定义。
如果在OI里算时间复杂度可能会有一些误差,卡常什么的。
割线:取函数图象上两个点形成的直线。
切线:作割线的两个点无穷近时形成的直线。
切线的定义就是一个函数的导数。
导数的基本公式我也不写了,看高等数学就行了。
可以写一些有趣的导数:
(xx)′=(exlnx)′=(exlnx)(lnx+1)=xx(lnx+1)
洛必达法则:
x→x0,f(x),g(x)→0,且x→x0,f′(x)g′(x)=A
则
x→x0f(x)g(x)=f′(x)g′(x)=A
话说求导也不能一直求下去的233
老师说导着导着就导炸了0.0
开根:
给出实数
y
和整数
我们可以二分,三分,牛顿迭代。注意精度与收敛速度要作权衡。
三分要求严格凸。
牛顿迭代:一个类似
这个收敛的速度是很快的。当然不同情况下收敛速度不同。还依赖于初始选择点。
比如这题,如果这个A比较大时,我们刚刚开始选择的点的切线斜率十分大,这样子的话一开始迈的步子会很小,就会迭代很多次。
那么我们要解决这个问题就要在精度和收敛速度中作权衡,我们可以这样:
然后就跑的飞快。
牛顿迭代可以用来做最大权闭合子图。实际上各种二分也是可以用牛顿迭代替代,是很快很快的。然而只是适用于下凸函数。
平面上两条不相交线段AB和CD,蚂蚁在AB上的移动速度为
v1
,在CD上移动的速度为
v2
在其他平面速度为
v3
求A到D的最短时间。
大概是:
这题我们观察到,如果左边的点确定了,那么对于选取右边的点,是一个单峰函数。同样我们左边点的选取也是一个单峰函数。两个凸我们可以用三分套三分做。
接下来是一些我不是很会的东西,贴图片。
我们发现常数项的导数是0,因此我们可以随意添加常数项,所以求导的逆运算对应一组函数。(仅仅一组0.0)
对于上面的定积分的直观看法就是一个区间
[a,b]
函数的面积,积分是有向的0.0
这个东西就叫牛顿-莱布尼茨公式
这些应用真是令人绝望XD
这里补一些上课写在草稿本上关于积分的东西。
积分公式:
其中 F(x)′=f(x)
先写一个简单的积分:
Simpson积分
:计算二次函数的一类积分,形如:
这个东西可以用来计算重心233
然后讲了分部积分法则,
设
u=u(x)和v=v(x)
是两个关于x的函数且各自具有连续导数,则:
对两边积分,我们可以得到:
如果将dv和du用微分形式写出,也可以得到:
举个栗子吧
这题十分厉害0.0,首先我们肯定可以想到将离散型和连续型分开处理。
那么离散性就是一个常用的斜率优化dp,但也是十分的难。
连续型的想法是贪心吃最大 ti ,一直到次大,然后合并。
计算的时候运用了微元的思想。
是下面这个样子的:
接下来是多元函数与偏导数。
多元函数:形如
f(x,y,z)=x2y+zx+cos(yz)
的函数(即有三个变元)
偏导数:对于多元函数的每一个变元进行求导,将其他变元看作常数。
比如上面这个函数我们我们对x求导有:
函数的极值
一元函数:
f′(x)=0
多元函数:
∂f(x)∂xi=0
,意思是在各个方向都是0.
注意:以上求解所得为驻点,是否为极值点(甚至最值点)要另行判断。
并非所有函数可导,以及会存在有瑕点的函数,遇到时不可盲目套用公式。
然而就是盲目套用公式
传说中的简单题:
实现三种操作:
1.在平面加入一条直线
2.删除一条已有直线
3.求一个点到平面所有之间的距离平方和最小,并输出
n<=105
很容易求出
(x,y)
到直线
ax+by+c
的距离的平方:
问题相当于求函数极值
我们动态维护 A,B,C,D,E,F
就是暴力维护偏导数,这个动态维护并(shi)不(fen)可怕。就是维护下面两个方程。
线性回归——最小二乘法
给出平面上n个点,求最小均方误差线性拟合直线。
n<=105
y=ax+b⇒mina,b∑(yi−axi−b)2
a=lxylxx,b=y¯−ax¯
lxy=∑n1(xi−x¯)(yi−y¯)
lxx=∑n1(xi−x¯)2
接下来是拉格朗日乘数法:
求解多元函数的最优值(最大化或最小化)
f(x)1,x2⋯,xn)
并满足约束条件
gi(x1,x2⋯,xn)=0,i=1,2,…,m
基本解法:
定义
求解h的极值
其中对 λ 求偏导就是 gi
例子:有多项式
要求满足约束
那么我们有偏导函数
那么
大概就是这样。
NOI2012骑行川藏:
有
n
段路,每段路长
n<104,E<108,si<105,0<ki<1,−100<vi<100
有一个贪心的想法,如果有能量肯定是跑快一点。
所以可以写出一些带等号的约束。
拉格朗日乘数法,就可以了。虽然我不会
这个的公式就不写了!
当然不一定要用拉格朗日乘数法,也可以用其它的神奇方法,当然我不会
然后是泰勒展开:
NOI2005反正切函数的应用
总的来说这个东西的作用就是:
万一你流落荒岛,无聊时算个
π
打发时光
Day9 1.23PM
51Nod多项式
n
次多项式
若确定,输出
f(n+1)
(如果为整数直接输出;如果是分数
pq
且
p和q
互质,则输出
pqmod(109+7)
;否则输出至小数点后6位)
若不确定输出No。
n<=1015
这题就是拉格朗日插值法:
这个方法的思路是构造出一个式子来表示
f
,然后对于每个点,构造出只在这个点有值为1,而其他点值为0的一个函数,将这些函数组合起来就是
这个东西和CRT的构造有点像。
由此也可以知道
n
次多项式可由
所以我们有拉格朗日插值法的核心公式:
这个题怎么做呢?由于不想打公式了,就不做了。
讲到最难的了0 0概率与期望。先给出一些定义吧:
注意连续型是用一个概率函数表示的,一定有一个取值范围的询问。例如不能说取值为y的概率,而要说取值为x~y的概率。
P(AB)
的意思是事件AB同时发生的概率,要求AB不相关。
于是有全概率公式:
P(A|B)的意思是事件B发生时A发生的概率,
然后有全期望公式:
推导过程是这样的(这里倒着推):
上面是离散型证明,连续型的证明更长了,我决定拍照,毕竟手推的。
上传好慢,我强行降低画质才传上来的
P(A,B)表示AB同时发生的概率,AB不独立
然后知道这些我们还可以推导出Bayes公式:
在“学”了这些东西以后我们来看看下面的题目。
ZJOI2015地震后的幻想乡
n个点m条边的简单连通无向图,每条边是[0,1]间的随机数,问最小生成树最大边的边权的期望
(n<11)
老师有毒,怎么一下子就做WJMZBMR神题
看数据范围显然是一个搜索或者装压dp之类的问题,这里肯定是状压。
但是知道这个东西并没有用
考虑最小生成树的定义,一定存在一个权
x
,使得如果不用大于等于这个值的边的话,这幅图不连通。那么我们就有一点奇奇怪怪的转化。
P(MSTe>=x)=1−P(用小于x的边图S连通)=P(用小于x的边图S不连通)
左边的意思是MST上最大边权大于等于x的概率。
现在我们要求
P(用小于x的边图S不连通)
那么我们任意固定一个点
u
,小于
这样若
S′与S−S‘
之间有
k
条边,我们计算一下概率。
我们现在要算
P(用小于x的边图S‘连通)
所以我们要在这里枚举一个
S′
,状压dp搞一下。
这个做法的方程是一个多项式TAT,好像很难写,我们去%一下rqy可以得到新的做法:直接看blog吧
地震后的幻想乡+(出题人有毒!)
n个点m条边的简单连通无向图,每条边权是
[0,3√3]
的随机数,服从分布
f(x)=x2
问最小生成树最大边的边权的期望。
其实和上一题是一样的233。
简单题
一个机器人在
N×M
的方阵第
s
行
因为每一行只跟这一行和下一行有关,所以这个方程并不是很多。
然后我们自下而上递推的时候,下面那一行总是已经处理完的
记
E[i][j]
表示从
(i,j)
走到最后一行的期望步数,倒序求解。
首先
E[n][j]=0
,
那么
E[i][j]=14(E[i][j−1]+E[i][j+1]+E[i][j]+E[i+1][j]])+1
上面是高斯消元,但如果直接消元是
O(n3)
,
冷静分析一下:
设
E[i][1]=x=13(E[i][2]+E[i+1][1]+x)+1
∴E[i][2]=ax+b=14(x+E[i][3]+ax+b+E[i+1][2])+1
∴E[i][3]=a′x+b′
所以:
E[i][j]−>E[i][j+1]
E[i][m−1]−>E[i][m]=a′′x+b′′=13(a′′x+b′′+E[i+1][m]+E[i][m−1])+1
然后我们通过解这最后一个方程,再逆推回去就可以搞定了。
这样复杂度是
O(n2)
的了。
这是一个有限状态马尔可夫链 (有限状态自动机)
自动机:(kengkengkengkeng)
自动机(OI中一般考虑)
E(x)
表示从
x
到终点的期望步数。
自动机上的期望dp一般都是倒着做的。
吃鱼
一个池塘有n条鱼,每天随机会有两条鱼
状压dp+暴力转移即可。
状压一下每次存在鱼的集合就可以了。
这题也是一个自动机哦,是一个DAG
奇怪的实验
地上有无数条彼此平行,且间距为
w
的直线,小明总是在投掷一枚长度为
BZOJ4109 WF2015-Cutting Cheese(权限题)
一个边长为100的实心立方体中挖去
n
个不相交的求,要求将整个立方体沿水平方向切
二分答案,由于球互不相交所以体积很好算,不完整的球体积用定积分可以推出公式,完整的用球的体积公式。
球缺公式:
π(3r−h)h23
取数问题CF364D Ghd
给出数列
An
,试求出一个最大的正整数,使它整除至少一半
Ak。n<=105,Ak<=107
考虑枚举一个存在于最终答案的集合内的数x,这样子,可行的gcd的范围就变成了x的因子个数,在10^12以内,最多的因子个数只有6000多个。
对于其他元素,我们关注的只有它们和当前枚举的数x的gcd了。所以可以
O(nlogC)
地求出来。同时,我们可以记录
cnt[i]
表示和
x
的gcd为
现在我们直接枚举一下最终的答案是多少,只需要统计有多少个数含有这个因子即可。明显复杂度可以做到6000^2。
所以假如我们枚举了一个
x
,现在的复杂度是
醉醺醺的幻想乡
来自WJMZBMR的又一道神题
听说没有题解
这个东西的精度写错了,应该是1e-5的。
然后今天真的很烧脑啊,也不讲太多了,可以溜了0.0
去刷一些之前的题目。