内容提要

高精

矩阵

筛法


先是高精除法

注意细节

高精度开方:神奇的竖式

以小数点为分界线,每两个位砍一刀

87654.321-->08|76|54|.32|1

大概就是先对第一位开方,然后相减,将上面的数乘二十,看看加多少再乘多少正好不能撑爆剩下的数,就在上面写几,重复操作就ok

原理是: (a*10+b)^2=a^2+2*a*10*b+b^2=a^2+(20*a+b)*b

竖式算开平方步骤:(如:把625开方)

(1)先把被开方的数由右到左每二位一组。(6,25)

(2)由左到右取每一组。(取的是6)

(3)取某数的平方,要比第一组数小,但某数+1的平方,要比第一组数大,这就是第一个开方值。(某数是2)

(4)把第一组数减去第一个开方值的平方,再取第二组数,构成余数。(6-2*2=2,余数为225)

(5)把第一个开方值*20,再加上估计的第二个开方值,它与第二个开方值相乘要比余数小,但把第一个开方值*20,再加上估计的第二个开方值+1,它与第二个开方值+1相乘要比余数大。(第二个开方值取5,2*20+5=45,45*5=225)

所以(625)^0.5=25

现在中考高考都不让带计算器了,试卷上出现的一些常见开方的数字都是直接提供给学生的。现在手工列竖式开方基本不再需要了,但是每每想起当时老师教过的列式开平方的方法,还是很骄傲的。

手工开平方的原理实际是很简单的,原理如下

(a+b)^2=a^2+2ab+b^2=a^2+(2a+b)*b

这里的a取10的倍数,b取个位数,如(10+2)^2=10^2+(2*10+2)*2=100+22*2=144,这是知道结果时的推算,如何给你一个数字,让你推算它的开平方值呢?

现在要对144开平方,那么估计所求的值为十几,因此可以写成(10+?)^2=10^2+(2*10+?)*?,这样猜这个?为2时,再代入计算,发现计算出的值正确。按此方法,可以列竖式进行计算。如果需要对2025进行开方处理,那么按两位两位进位,需要先对20求根,取5时,5*5>20,因此只能取4,也就是结果是四十几,即(40+?)^2=40^2+(2*40+?)*?,即减去40的平方1600后,2025还余下425,425再去除于8?(八十几),才能得到?(几),结论当然是85*5=425,因此2025开平方就是45。

快速幂

矩阵乘法

一个i行k列的矩阵乘一个k行j列的矩阵得到一个i行j列的矩阵

答案矩阵的第i,j个元素为A矩阵第i行第k个元素乘B矩阵第k行第j个元素,k是从1到m

就是一个矩阵的行乘另一个矩阵的列

代码:

矩阵快速幂常用于求解线性递推方程组

比如斐波那契数列的矩阵就是

1  1

1  0

[f[n],f[n-1]]*[矩阵]^k=[f[n+k],[n+k-1]]

矩阵快速幂基于以下的原理,即可以找到一个矩阵 M

使得 [F(n-1) F(n)]T* M = [F(n) F(n+1)]T

以斐波拉期数列为例:M = ((1 1) (1 0))

以此类推:

[F(0) F(1)]T* Mn = [F(n) F(n+1)]T

我们成功将一个递推式转化成了一个求矩阵幂的问题

利用快速幂算法可以将时间缩短为 O(d^3logn)

利用 FFT + 矩阵特征多项式的黑科技可以把时间进一步缩短到 O(dlogdlogn)

我们来试着写一下下面的矩阵:

F(n) = 7F(n-1) + 6F(n-2) + 5n + 4 * 3^n

先考虑转换前后的两个矩阵,肯定要有所有在转换中需要的

我们发现如果要从f[n-1]转换到f[n],要用到f[n-1],f[n-2],n,3^n,我们就先写上这些

然后发现n要转换到n+1就需要个1,再加上1就好了

[f[n-1,] f[n-2,] n, 3^n, 1]

[f[n], f[n-1], n+1, 3^(n+1) ,1]

然后按照递推式搞一搞就ok

高斯消元

高斯消元可以将一个矩阵变成一个上三角矩阵

在 OI 中一般用于两点:求解线性方程组(不常见) & 求线性基(常见)

然后搞一搞就行

注意判断无解和无穷解的情况

线性基常见问题:

如何求一堆数的异或和中第 K 大的值?

筛法

常见的埃拉托斯特尼筛,复杂度为 O(nlogn),优化后达到O(nlognlogn)

欧拉筛

让每个合数被他的最小的质因子筛掉

欧拉筛还可以用来维护一些复杂的函数值

如:逆元、一个数的质因数分解中最大的指数的值

积性函数:对于所有互质的 x 和 y,F(x * y) = F(x) * F(y)

完全积性函数:对于所有 x 和 y ,F(x * y) = F(x) * F(y)

常见的积性函数:

欧拉函数 φ(n) :不超过 n 与 n 互素的数的个数

怎么用程序求φ?

欧拉筛,筛数i,选取一个素数p,把p*i筛掉(p<=e[i])

此时会检查i的最小素数因子是不是p

所以会有两种可能

1.i和p互素

Phi[i*p]=phi[i]*phi[p]

2.i的最小素因子刚好是p

Phi[i*p]=phi[i]*p

φ[i]=(p1-1)*p1^(q1-1)+(p2-1)*p2^(q2-1)......(pn-1)*pn^(qn-1)

对于莫比乌斯函数也是差不多

  1. i和p互素  mul[i*p]=mul[i]*(-1)
  2. i的最小素因子刚好是p  mul[i*p]=0

约数个数

约数和

求f(n)=[n/1]+[n/2]+---+[n/n]的值

  1. k<sqrt(n)的时候,k只有sqrt(n)种取值

  所以n div k的取值最多只有sqrt(n)种

  div是整除

  2.k>sqrt(n)的时候

  n div k 显然小于sqrt(n)

  所以它的取值也只有sqrt(n)种

表面上复杂度是o(n),但是由于我们是跳着走的,所以复杂度为o(2√n)

qbzt day2 下午的更多相关文章

  1. PKUSC 模拟赛 day2 下午总结

    终于考完了,下午身体状况很不好,看来要锻炼身体了,不然以后ACM没准比赛到一半我就挂掉了 下午差点AK,有一道很简单的题我看错题面了所以没有A掉 第一题显然是非常丝薄的题目 我们很容易通过DP来O(n ...

  2. 云栖大会day2 下午

    下午内容普遍比较水 参与了intel的宣讲会,都能把人听睡着了 又回来听了开发者宣讲会 讲了人的成才选择,造势之人 顺势之人 逐流之人 我认为,跟人的能力关联不大,跟眼界关联很大, flink 参与到 ...

  3. 2016.10.30 济南学习 Day2 下午 T1

    他 [问题描述] 一张长度为N的纸带,我们可以从左至右编号为0 − N(纸带最左端标号为 0).现在有M次操作,每次将纸带沿着某个位置进行折叠,问所有操作之后纸带 的长度是多少. [输入格式] 第一行 ...

  4. 清北澡堂 Day2 下午 一些比较重要的数论知识整理

    1.欧拉定理 设x1,x2,.....,xk,k=φ(n)为1~n中k个与n互质的数 结论一:axi与axj不同余 结论二:gcd(axi,n)=1 结论三:x1,x2,...,xk和ax1,ax2, ...

  5. Day2下午

    虽然成绩不太好,但有点进入状态了.期望200 实际160,忘记加判断了. T1 洗澡[问题描述]你是能看到第一题的friends 呢.——hja洗澡的地方,有一段括号序列,将一个括号修改一次需要1的代 ...

  6. Day2下午解题报告

    预计分数:100+100+30=230 实际分数:100+100+30=230人品爆发&&智商爆发&&手感爆发 T3数据好水,,要是把数组开大一点的话还能多得10分,, ...

  7. qbzt day6 下午 模拟赛

    我太菜了 T2 给定一张有向图,每个点有点权.试找到一条路径,使得该路径上的点权最 大值减去点权最小值最大,问这个差最大是多少.   话说这个题第一个想到的思路是tarjan缩点+拓扑排序来着... ...

  8. qbzt day5 下午

    农场主John新买了一块长方形的新牧场,这块牧场被划分成M行N列(1 ≤ M ≤ 12; 1 ≤ N ≤ 12),每一格都是一块正方形的土地.John打算在牧场上的某几格里种上美味的草,供他的奶牛们享 ...

  9. qbzt day4 下午

    有向图的强连通分量 强联通:两个点之间可以互相到达 如果某个图任意两个点都是强联通的,那么称这个图强联通 如果一个图的子图是强联通的,那么称这个图是强联通子图 一个图的极大强联通子图被称作强连通分量 ...

随机推荐

  1. 18: vue-element-admin使用

    1.1 vue-element-admin使用 1.使用参考网站 1)官方演示环境: https://panjiachen.github.io/vue-element-admin/#/dashboar ...

  2. 思维体操: HDU1008 Elevator

    Elevator Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total S ...

  3. 用Java构建一个简单的WebSocket聊天室

    前言 首先对于一个简单的聊天室,大家应该都有一定的概念了,这里我们省略用户模块的讲解,而是单纯的先说说聊天室的几个功能:自我对话.好友交流.群聊.离线消息等. 今天我们要做的demo就能帮我们做到这一 ...

  4. js倒计时跳转jquery插件版

    <script type="text/javascript" src="js/jquery1.91.min.js"></script> ...

  5. jsonp跨域请求的方式

    1.jsonp一种请求方式.用于解决一个棘手的问题: 由于浏览器具有同源策略:即可以通过后台去访问其他网站,而不能通过浏览器(ajax请求)访问其他网页或域(阻止ajax请求,但是无法阻止<sc ...

  6. 【学习总结】快速上手Linux玩转典型应用-第5章-远程连接SSH专题

    课程目录链接 快速上手Linux玩转典型应用-目录 目录 1. 认识SSH 2. 服务器安装SSH服务 3. 客户端安装SSH工具 4. 客户端链接SSH服务 5. SSH config 6. SSH ...

  7. Markov Chain Monte Carlo Simulation using C# and MathNet

    Math.Net Numerics has capability to conduct Markov Chair Monte Carlo simulations, yet the document i ...

  8. 猿题库 iOS 客户端架构设计(原文地址:http://gracelancy.com/blog/2016/01/06/ape-ios-arch-design/)

    猿题库 iOS 客户端架构设计 序 猿题库是一个拥有数千万用户的创业公司,从2013年题库项目起步到2015年,团队保持了极高的生产效率,使我们的产品完成了五个大版本和数十个小版本的高速迭代.在如此快 ...

  9. linux NFS 实例

    为了证明是 Allentunsgroup 组起的作用而非用户 [root@NFS_Client ~]# useradd scott1 [root@NFS_Client ~]# passwd scott ...

  10. 个人智能家居系统 - MQTT服务器搭建(centOS7.3)

    个人智能家居系统 - MQTT服务器搭建(centOS7.3) 0x00 参考 在CentOS7 上安装mosquitto1.4.1服务器,实现MQTT信息推送功能并增加websocket功能 mos ...