
数学-数论
文章平均质量分 53
JeraKrs
本人目前就职于百度商业研发部,有需要内推的朋友简历可发我邮箱 jerakrs@qq.com
展开
-
uva 1323 - Vivian's Problem(梅森素数)
题目链接:uva 1323 - Vivian's Problem题目大意:给定N个数,然后为每个数添加一个幂ei,最后N项垒乘的结果为M,要是得M的所有因子的和可以写成2x,求x的最大值,如果没有条件满足,输出NO解题思路:若一个数可以写成若干个不同的梅森素数的乘积,那么这个数的所以因子和可以写成2x.232−1的范围内只有8个梅森素数,所以可以用状压处理。梅森素数原创 2014-08-04 09:23:46 · 1538 阅读 · 0 评论 -
hdu 4704 Sum(数论)
题目链接:hdu 4704 Sum解题思路费马小定理,指数的循环节为mod-1代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long long ll;const int mod = 1e9 + 7;const int maxn = 1e5 + 5;struct big原创 2015-11-12 14:49:03 · 670 阅读 · 0 评论 -
hdu 4610 Cards(暴力+miller-rabin)
题目链接:hdu 4610 Cards解题思路用素数筛选法先预处理出每个数的因子个数,因子和。因子个数肯定小于1e6,可以根据预处理的素数表直接判断是否为素数,但是因子和可能到达4百多万,所以直接用miller-rabin直接判素数。判断因子积是否是平方和的部分,考虑因子个数,如果因子个数为奇数(即该数为平方数),则sqrt(i)必须是平方数才行。如果因子个数为偶数,则cnt/2为偶数时该数的因子积原创 2015-10-27 20:25:35 · 595 阅读 · 0 评论 -
hdu 5428 The Factor(数论)
题目链接:hdu 5428 The Factor解题思路将每个数分解质因子,维护最小的两个质因子即可。代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long long ll;const int inf = (1<<31)-1;const int maxn = 1e9;原创 2015-10-11 21:18:49 · 587 阅读 · 0 评论 -
hdu 5505 GT and numbers(分解质因子)
题目链接:hdu 5505 GT and numbers解题思路将N,M分解质因,然后对单一因子进行考虑,2x∗n>m2^x * n > m,注意如果N不是M的因子时是-1.代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef unsigned long long ll;con原创 2015-10-22 19:23:43 · 766 阅读 · 0 评论 -
hdu 5478 Can you find it(数论)
题目链接:hdu 5478 Can you find it解题思路将人头按照高低排序,从低的优先考虑。用线段树维护空位,每次考虑前后空ki个人之后可以站的位置,优先向前站。代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long long ll;ll pow_mod (ll原创 2015-09-30 16:41:41 · 868 阅读 · 0 评论 -
hdu 5446 Unknown Treasure(lucas+中国剩余定理)
题目链接:hdu 5446 Unknown Treasurelucas+中国剩余定理裸题,注意在中国剩余定理里面,有可能两数相乘爆long long,要用按位乘的方式,但是这样的话exgcd返回值如果是负数就会出错,所以乘之前要取模成正的。#include #include #include using namespace std;typedef long lon原创 2015-09-13 21:59:57 · 1987 阅读 · 0 评论 -
hdu 5451 Best Solver(矩阵乘法+数论)
题目链接:hdu 5451 Best Solver解题思路因为取模的数很小,所以暴力找打循环节,然后求解。代码#include <cstdio>#include <cstring>#include <cmath>#include <vector>#include <set>#include <algorithm>using namespace std;const int maxn = 4原创 2015-09-29 20:14:58 · 998 阅读 · 0 评论 -
hdu 5407 CRB and Candies(数论)
题目链接:hdu 5407 CRB and Candiesans = LCM(1~N+1) / (N+1) % mod#include #include #include using namespace std;typedef long long ll;const int maxn = 1e6 + 5;const int mod = 1000000007;原创 2015-08-21 22:25:14 · 962 阅读 · 0 评论 -
hdu 5299 Circles Game(博弈)
题目链接:hdu 5299 Circles Game每个分离的圆都是单独的游戏,Nim值为该圆嵌套中的圆的Nim和,最后加1.#include #include #include #include #include using namespace std;const int maxn = 20005;typedef long long ll;struc原创 2015-08-05 09:05:29 · 916 阅读 · 0 评论 -
hdu 5381 The sum of gcd(线段树+gcd)
题目链接:hdu 5381 The sum of gcd将查询离线处理,按照r排序,然后从左向右处理每个A[i],碰到查询时处理。用线段树维护,每个节点表示从[l,i]中以l为起始的区间gcd总和。所以每次修改时需要处理[1,i-1]与i的gcd值,但是因为gcd值是递减的,成log级,对于每个gcd值记录其区间即可。然后用线段树段修改,但是是修改一个等差数列。#inclu原创 2015-08-15 11:45:22 · 1864 阅读 · 0 评论 -
Codeforces 490D Chocolate(数论)
题目链接:Codeforces 490D Chocolate两个种变换方式无疑是减掉一个因子3加上一个因子2和减掉一个因子2,所以从因子的角度出发,如果两组数存在不同的质因子肯定是不可以的。剩下的就是构造答案了。#include #include #include #include using namespace std;const int maxn = 105;int A原创 2015-04-16 18:16:37 · 1296 阅读 · 0 评论 -
Codeforces 487C Prefix Product Sequence(逆元)
题目链接:Codeforces 487C Prefix Product Sequence构造方式,从1开始,每次乘上i-1的逆元,再乘上i。#include #include #include using namespace std;typedef long long ll;const int maxn = 1e5 + 5;ll ans[maxn] = {0, 1};in原创 2015-03-19 14:52:56 · 1213 阅读 · 0 评论 -
hdu 5104 Primes Problem(数学)
题目链接:hdu 5104 Primes Problem题目大意:给定n,判断有多少组素数p1+p2+p3=n(p1=p2=p3)解题思路:n的范围给定,先筛选出素数,然后枚举前两个,判断一下。#include #include #include using namespace std;const int maxn = 10000;int np, pri[max原创 2014-11-16 10:58:53 · 1141 阅读 · 0 评论 -
hdu 5072 Coprime(数论)
题目链接:hdu 5072 Coprime题目大意:给定N个数,问能选出多少个3元组,要么[(a, b) = (b, c) = (a, c) = 1] or [(a, b) ≠ 1 and (a, c) ≠ 1 and (b, c) ≠ 1]。解题思路:这题可以换个角度想,可以将三个数看做三角形的三条边,互质即边的颜色为1,否则为0,那么要求的即为三条边颜色相同的三原创 2014-10-23 19:56:34 · 1847 阅读 · 0 评论 -
hdu 4983 Goffi and GCD(数论)
题目链接:hdu 4983 Goffi and GCD题目大意:求有多少对元组满足题目中的公式。解题思路:n = 1或者k=2时:答案为1k > 2时:答案为0(n≠1)k = 1时:需要计算,枚举n的因子,令因子k=gcd(n−a,n, 那么另一边的gcd(n−b,n)=nk才能满足相乘等n,满足k=gcd(n−a,n)的a的个数即为ϕ(n/s),欧拉有o(n‾‾√的原创 2014-08-24 23:56:33 · 1643 阅读 · 0 评论 -
hdu 5525 Product(数论)
题目链接:hdu 5525 Product解题思路首先要把每个数拆分成质因子考虑,对于质因子p,假设出现的次数为c,那么对于包含p0,p1,p2...pcp^0,p^1,p^2...p^c的因子个数是相同的,为其它质因子的个数加1累乘s。所以p因子的贡献为p(1+c)∗c/2∗sp^{(1+c)*c/2 * s},指数部分可能很大,所以要对mod-1取模(费马小定理),但是又有除2的操作,mod-1原创 2015-11-02 10:23:05 · 819 阅读 · 0 评论