gcdlcm素数
acblacktea
永不放弃
展开
-
hdu 5726 GCD rmq 二分
rmq 预处理很裸 然后当l-r区间的最大公约数必然是第一个数a[l]的几个质因子相乘的形式,而它最多有log(1000000000)个质因子,所以枚举每个左端点二分次数时不会超过log(1000000000)次,但实际上脑补一下远没有这么多次不会超时,然后枚举每个左端点进行log(1000000000)次二分把结果存入map中#include<cstdio> #include<cstring>原创 2016-07-23 00:02:08 · 385 阅读 · 0 评论 -
hdu 5407 CRB and Candies
lcm(1,2,…,n+1)=(n+1)lcm(C(n,0), C(n,1), …, C(n, n)) 求1到n的lcm 从1扫到n 当i能拆成a^b,a为质数时lcm[i] = lcm[i-1]*a否则lcm[i] = lcm[i-1];#include<cstdio> #include<algorithm> #include<iostream> #define LL long long #de原创 2016-07-20 22:50:17 · 318 阅读 · 0 评论 -
hdu 3501 筛素数 + 容斥模板
#include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #include<string> #define mod 1000000007ll #define LL long long using namespace std; // 筛素数 bool flag[50000]; int cnt = 0,prime[原创 2016-08-27 18:48:01 · 444 阅读 · 0 评论 -
codeforces Educational Codeforces Round 16 D. Two Arithmetic Progressions 扩展欧几里得
先用exgcd等式求k的通解 然后根绝函数的单调性确定可选整数的区间注意点很多有点恶心 然后求个数就行了 坑点是整数运算两个数相除 a/b 的结果为正返回小于等于结果的第一个数,结果为负返回大于等于结果的第一个数 //1 9 3 11 49 109 #include<cstdio> #include<cstring> #include<algorithm> #include<iostream>原创 2016-08-25 15:06:52 · 406 阅读 · 0 评论