数论
Dave_L
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #338 (Div. 2) D. Multipliers 组合数学+费马小定理 jxust oj 2344: 又见模法师
D思路:n = p1 ^ k1 * p2 ^ k2 ***** pm ^ kmn所有因子的乘积为 x[1] * x[2] *** x[w] (w为因子个数) = p[1] ^ j1 * p[2] ^ j2 ***p[m]^jm相当于将所有因子分解质因数的到的形式。那么需要计算p[i] 的指数 ji考虑输入的第i个质数因子 , cnt[i] 代表第i个质数的次数。对于第 i 个质数 ...原创 2018-12-03 22:31:54 · 329 阅读 · 0 评论 -
莫比乌斯函数线性筛 + 莫比乌斯反演基本定义公式 + 例题HDU1695
莫比乌斯函数: 常用性质: 莫比乌斯反演有两种形式: 证明详细的Blog:https://www.cnblogs.com/chenyang920/p/4811995.html Reference: https://blog.csdn.net/litble/article/details/72804050例题 HDU1695题意:x∈[1,a] ,y∈ [1,b],...原创 2018-07-21 10:53:24 · 583 阅读 · 0 评论 -
7-28 ACM训练联盟周赛解题报告 C树上dp ,F容斥原理 J组合数学公式 K贪心(曼哈顿距离和)
F: 题意: 给n个数,问1-m里面有多少个是这n个数任意个的倍数。 思路:由容斥原理我们知道结果是,m范围内:一个数的倍数 - 两个数最小公倍数的倍数+3个数。。。 总之就是奇数个的时候是加号,偶数个的时候是减号。 然后n只有15个,可以用二进制表示其用到哪些个数。 每次用奇数个时结果加上,偶数个时结果减去,用公式写就是: Σ(1<=i<=n) m / A[i] - Σ...原创 2018-07-28 18:12:16 · 389 阅读 · 0 评论 -
数学专题-斐波那契数列性质的应用 --斐波那契质数
思路:开滚动数组模拟大数加法和斐波那契,要求保留前9位,为了计算更加精确,我每次保留15位,保证既不TLE,也不WA。利用的性质: F(3)和F(4)是Fibonacci质数;从F(5)开始,某项为Fibonacci质数当且仅当它的项数为质数 第k小的Fibonacci质数是以质数数列中的第k个数为项数的Fibonacci数( 除F(3)和F(4)之外 )Code:...原创 2018-07-14 20:37:42 · 1020 阅读 · 0 评论 -
hdu4135 Co-prime 质因子分解+容斥定理
题目链接 题意:要求[l,r]内与n互质的数的个数 - > r - l + 1 - ([l,r]内不与n互质的数的个数)思路: 先分解质因数,然后不与n互质的数即为不含n的质因子的数 比如一个数质因子为2 , 3 , 5 根据容斥定理得 含2 + 含3 + 含5 - 含2,3 - 含2,5 - 含3,5 + 含2,3,5的数的个数。 (奇数加偶数减)。 Code:#in...原创 2018-07-13 19:27:58 · 248 阅读 · 0 评论 -
暑期集训-German Collegiate Programming Contest 2015 解题报告
B. Bounty Hunter II 题目链接:https://nanti.jisuanke.com/t/18486 题意:给定几个点及其边,问派几个人可以遍历这些点,前提是每个点只能一个人走。 更为清晰的说法是题解中的: Given a DAG with N nodes find the minimum number of vertex-disjoint paths ...原创 2018-07-13 13:32:45 · 505 阅读 · 0 评论 -
米勒拉宾素数测试 - >大素数判断 + 大整数的因数分解 + 例题 POJ1811
费马小定理: a为整数,n是素数,且a,n互质,则有a^(n-1)≡1(mod n) ,即:a^(n-1)模n得1。 快速判定一个数是否为素数的方法: 如果存在一个整数a,使得a^(n-1)≡1(mod n) ,则称n为基于a的伪素数,当有多个满足关系的a时,则n为素数的概率趋向于1。所以取多个a测试一下即可。Code:LL mult( LL a , LL b , LL c ) { ...原创 2018-07-12 19:51:35 · 785 阅读 · 0 评论 -
暑期集训-Benelux Algorithm Programming Contest 2014 Final 解题报告
B. Button Bashing 题目链接:https://nanti.jisuanke.com/t/28312 题意:给n个按钮,每个可以按无数次,每按一次按钮增加或者减少一些时间,问如果能得到给定的时间,则输出最少次数和0,不能的话输出最少次数+大于给定时间的最小的时间与给定时间的差。 思路: t最多只有3600,所以可以求出每个时刻按下每个按钮后达到的所有时间。然后以这些时间为节...原创 2018-07-11 17:20:00 · 268 阅读 · 0 评论 -
欧几里得与扩展欧几里得及其应用 复习总结
欧几里得(辗转相除法求最大公约数) 设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b) 假设d是a,b的一个公约数,则有 d|a, d|b,而r = a - kb,因此d|r 因此d是(b,a mod b)的公约数 假设d 是(b,a mod b)的公约数,则 d | b , d |r ,但是a...原创 2018-07-03 20:20:24 · 383 阅读 · 0 评论 -
51nod1060 最复杂的数 反素数
反素数的定义:对于任何正整数,其约数个数记为,例如,如果某个正整数满足:对任意的正整 数,都有,那么称为反素数。性质:性质一:一个反素数的质因子必然是从2开始连续的质数.性质二:p=2^t1*3^t2*5^t3*7^t4.....必然t1>=t2>=t3>=....ACM题型:(1)给定一个数,求一个最小的正整数,使得的约数个数为htt原创 2018-04-06 10:09:45 · 204 阅读 · 0 评论 -
练习赛4
A 题意:每个学校只有最强的队伍才能获得名次,输出12个获得名次的学校和队伍 思路:map一下。 Code:#include <bits/stdc++.h>#define LL long longusing namespace std;const int AX = 1e4+666;map&原创 2018-07-19 18:07:22 · 131 阅读 · 0 评论 -
8.3 训练赛补题 B思维 C方格填数(搜索) E枚举,精度
B 思路:相当于转化成b进制。 Code:#include <bits/stdc++.h>#define LL unsigned long long using namespace std;int main(){ int T; cin >> T; LL K , b ,n ; while( T-- ){ cin ...原创 2018-08-11 13:43:48 · 216 阅读 · 0 评论 -
Codeforces Round #483 (Div. 2) A 模拟B暴搜 C数论 D dp
A思路:输出中间的数Code:#include <bits/stdc++.h>using namespace std;const int AX = 1e3 + 666 ;int a[AX];int main(){ int n ; cin >> n ; for( int i = 1 ; i <= n ; i++ ){ cin >> a...原创 2018-10-11 22:29:49 · 148 阅读 · 0 评论 -
Codeforces Round #511 (Div. 2) A 构造B 数学C素数筛
A题意:构造a+b+c == n 且 a , b , c 都不为3的倍数。思路:用1,2去构造即可。Code:#include <bits/stdc++.h>using namespace std;int main(){ int n ; cin >> n ; if( n % 3 == 0 ){ cout << n - 2 <<...原创 2018-09-24 17:27:19 · 178 阅读 · 0 评论 -
ACM-ICPC 2018 焦作赛区网络预赛 G 隔板+费马小定理 J 牛顿迭代法+java开平方根 K 背包 L矩阵快速幂
G思路:隔板法知道结果是 2 ^ ( n - 1 ),n过大。 费马小定理为 a^(p-1) ≡ 1 mod p ; a, p 互质,p为质数。 所以2^(p-1)% p 为1,2^k*(p-1) % p 也为1,所以找出n = k*(p-1) + m 。只需要求2 ^ m 即可。Code:#include &amp;amp;amp;lt;bits/stdc++.h&amp;amp;amp;gt;#define LL long...原创 2018-09-15 19:15:39 · 281 阅读 · 0 评论 -
ACM-ICPC 2018 沈阳赛区网络预赛 D A*算法 F 有上下界的网络流 G分解质因数+公式 容斥 I 模拟 K讨论
D 题意:找是否存在第k短路且判断长度是否小于等于T。 思路:A*算法裸题。#include &amp;amp;amp;lt;bits/stdc++.h&amp;amp;amp;gt;#define INF 0x3f3f3f3fusing namespace std;const int AX = 1e5+66;const int MAXN = 1e4+66;int n , m , k;int s ,t ;int tot...原创 2018-09-09 09:44:45 · 493 阅读 · 1 评论 -
2018中国大学生程序设计竞赛 - 网络选拔赛1001 贪心 1003数学 1004费马大定理+奇偶数列法则 1007 循环节+线段树优化 1009 排列组合 1010树状数组维护dp
1001 题意:给一些城市的买卖价格,要求选择买或者卖一个或者不买不卖,问最后获得的最大利润。 思路:贪心 Code:#include &amp;lt;bits/stdc++.h&amp;gt;#define LL long long #define mp make_pairusing namespace std;typedef pair&amp;lt;LL,int&amp;gt; P;int main(){...原创 2018-08-29 12:30:49 · 430 阅读 · 0 评论 -
练习赛3 B组合 C multiset D set G 计算几何矩形面积交/并 H模拟 I 组合数公式+逆元 J搜索 K添加限制条件的最短路
B. 题目链接:https://hihocoder.com/problemset/problem/1509 题意:给定一个长度为 n 的非负整数序列 a[1..n] 你需要求有多少个非负整数 S 满足以下两个条件: (1).0 ≤ S &amp;amp;amp;lt; 260 (2).对于所有 1 ≤ i &amp;amp;amp;lt; n ,有 (a[i] xor S) ≤ (a[i+1] xor S)思路:遍历每一对,找每一...原创 2018-07-18 17:41:48 · 351 阅读 · 0 评论 -
数论之Lucas定理求大组合数取模的应用常见题型汇总
Lucas定理是用来求 c(n,m) mod p,p为素数的值。 对于C(n, m) mod p。这里的n,m,p(p为素数)都很大的情况。就不能再用C(n, m) = C(n - 1,m) + C(n - 1, m - 1)的公式递推了。 应用:大组合数求模 表达式C(n,m)%p=C(n/p,m/p)*C(n%p,m%p)%p 因为p为素数,所以这类题都可以用费马小定理计算逆元。当然...原创 2018-08-08 12:17:17 · 528 阅读 · 0 评论 -
牛客挑战赛11 B 杨辉三角应用 预处理逆元+阶乘
B 思路: (x+y)^n的展开式中的各项系数依次对应杨辉三角的第(n+1)行中的每一项。杨辉三角第n行的m个数可表示为 C(n-1,m-1)。 那么本题相当于(ax+by)^n 展开式各项系数。 计算C(n-1,m-1) * a^(n-m) * b ^ m 即可。 Code:#include <bits/stdc++.h>#define LL long long us...原创 2018-08-08 09:25:32 · 226 阅读 · 0 评论 -
8 - 7 训练赛- ACM-ICPC 2015 Changchun Preliminary Contest A优先队列G线段树区间最值H排序二叉树J大组合数取模卢卡斯+CRT
A 题意:邀请k个人来,m次开门操作,每次操作有x,y表示x个人来之后开门,这次开门能进来y个人。礼物最贵的先进,如果一样先来的先进。如果m次开门操作后还有没进来的,就都进来。给q个询问,第x个进来的人是谁。 思路:优先队列维护下。 Code:#include <bits/stdc++.h>#pragma comment(linker, “/STACK:1024000000...原创 2018-08-07 21:32:01 · 312 阅读 · 0 评论 -
51nod1419 最小公倍数挑战 数论
1419 最小公倍数挑战题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注几天以前,我学习了最小公倍数。玩得挺久了,想换换口味。我不想用太多的数字,我想从1到n中选三个数字(可以相同)。使得他们的最小公倍数最大。原创 2018-04-15 19:38:47 · 236 阅读 · 0 评论 -
51nod1179 最大的最大公约数
1179 最大的最大公约数题目来源: SGU 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注给出N个正整数,找出N个数两两之间最大公约数的最大值。例如:N = 4,4个数为:9 15 25 16,两两之间最大公约数的最大值是15同25的最大公约数5。原创 2018-04-09 15:28:18 · 195 阅读 · 0 评论 -
51nod 1240 莫比乌斯函数
1240 莫比乌斯函数基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注莫比乌斯函数,由德国数学家和天文学家莫比乌斯提出。梅滕斯(Mertens)首先使用μ(n)(miu(n))作为莫比乌斯函数的记号。(据说,高斯(Gauss)比莫比乌斯早三十年就曾考虑过这个函数)。具体定义如下:原创 2018-03-06 15:26:56 · 165 阅读 · 0 评论 -
Codeforces Beta Round #51 D 数位DP
D. Beautiful numberstime limit per test4 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputVolodya is an odd boy and his taste is strange a原创 2017-08-20 18:43:38 · 337 阅读 · 0 评论 -
HDU2669
扩展欧几里得+乘法逆元模板#include #define LL long longusing namespace std;LL x,y;LL ex_gcd(LL a,LL b,LL &x,LL &y){ if(b == 0){ x = 1; y = 0; return a; } LL ans = ex_gcd(b,a%b,x,y); LL temp = x; x原创 2017-07-28 15:02:19 · 394 阅读 · 0 评论 -
大数N的阶乘
模拟+优化先贴一个未优化过的按10进制写的:#include #include #include #include #include #define LL long longusing namespace std;const int AX = 1e6+666;int a[AX];int main(){ int n; cin>>n; int len = 1;原创 2017-07-24 16:03:44 · 820 阅读 · 0 评论 -
codeforces628B
B. New Skateboardtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputMax wants to buy a new skateboard. He has calculated原创 2017-07-24 19:45:23 · 325 阅读 · 0 评论 -
poj2689
The branch of mathematics called number theory is about properties of numbers. One of the areas that has captured the interest of number theoreticians for thousands of years is the question of primali原创 2017-07-24 19:41:38 · 487 阅读 · 0 评论 -
玲珑#19 A 数论打表 B RMQ+二分
A: http://www.ifrog.cc/acm/problem/1145#include using namespace std;int main(){ int n; while(~scanf("%d",&n)){ int m = n; int num; if( m >=1 && m<=10 ){ num = 0; }else if(m <= 99)原创 2017-07-31 10:33:38 · 308 阅读 · 0 评论 -
卡特兰数
出处:http://blog.csdn.net/jtlyuan/article/details/7440591卡特兰数又称卡塔兰数,卡特兰数是组合数学中一个常出现令h(0)=1,h(1)=1,catalan数满足递推式:h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)*h(0) (n>=2)例如:h(2)=h(0)*h(1)+h(1)*h(0转载 2017-07-30 16:58:13 · 255 阅读 · 0 评论 -
数论-Lucas(卢卡斯定理)
Lucas定理是用来求 c(n,m) mod p,p为素数的值。应用:大组合数求模表达式C(n,m)%p=C(n/p,m/p)*C(n%p,m%p)%p 求C(n, m) mod 10007/*int Lucas (ll n , ll m , int p) { return m == 0 ? 1 : 1ll*comb (n%p , m%p , p) * Luc原创 2017-07-30 16:11:02 · 3077 阅读 · 0 评论 -
51nod1120 卡特兰数+Lucas定理
1120机器人走方格 V3基准时间限制:1 秒 空间限制:131072 KB 分值:80难度:5级算法题 收藏 关注 取消关注N * N的方格,从左上到右下画一条线。一个机器人从左上走到右下,只能向右或向下走。并要求只能在这条线的上面或下面走,不能穿越这条线,有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10007的结果。原创 2017-07-30 16:06:33 · 574 阅读 · 0 评论 -
HDU5976
DetachmentTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1294 Accepted Submission(s): 366Problem DescriptionIn a highly develope原创 2017-07-28 19:17:41 · 520 阅读 · 0 评论 -
扩展欧几里德与乘法逆元
扩展欧几里得:扩展欧几里得是在欧几里得的基础上扩充而来: gcd(a, b) = gcd(b, a mod b)对于不全为 0 的非负整数 a、b,gcd(a,b)表示 a,b 的最大公约数,必然存在整数对 x,y ,使得 gcd(a,b)=ax+by。 就是给两个整数 a,b 必然存在一对整数 x,y 使得 ax + by = gcd(a,b),这个定理又叫...原创 2017-07-28 12:04:50 · 513 阅读 · 0 评论 -
蓝桥- 历届试题 2013-10-19 买不到的数目
Code:1暴力AC:#include using namespace std;int main(){ int a, b; cin >> a >> b; int res = 0 ; int lcm = a * b / __gcd(a,b); for( int k = 0 ; k < lcm ; k++ ){ for( int i = 0 ; ; i++ ){ in原创 2018-03-13 16:10:48 · 221 阅读 · 0 评论 -
51nod 1247 可能的路径
1247 可能的路径题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注在一个无限大的二维网格上,你站在(a,b)点上,下一步你可以移动到(a + b, b), (a, a + b), (a - b, b), 或者 (a, a - b)这4个点。原创 2018-02-22 11:52:21 · 251 阅读 · 0 评论 -
约瑟夫环问题
和约瑟夫环问题不同在起点为m;约瑟夫环:f(n)=(f(n-1)+k)%n 起点为m,那么结果为 (f(n)+m-k+1)%n; 结果小于0时,加上n。#include const int N = 10005;int f[N], n, m, k;int main() {while (scanf("%d%d%d", &n, &k, &m) && n) {f[1]转载 2017-07-15 10:08:43 · 393 阅读 · 0 评论 -
欧拉函数
原处:http://blog.csdn.net/once_hnu/article/details/6302868 转载以供查用。对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。例如euler(8)=4,因为1,3,5,7均和8互质。Euler函数表达通式:euler(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…(1-1/pn),其中p1,p2……转载 2017-03-26 11:57:32 · 303 阅读 · 0 评论 -
51nod1352 集合计数 扩展欧几里得求 正整数解个数
1352 集合计数基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注给出N个固定集合{1,N},{2,N-1},{3,N-2},...,{N-1,2},{N,1}.求出有多少个集合满足:第一个元素是A的倍数且第二个元素是B的倍数。提示:对于第二组测试数据,集合分别是:{1原创 2018-02-01 09:49:13 · 574 阅读 · 0 评论