EnjoyingAC的博客

“无人与你立黄昏,无人问你粥可温。”

构造一个大素数条件下的本原元(JAVA实现)

原理 设p为安全素数,即使p=2q+1,且q为素数。由Fermat定理知g^(p-1) mod p=1, 即g^(2q) mod p=1,因而如果 w=min{t>0: g^t mod p=1} 则有w整除p-1=2q,因而由q是素数知,w只能是2或q,此时g是本原元等价于 ...

2019-03-05 17:02:07

阅读数 130

评论数 0

51nod 1282 时钟 (哈希、字符串的最小表示法)

题目 题解 要判断时钟是否相同,只需将时钟的指针排序后求出M个距离,然后看距离数组是否是循环同构即可。 循环同构: abcd的循环同构有:abcd、bcda、cdba、dabc。 要判断是否循环同构,可以求出距离数组的最小表示。然后对这个最小表示数组求一个哈希值,判断这个哈希值是否相...

2018-09-12 19:50:03

阅读数 78

评论数 0

51nod 1060 最复杂的数 (素数约数定理、反素数、dfs)

题目 题解 根据质数的唯一分解定理,可以知道任意一个数n都可以分解成若干个质数的幂的乘积的形式。 n=p1^k1 * p2 ^k2 * …* pm^km. 每个分解处理的质数幂pi^ki贡献约数的个数是ki+1个(pi^0 ~ pi^ki). 根据乘法原理,总的约数个数为 (k1+...

2018-09-12 10:54:29

阅读数 75

评论数 0

51nod 1280 前缀后缀集合 (离散化、哈希、素数表)

题目链接 https://www.51nod.com/onlineJudge/submitDetail.html#!judgeId=627203 题意 一个数组包含N个正整数,其中有些是重复的。一个前缀后缀集是满足这样条件的下标对(P,S), 0<= P,S &...

2018-09-10 11:10:53

阅读数 63

评论数 0

51nod 1103 N的倍数 (鸽巢原理)

题目链接 https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1103 题意 一个长度为N的数组A,从A中选出若干个数,使得这些数的和是N的倍数。 例如:N = 8,数组A包括:2 5 6 3 18 7 11 19,...

2018-09-08 09:30:36

阅读数 74

评论数 0

51nod 1110 距离之和最小 V3 中位数、乘法的含义

题目链接 https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1110 题意 X轴上有N个点,每个点除了包括一个位置数据X[i],还包括一个权值W[i]。点P到点P[i]的带权距离 = 实际距离 * P[i]的权值。求...

2018-09-05 15:29:08

阅读数 46

评论数 0

51nod 1108 距离之和最小 V2 中位数、三维独立处理

题目链接 https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1108 题意 三维空间上有N个点, 求一个点使它到这N个点的曼哈顿距离之和最小,输出这个最小的距离之和。 点(x1,y1,z1)到(x2,y2,z2)的...

2018-09-05 15:21:46

阅读数 45

评论数 0

Codeforces 1037B Reach Median (STL,二分)

题目链接 http://codeforces.com/contest/1037/problem/B 题意 给定n和s。然后有n个数。 对第i个数可以进行操作,将其值加1或者减1。 求使得n个的中位数为s的最少操作次数。 中位数的意思就是将n个数排序后恰好在第n/2+1位的数。n保证是奇...

2018-09-03 17:14:03

阅读数 74

评论数 0

Codeforces 1037A Packets (二进制位数)

题目链接 http://codeforces.com/contest/1037/problem/A 题意 给定n个硬币,每个硬币的币值为1. 将硬币打包,每个包要么不用要么全用。 求组成1,2,3,…,n的最少的包数。 题解 求数n的二进制位数即可。 AC代码 #includ...

2018-09-03 17:05:37

阅读数 146

评论数 0

AtCoder Regular Contest 102 C - Triangular Relationship(数论、同余)

题目链接 https://arc102.contest.atcoder.jp/tasks/arc102_a 题意 给定N和K。 求三元组(a,b,c)的个数。 三元组满足下面条件: a、b、c的值都是不大于N的正整数。 a+b、b+c、a+c都是K的整数倍。 题解 根据数论同余的...

2018-09-02 10:21:01

阅读数 141

评论数 0

CSU 2115 Multiplication Game (素数筛法)

题意 Alice和Bob玩游戏。 给定一个数N。初始M=1。每轮操作要求从N的素因子中选一个数p出来,然后M=M*p。最后一轮使得M=N的人获胜。M大于N,平局。 解题 因为1e12差不多接近了2^31,所以先对[1,1e6]的范围打一个素数表。 根据这个素数表,对N进行质因数分解。 ...

2018-07-29 19:58:53

阅读数 40

评论数 0

FZU2294 Uint47 calculator(快速乘取模)

解题 用map AC代码 #include <cstdio> #include <algorithm> #include <iostrea...

2018-06-24 17:15:25

阅读数 455

评论数 1

【JAVA大数&&卡特兰数】Buy the Ticket HDU - 1133

题目链接 Buy the Ticket HDU - 1133 题目 The “Harry Potter and the Goblet of Fire” will be on show in the next few days. As a crazy fan of Harry Potter...

2018-05-05 11:43:55

阅读数 55

评论数 0

北京师范大学程序设计决赛- C. 萌萌哒身高差(找规律)

题目链接 http://www.bnuoj.com/v3/contest_show.php?cid=9358#problem/C 题目 “清明时节雨纷纷,路上行人欲断魂。” 然而wfy同学的心情是愉快的,因为BNU ACM队出去春游啦!并且,嗯。。。 以下是wfy同学的日记: 昨天,何...

2018-04-06 16:28:23

阅读数 55

评论数 0

单变元模线性方程算法及证明

题目 已知a,b,n,求x,使得ax=b(mod n). 算法说明 令d=gcd(a,n),如果d|b,则存在d个解。否则无解。 用扩展欧几里得算法求出 ax+ny=d 的一组解(x0,y0).x0即为ax=b(mod n)的一个解。d个解满足x=x0+i*n/d,i取值范围是[0,d...

2018-03-29 22:49:46

阅读数 186

评论数 1

模板总结——快速幂取模

题目 求a^n (mod m). 代码 #include <bits/stdc++.h> using namespace std; typedef long long ll; ll pow_mod(ll a,ll n,ll m) { ...

2018-03-29 10:19:18

阅读数 70

评论数 0

模板总结——扩展欧几里得

背景 求不定方程ax + by = gcd(a,b)的解集。 推导过程 由欧几里得定理,可知gcd(a,b) = gcd(b,a mod b). 所以ax + by = bx’ + (a mod b)y’.又因为a mod b=a - a/b * b.(/表示整除)。 所以a...

2018-03-28 16:23:14

阅读数 54

评论数 0

卡特兰数之凸多边形的三角分割数

题意 给定一个n多边形,要求用n-3条不相交的对角线把它分成n-2个三角形。求有多少种不同的方法。 分析 为什么是n-3条不相交的对角线? n多边形有n个顶点,依次将其编号为V1、V2、V3、…、Vn。 从V1号到V3号连线,分成一个三角形和一个(n-2)边形(因为顶点有n-3+1个)。...

2018-03-27 16:04:38

阅读数 753

评论数 0

解题报告_Triangle Counting UVA - 11401_数学规律

题目链接 https://vjudge.net/problem/UVA-11401 题意 给定1,2,3,…,n。从这n个数值中选三个不重复的整数作为三角形的三边,求有多少种选法。 分析 设三角形三边由小到大依次是a[i],a[j],a[k].根据任意两边之和大于第三边,我们只要...

2018-03-27 10:21:51

阅读数 41

评论数 0

Cheerleaders UVA - 11806(容斥原理)

题目链接 https://vjudge.net/problem/UVA-11806 题意 给定一个n*m的棋盘和k个一样的棋子。将k个棋子放到棋盘上,要求每个棋子放一个空格里,第一行、第n行、第一列、第m列都必须有棋子。求放置棋子的方法数。 分析 如果我们设方法集a为“在第一行有棋子”,...

2018-03-26 23:05:11

阅读数 56

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭