数论
Spidy_harker
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
求n!中质因子p的个数
1.暴力求解法:从1到n一个一个质因数分解,复杂度O(nlog(n)),太高了2.现在我们考虑另一种解法如上图可知含有2的因子的数为n/p,含有22的因子的数有n/22个,以此类推。int cal(int n,int p){ int ans=0; while(n) { ans+=n/p; n/=p; } return ans;}...原创 2020-05-07 11:55:05 · 1239 阅读 · 1 评论 -
寒假训练赛第五场
问题 A: 分火腿题目描述小月⾔要过四岁⽣日了,她的妈妈为她准备了n根⽕腿,她想将这些⽕腿均分给m位小朋友,所以她可能需要切⽕腿。为了省事,小月⾔想切最少的⼑数,使这n根⽕腿分成均等的m份。请问最少要切⼏⼑?输入第⼀⾏⼀个整数T,表示有T组数据。接下来T组数据,每组共⼀⾏,有两个数字n,m。输出每组数据⼀⾏,输出最少要切的⼑数。样例输入 Copy22 66 2样例输出 Co...原创 2020-01-24 12:28:55 · 542 阅读 · 0 评论 -
质数和分解问题
问题 Q: 【组合数学】质数分解问题题目描述任何大于1的自然数n都可以写成若干个大于等于2且小于等于n的质数之和的表达式(包括只有一个数构成的质数之和的表达式的情况),并且可能有不止一种质数和的形式。例如9的质数和表达式就有4种本质上不同的形式:9=2+5+2=2+3+2+2=3+3+3=2+7这里所谓两个本质相同的表达式是指可以通过交换其中一个表达式中参加和运算的各个数的位置而直接得到另...原创 2019-11-15 21:47:40 · 1508 阅读 · 1 评论 -
问题 O: 奇数码问题(求逆序数,树状数组)
题目思路:利用结论两个数码的逆序数奇偶性相同即可变为相同的局面,否则不可updata()和getsum()是树状数组的更新和求和操作,slove()是求逆序数的函数#include <iostream>#include <cstdio>#include <cstring>using namespace std;int n,c[300005];in...原创 2019-08-17 22:00:26 · 297 阅读 · 0 评论 -
问题 B: 64位整数乘法
题目描述求 a 乘 b 对 p 取模的值,其中 1≤a,b,p≤10^18。输入第一行a,第二行b,第三行p。输出一个整数,表示a*b mod p的值。样例输入复制样例数据 239样例输出6思路:利用快速幂的思想,将b表示为b=c* 20+c* 21 +…+c2n (c=0||1 ;即二进制的形式),则ab=a* c* 20+a c 21 +…+a * c*2n ,每乘以...原创 2019-07-26 21:31:00 · 409 阅读 · 0 评论 -
Fansblog
Time Limit: 2000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 374 Accepted Submission(s): 107Problem DescriptionFarmer John keeps a website called ‘Fans...原创 2019-07-29 20:53:39 · 238 阅读 · 0 评论 -
问题 D: 记一次惨痛的教训(组合数的计算)
题目描述传说中很多大牛喜欢用自己姓名拼音的重排列,比如著名的吕凯风大牛,他的姓名拼音是lvkaifeng,重新排列之后就得到了VFleaKing,也就是著名的伏特跳蚤国王。现在,火星人觉得VFleaKing太强啦!于是他们也要这样取他们的ID名,现在问题来了,他们的名字都非常长,而且都是由火星文组成的(火星文有好多好多字符)。火星人想请你帮他们算算如果把他们的名字重排有几种方案,当然了,原序列也...原创 2019-07-28 23:27:15 · 424 阅读 · 0 评论 -
问题 D: LiMn2O4的数学之路(矩阵快速幂求斐波那契数列)
题目描述长期以来,LiMn2O4常常会因为自己成为不了数学选手而苦恼,并曾经有过一次转型的尝试。那是一个月黑风高的十一长假,LiMn2O4拿起了厚厚的《具体数学》。路过的practer看见了,practer说你有没有办法求一下这个公式的值:LiMn2O4看了眼公式,说这个值有无理数,怎么表示?可以做?于是practer给了LiMn2O4第另一个公式:求第一个公式减第二个公式的值。LiMn2O...原创 2019-07-05 22:59:32 · 204 阅读 · 0 评论 -
问题 B: 反素数ant
问题代码:#include <iostream>#include <algorithm>using namespace std;typedef long long ll;ll ans=1,num=1;ll n;int prime[15]={1,2,3,5,7,11,13,17,19,23,29,31,37,41};void dfs(ll dk,ll nx,...原创 2019-06-07 22:31:45 · 224 阅读 · 0 评论 -
洛谷P1865 A % B Problem
题目题目描述区间质数个数输入输出格式输入格式:一行两个整数 询问次数n,范围m接下来n行,每行两个整数 l,r 表示区间输出格式:对于每次询问输出个数 t,如l或r∉[1,m]输出 Crossing the line输入输出样例输入样例#1: 复制2 51 32 6输出样例#1: 复制2Crossing the line本题有以下几个注意点1.判断l,r是否在区...原创 2019-05-18 17:05:55 · 179 阅读 · 0 评论 -
求多个数的最小公倍数
求法求a1,a2,…,an的最小共倍数,先求(a1,a2)的最小公倍数a12,再求(a12,a3)的最小公倍数a123,依次递推下去注意点最重要的就是防止溢出(特别是题目的数据大时)上代码typedef unsigned long long ll;ll exgcd(ll a,ll b){ if(b==0) return a; exgcd(b,a%b);}int m...原创 2019-03-26 22:14:42 · 2438 阅读 · 0 评论 -
质因数分解
分解成指数幂乘积的形式我的代码可以算到到n=10e12#include<iostream>using namespace std;int prime[10000005],a[10000005];long long inz[100000],gs[100000];int getprime(long long n){ int cnt=0; for(int i=...原创 2019-03-22 08:56:06 · 2608 阅读 · 0 评论 -
逆元相关知识点、求法(快速幂,拓展欧几里得,线性算法,阶乘的逆元)及拓展欧几里得算法的应用
概念:若x*y≡1 (mod p),且gcd(x,p)=1(gcd函数是求x,y的最大公约数),则称x关于模p的乘法逆元为y。几个定理:1.费马小定理:x^(p-1) ≡1 (mod p),p为素数,x不为p的倍数,若x为p的倍数则x^p ≡p (mod p)。那么当gcd(x,p)=1时,x * x^(p-2) ≡ 1(mod p),即x关于模p的逆元为x^(p-2)。则快速幂可求得逆元。...原创 2019-03-03 11:23:26 · 619 阅读 · 0 评论 -
青蛙的约会(POJ1061)
题解:主要是根据题目写出同余方程,(x+k * m)%L=(y+k*n)%L–>k *(m-n) ≡ y-x (mod L)—>k *(m-n)+ k1 *L=y-x;我们令a=m-n,b=L,c=y-x(注意a,b要为正),使用拓展欧几里得即可求出解k;但是要注意求的是x的最小整数解;话不多说,上代码: #include <iostream>using nam...原创 2019-03-05 12:13:50 · 444 阅读 · 0 评论 -
唯一分解定理/算术基本定理
算术基本定理1)定理内容:任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积N=P1a1P2a2P3a3…Pnan,这里P1&amp;amp;lt;P2&amp;amp;lt;P3…&amp;amp;lt;Pn均为质数,其中指数ai是正整数。这样的分解称为 N 的标准分解式。2)应用:以上内容来自于百度百科使用1.首先素数打表可以处理到1e7的数int prime[10000009];int a[1原创 2019-03-05 10:56:55 · 855 阅读 · 0 评论 -
POJ 3292(筛法)
Semi-prime H-numbers题目描述This problem is based on an exercise of David Hilbert, who pedagogically suggested that one study the theory of 4n+1 numbers. Here, we do only a bit of that.An H-number is a...原创 2019-02-04 17:39:13 · 418 阅读 · 0 评论 -
欧拉筛及模板题
欧拉筛思想:每个数都只被其最小的素因子筛掉一次#include &amp;lt;iostream&amp;gt;using namespace std;int a[10000005]; ///a[i]数组可以用来判断i是否为素数(a[i]==1则i为合数,a[i]==0则i为素数);int prime[10000005];void getprime(int n){ int cnt=0;...原创 2019-02-04 15:53:15 · 478 阅读 · 0 评论
分享