qbzt day2 下午
内容提要
高精
矩阵
筛法
先是高精除法
注意细节


高精度开方:神奇的竖式
以小数点为分界线,每两个位砍一刀
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)


对于莫比乌斯函数也是差不多
- i和p互素 mul[i*p]=mul[i]*(-1)
- i的最小素因子刚好是p mul[i*p]=0
约数个数
约数和
求f(n)=[n/1]+[n/2]+---+[n/n]的值
- 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 下午的更多相关文章
- PKUSC 模拟赛 day2 下午总结
终于考完了,下午身体状况很不好,看来要锻炼身体了,不然以后ACM没准比赛到一半我就挂掉了 下午差点AK,有一道很简单的题我看错题面了所以没有A掉 第一题显然是非常丝薄的题目 我们很容易通过DP来O(n ...
- 云栖大会day2 下午
下午内容普遍比较水 参与了intel的宣讲会,都能把人听睡着了 又回来听了开发者宣讲会 讲了人的成才选择,造势之人 顺势之人 逐流之人 我认为,跟人的能力关联不大,跟眼界关联很大, flink 参与到 ...
- 2016.10.30 济南学习 Day2 下午 T1
他 [问题描述] 一张长度为N的纸带,我们可以从左至右编号为0 − N(纸带最左端标号为 0).现在有M次操作,每次将纸带沿着某个位置进行折叠,问所有操作之后纸带 的长度是多少. [输入格式] 第一行 ...
- 清北澡堂 Day2 下午 一些比较重要的数论知识整理
1.欧拉定理 设x1,x2,.....,xk,k=φ(n)为1~n中k个与n互质的数 结论一:axi与axj不同余 结论二:gcd(axi,n)=1 结论三:x1,x2,...,xk和ax1,ax2, ...
- Day2下午
虽然成绩不太好,但有点进入状态了.期望200 实际160,忘记加判断了. T1 洗澡[问题描述]你是能看到第一题的friends 呢.——hja洗澡的地方,有一段括号序列,将一个括号修改一次需要1的代 ...
- Day2下午解题报告
预计分数:100+100+30=230 实际分数:100+100+30=230人品爆发&&智商爆发&&手感爆发 T3数据好水,,要是把数组开大一点的话还能多得10分,, ...
- qbzt day6 下午 模拟赛
我太菜了 T2 给定一张有向图,每个点有点权.试找到一条路径,使得该路径上的点权最 大值减去点权最小值最大,问这个差最大是多少. 话说这个题第一个想到的思路是tarjan缩点+拓扑排序来着... ...
- qbzt day5 下午
农场主John新买了一块长方形的新牧场,这块牧场被划分成M行N列(1 ≤ M ≤ 12; 1 ≤ N ≤ 12),每一格都是一块正方形的土地.John打算在牧场上的某几格里种上美味的草,供他的奶牛们享 ...
- qbzt day4 下午
有向图的强连通分量 强联通:两个点之间可以互相到达 如果某个图任意两个点都是强联通的,那么称这个图强联通 如果一个图的子图是强联通的,那么称这个图是强联通子图 一个图的极大强联通子图被称作强连通分量 ...
随机推荐
- Luogu P5470 [NOI2019]序列
题目 可以直接贪心,但是用模拟费用流推的话会更轻松. 首先有一个显然的建图方式: \(S\)到\(0\)流量为\(k\),费用为\(0\). \(0\)到\(a_i\)流量为\(1\),费用为\(-a ...
- Python生成文本格式的excel\xlwt生成文本格式的excel\Python设置excel单元格格式为文本\Python excel xlwt 文本格式
Python生成文本格式的excel\xlwt生成文本格式的excel\Python设置excel单元格格式为文本\Python excel xlwt 文本格式 解决: xlwt 中设置单元格样式主要 ...
- 小白如何入门 Python 爬虫?
本文针对初学者,我会用最简单的案例告诉你如何入门python爬虫! 想要入门Python 爬虫首先需要解决四个问题 熟悉python编程 了解HTML 了解网络爬虫的基本原理 学习使用python爬虫 ...
- hdu1465不easy系列之中的一个(错排)
版权声明:本文为博主原创文章,未经博主同意不得转载. vasttian https://blog.csdn.net/u012860063/article/details/37512659 转载请注明出 ...
- 【问题解决方案】Linux中命令useradd与adduser的区别
参考链接: useradd与adduser的区别 useradd与adduser:创建新的用户 CentOs: useradd与adduser是没有区别的 都是在创建用户,在home下自动创建目录,没 ...
- 使用GET与POST方式获取html数据
抓取网站数据解析的工作,其中,使用到GET和POST方法获取html数据. 使用GET方式: /** * 使用get方式获取html数据 * * @param strURL(需要访问的网站) * @r ...
- sass和less的对比
); < { ; { { ; } ); } ); } ); // if 条件 @dr: if(@my-option = true, { button { ...
- Quartus 中调用modelsim的流程及*.vt或*.vht自动生成
一.自动生成验证程序testbench的方法,setting-EDA Tool->simylation->选择对应的语言(verilog对应*.vt,VHDL对应*.vht)process ...
- 【转】/etc/inittab文件详解
转自:https://www.cnblogs.com/ricks/p/10020886.html Linux在完成核内引导(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就 ...
- LOJ#3097 [SNOI2019]通信 最小费用最大流+cdq分治/主席树/分块优化建图
瞎扯 我们网络流模拟赛(其实是数据结构模拟赛)的T2. 考场上写主席树写自闭了,直接交了\(80pts\)的暴力,考完出来突然发现: woc这个题一个cdq几行就搞定了! 题意简述 有\(n\)个哨站 ...