清明 DAY2
数论
数论是研究整数性质的东西


也就是
lim π(x)=x/ ln x
(x->无穷)

X越大越稀疏

证明:
∵ p|ab
∴ ab有因子p
设 a=p1k1p2k2......prkr
b=q1t1q2t2......qwtw
那么ab= p1k1p2k2......pr‑kr q1t1q2t2......qw‑tw
∴ p1----- qw中一定有一个P,才能使p|ab
∴ p∈{ p1p2......pr‑ q1q2......qw}
∴ p|a 或者 p|b


证明:
存在性:
假设存在N是最小的不满足质因数分解的数
N若是素数,N=N
∴ N是合数,存在p , N=p * N/p
此时N/p也不可以质因数分解,那么N/p就比N小,与假设矛盾,证明存在性成立
唯一性:
假设存在N是最小的可以分解为两种不同方式的数
那么 N= p1k1p2k2......prkr (1)
= q1t1q2t2......qwtw (2)
∴ p1| q1t1q2t2......qwtw (3)
∴ p1∈{ q1t1q2t2......qwtw }
∴ p1| q1或者p1| q2.....或者p1| qw
∵ p1| q1,p1 q1均为素数,
∴ p1=q1
设 r1>=t1
(1)(2)同时除以p1t1
∴ p1r1 - t1......=q10.......
∴ 存在更小的可以分解为两种不同方式的数N/p1t1
与假设矛盾,证明唯一性成立



证明:
ax+by=c 有整数解 => gcd(a,b)|c
(充分) (必要)
充分性
设d=gcd(a,b),那么d|a , d|b , 则d|ax+by=c
必要性
gcd(a,b)|c => ax+by=c 有整数解
x,y是整数,ax+by>0
只需证出min(ax+by)=gcd(a,b)即可
设d=gcd(a,b) s=min(ax+by) s>0
a/s = q.....r
r = a - qs = a - q (ax+by) =(1-qx)a - qyb
为了保证s最小,那么r=0,所以s|a , 同理可得s|b , 所以,s|gcd(a,b)即s|d
s=ax+by=x(nd)+y(md) => d|s
因为s|d, d|s
所以s=d


PS:a%b=















注意这里是对于p的逆元
代替乘法














代码:
int size; bool erfen(int x)
{
int l=,r=size;
while (l+!=r)
{
int m=(l+r)>>;
if (z[m]>=x) r=m;
else l=m;
}
return z[r]==x;
} int bsgs(int a,int b,int p)
{
size = sqrt(p); int nowv=;
for (int i=;i<=size;i++)
{
nowv = (long long)nowv * a%p;
z[i] = nowv;
if (z[i] == b) return i; //如果在列举第一行 已经找到了i,直接返回
}
sort(z+,z+size+);
for (int i=;(i-)*size+ <= p;i++)
{
int y = (long long)b * kuaisumi(kuaisumi(a,size*(i-),p),p-,p); //快速幂套快速幂 从后往前找,乘以逆元
if (erfen(y)) //发现x在这一行,暴力枚举一下
{
for (int j=(i-)*size+;j<=i*size;j++)
if (kuaisimi(a,j,p) == b) return j;
}
}
return -;
}
数论函数
带入一个正整数,输出一个整数
f(x)=y
x是正整数,y是整数





μ(x)
把x质因数分解:x=p1r1p2r2.......pkrk
令r = max { r1 , r2 , .... rk }
1 ( x=1 )
μ(x)= 0 ( r >1 )
(-1)k ( r=1)
( k 表示 x 有k 个质因子)
举个栗子:
μ(4)=0; μ(15)=1; μ(1001)=-1
莫比乌斯函数是一个数论函数,它同时也是一个积性函数(i.e.μ(ab) =μ(a)μ(b), a,b互质)


当n不等于1时,n所有因子的莫比乌斯函数值的和为0 (d是n的因子)



举个栗子:
F(6)= f (1) + f (2) + f(3)+ f (6);
f (6) = F(1)μ(6)+ F(2)μ(3)+ F(3)μ(2)+ F(6)μ(1)
证明一下:
∑ μ(d)F(n/d) = ∑ μ(d) ∑ f (d`)
d|n d|n d`|n/d
= ∑ ∑ μ(d)f (d`) //交换求和符号 常用技能
d|n d`|n/d
= ∑ ∑ μ(d)f (d`)
d`|n d|n/d`
= ∑ [ f (d`) ∑ μ(d) ]
d`|n d|n/d`
= f ( n )
大概就是这样



举个栗子:
设f(n)=n g(x)=Φ(n)
那么(f*g)(12) = f(12)*g(1) + f(6)*g(2) + f(4)*g(3)
+ f(3)*g(4) + f(2)*g(6) + f(1)*g(12)
= 12*1 + 6*1 + 4*2 + 3*2 + 2*2 + 1*4


枚举较小的因子
不再枚举1-i的所有因子
而是枚举i的两个因子 降低复杂度

PS:
J是i的下一个因子
看题啦看题啦看题啦看题啦看题啦看题啦看题啦看题啦看题啦看题啦看题啦看题啦看题啦看题啦



[ 1 <= x <= c , 1 <= y <= d ]
- [ 1 <= x <= a , 1 <= y <= d ]
- [ 1 <= x <= c , 1 <= y <= b ]
+ [ 1 <= x <= a , 1 <= y <= b ]
换个写法
如果括号里为真返回1 ,否则0
当然不可以从1-n,1-m都枚举一遍
n m
∑ ∑ [ gcd ( i , j )=1 ]
i=1 j=1
n m
= ∑ ∑ ∑ μ(d)
i=1 j=1 d|gcd( i,j )
只有当gcd为1 时候结果为1,否则为0;
很像莫比乌斯函数(n为1,莫比乌斯为1 ,否者为0)
第一步转化,转成莫比乌斯
第二部调∑顺序
n
∑ ∑ ∑ μ(d)
d=1 ad<=n bd<=m
n
=∑ μ(d) ∑ ∑ 1
d=1 ad<=n bd<=m
n
=∑ μ(d) |_ n/d _| |_ m/d _|
d=1
O(n)复杂度,k次询问就是Kn 复杂度
式子和d,n都相关
PS:d=1-min(n,m) (假设)n最大
可以提前吧μ(d)算出
d枚举1-n,下取整n/d有多少种可能
下面分两步
(1) 1<=d<=√n |_ n/d _|
√n种取值
(2) √n<d<=n n/d < √n
√n种取值
复杂度O(√n)
n
=∑ μ(d) |_ n/d _| |_ m/d _|
d=1

箭头表示数值发生改变
括号表示在该区间内数值不发生改变
写一下代码
求μ(d)
Mu表示前缀和
Solve 给定d,n求
假设n<m
是区间右端的点

尝试证明

证明:


要证

则


代码呈现如下:
xian_xing_shai(); for (int a=;a<=n;a++)
sum_mu[a] = sum_mu[a-] + mu[a]; int solve(int n,int m)
{
int ans=;
//for (int d=1;d<=n;d++)
// ans += mu[d] * (n/d) * (m/d);
for (int d=;d<=n;)
{
int next_d = min(
n/(n/d),
m/(m/d)
);
ans += (sum_mu[next_d] - sum_mu[d-]) * (n/d) * (m/d);
d=next_d+;
}
return ans;
}
(不知道有没有用)

小结一下:




枚举P的倍数


∑化简:换个东西枚举或交换∑顺序


换成一个积性函数预处理
-----------------------------------------------------------------------------------------------------------------------------

这种题目特别好出
随便换一下你就要重新推好久。。。。
清明 DAY2的更多相关文章
- 清明培训 清北学堂 DAY2
今天是钟皓曦老师的讲授~~ 总结了一下今天的内容: 数论!!! 1.整除性 2.质数 定义: 性质: 3.整数分解定理——算数基本定理 证明: 存在性: 设N是最小不满足唯一分解定理的整数 (1) ...
- 【从零开始学BPM,Day2】默认表单开发
[课程主题]主题:5天,一起从零开始学习BPM[课程形式]1.为期5天的短任务学习2.每天观看一个视频,视频学习时间自由安排. [第二天课程] Step 1 软件下载:H3 BPM10.0全开放免费下 ...
- NOIp2016 Day1&Day2 解题报告
Day1 T1 toy 本题考查你会不会编程. //toy //by Cydiater //2016.11.19 #include <iostream> #include <cstd ...
- day2
三级菜单: ))))))))))] last_levels.pop() ]]]]]]]]:] information = : ch = msvcrt.getch() ][][: : password= ...
- java day2一个模拟双色球的代码
package day2; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt ...
- Python基础-day2
1.Python模块python 中导入模块使用import语法格式:import module_name示例1: 导入os模块system('dir')列出当前目录下的所有文件 # _*_ codi ...
- 【BZOJ 4517】【SDOI 2016 Round1 Day2 T2】排列计数
本蒟蒻第一次没看题解A的题竟然是省选$Round1$ $Day2$ $T2$ 这道组合数学题. 考试时一开始以为是莫队,后来想到自己不会组合数的一些公式,便弃疗了去做第三题,,, 做完第三题后再回来看 ...
- 冲刺阶段 day2
day2 项目进展 今天本组五位同学聚在一起将项目启动,首先我们对项目进行了规划,分工,明确指出每个人负责哪些项目.由负责第一部分的组员开始编程,在已经搭建好的窗体内,对系部设置进行了编写,本校共六个 ...
- python_way ,day2 字符串,列表,字典,时间模块
python_way ,day2 字符串,列表,字典,自学时间模块 1.input: 2.0 3.0 区别 2.0中 如果要要用户交互输入字符串: name=raw_input() 如果 name=i ...
- 二模 (8) day2
第一题: 题目描述: 有 n 个炸弹,有些炸弹牵了一根单向引线(也就是说引线只有在这一端能被炸弹点燃),只要引爆了这个炸弹,用引线连接的下一个炸弹也会爆炸.每个炸弹还有个得分,当这个炸弹被引爆后就能得 ...
随机推荐
- Java通过sftp上传文件
Linux操作系统我们经常使用ssh中的ftp,sftp连接服务器,做相应操作. 如何通过java代码的形式采用sftp连接到服务器,进行文件上传下载等操作呢? 第一步,引入依赖包 <!-- s ...
- 【UML】-NO.42.EBook.5.UML.1.002-【UML 大战需求分析】- 活动图 (Activity Diagram)
1.0.0 Summary Tittle:[UML]-NO.42.EBook.1.UML.1.002-[UML 大战需求分析]- 活动图 Style:DesignPattern Series:Desi ...
- openshift 容器云从入门到崩溃之三《安装openshift》
准备好环境,在安装之前请先了解openshift提供的ansible有大量的安装选项 文档地址:https://docs.okd.io/latest/install/configuring_inven ...
- 用iframe嵌入了一个微信公众号平台文章的URL
JS: $.ajaxPrefilter( function (options) { if (options.crossDomain && jQuery.support.cors) { ...
- 日期格式化(类似QQ邮箱中的邮件列表显示日期)
日期格式化(类似QQ邮箱中的邮件列表显示日期) public static string FormatDateDisplay(DateTime _datetime) { var ts = DateTi ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统--系统权限及操作指引
系列目录 1.权限包括菜单权限,按钮权限,数据权限 2.角色组和用户之间是多对多的关系,即多个用户可以拥有多个角色组,权限是拥有角色组的并集 1.菜单界面,菜单都是动态数据由模块管理进行设置 2.权限 ...
- java详解内部类
可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二). 第一次见面 内部类我们从外面 ...
- uvm设计分析——factory
uvm的factory机制,通过实例一个static类型default factory,并且通过宏将所有例化extend出来的object,component register到该factory的内部 ...
- Yii DataProvider
- 针对IE6,IE7,IE8,IE9,FF等不同浏览器的CSS写法
首先我们介绍一下HACK原理,就是不同浏览器对字符的识别不同 在 CSS中常用特殊字符识别表: (1)*: IE6+IE7都能识别*,而标准浏览器FF+IE8是不能识别*的; (2)!importan ...