周末训练笔记+数论主要知识点
来源:互联网 发布:cntv中国网络电视台13 编辑:程序博客网 时间:2024/05/13 09:34
数论主要知识点总结
--------------------------------------唯一分解定理---------------------------------
任意一个大于1的正整数都能表示成若干个质数的乘积,且方式唯一
通过筛素数实现,典型题目uva10539区间[l,r],问你在这个区间内满足自身不是素数,而且只有一个素数因子的数有几个
----------------------------------欧几里得----拓展欧几里得-----------------------------
ll gcd(ll a,ll b){ if(b==0)return a; return gcd(b,a%b);}ll exgcd(ll a,ll b,ll &x,ll &y) { if(!b) { x=1; y=0; return a; } ll d=exgcd(b,a%b,y,x); y-=a/b*x; return d; }
拓展欧几里得在求gcd 的同时,给出了一组ax+by=gcd的解,可以拓展到求ax+by=c
分别是求通解的公式推导
典例UVA10548给你三种货物a,b,c,用a,b组成c,判断是否有无限解或者无解该题是利用它拓展欧几里得判断有多少个大于等于的解 另一应用求解lcm
--------------------------------------------筛素数-------------------------------------------
数论里出现最频繁的 埃拉托斯特拉欧拉筛法
---------------------------------------欧拉函数------------------------------------------
在数论,对正整数n,欧拉函数是小于或等于n的数中与n互质的数的数的数目。例如φ(8)=4,因为1,3,5,7均和8互质。φ(1)=1
暴力求解+线性求解
void init(){ int i; for(i=2;i<=10000;i++) phi[i]=0; phi[1]=1; for(i=2;i<=10000;i++) if(!phi[i]) for(int j=i;j<=10000;j+=i) { if(!phi[j]) phi[j]=j; phi[j]=phi[j]/i*(i-1); }}int solve(int n){ int ans=n; for(int i=2;i<=(double)sqrt(n*1.0);i++) { if(n%i==0) ans=ans*(1.0-1.0/i); while(n%i==0) n=n/i; } if(n>1) ans=ans*(1.0-1.0/n); return ans;}
欧拉函数的应用太多了 不一一列举
---------------------------------------快速幂-----------------------------------
这个很早就用了 我也说不明白 强记也罢
#define mod 1000000009ll pow(ll a,ll b){ ll ans=1; ll base=a; while(b!=0) { if(b&1!=0) ans=ans*base%mod; base=base*base%mod; b>>=1; } return ans;}------------------------------------费马小定理------------------------------------
费马小定理是欧拉公式的一种特殊情况,当p为质数的时候phi(p)=phi(p-1)
带入欧拉公式就得到了费马小定理a^(p-1)=1(mod p)p为质数-
-------------------------------------勾股定理---------------------------------
本原勾股数组 两两互质的
poj1305求解与本原勾股数组无关的数的个数 ←求解勾股数组公式-------------------------------------------------------------------------
猛地一写没想起来太多 只记得主要的几个了(尴尬) 填充ing~~~~~~~~~~~
- 周末训练笔记+数论主要知识点
- 周末训练笔记
- 周末训练笔记(二)
- 周末训练笔记(三)
- 周末训练笔记(四)
- 周末训练笔记(10.1)
- 周末训练笔记+hdu1255+4288
- 周末训练笔记+hdu1576 A/B
- 周末训练笔记+UVA11388+POJ2407+无名题
- 周末训练笔记+Uva10912+10994+POJ1006
- 周末训练笔记+HDU1205+POJ1306【排列组合】
- 刘汝佳训练指南——数论专题知识点总结:
- 周末训练笔记+I Hate It(9.3)
- 周末训练笔记(10.8)—hdu3016+poj2886
- 周末训练笔记+UVA138+HDU2973【筛素数】【威尔逊定理】
- 周末训练笔记+哈尔滨理工大学第七届程序设计竞赛AB
- 周末训练笔记+Codeforces Round #451 (Div. 2)
- 周末总结的知识点
- Kafka:Producer Config 配置
- 联系添加
- 利用C#实现分形树的绘制
- Android 的异步消息处理机制
- c语言中平方的应用
- 周末训练笔记+数论主要知识点
- vins mono 系统学习 六
- 晴空焉有无云时 —— NOIP2017游记
- 学习这么久,改变了很多。
- GreenDao和多线程下载
- 一周学习小结
- 三分钟实现断点续传
- C#ForUnity游戏开发系列教程--入门篇
- LeetCode 之 Remove Nth Node From End of List