码迷,mamicode.com
首页 >  
搜索关键字:gcd    ( 4539个结果
hdu 4910 Problem about GCD(数论)
题目连接:hdu 4910 Problem about GCD 题目大意:给定M,判断所有小于M并且和M互质的数的积取模M的值。 解题思路:有个数论的结论,若为偶数,M=M/2. 可以写成M=pk,即只有一种质因子时,答案为M-1,否则为1.特殊情况为4的倍数,不包括4. 首先用1e6以内的素数去试除,如果都不可以为p,那么对大于1e6的情况判断一下是否为素数,是素数也可以(k=1)...
分类:其他好文   时间:2014-08-04 02:05:06    阅读次数:265
HDU 4910 Problem about GCD(米勒拉宾)
HDU 4910 Problem about GCD 题目链接 题意:给定一个数字,求出1 - n之间与他互质的数的乘积mod n 思路:看了网上别人找出来的规律,原文链接 然后由于这题的n很大,也没法直接判定,可以这样搞,先去试10^6以内的素数,判断可不可以,如果不行,再利用米勒拉宾判下是否是素数,如果不是的话,把这个数字开根在平方,判断是不是完全平方数,这样做的原因是数字...
分类:其他好文   时间:2014-08-04 02:03:46    阅读次数:273
uva 11256 - Repetitive Multiple(gcd+暴力)
题目链接:uva 11256 - Repetitive Multiple 题目大意:给定一个数n,要求找到最小的k,使得k?n为题目中定义的重复数字. 解题思路:枚举k?n的循环节长度,比如当前枚举为2,那么一次判断u=1001,1001001,1001001001 ...,取d = gcd(n,u), 那么k = u / d, a = n / d (因为n?k=u?a)并且保...
分类:其他好文   时间:2014-08-03 12:54:35    阅读次数:211
gcd,lcm,ext_gcd,inv
Least Common Multiplehttp://acm.hdu.edu.cn/showproblem.php?pid=1019 1 #include 2 int gcd(int a,int b){ 3 return b?gcd(b,a%b):a; 4 } 5 int lcm(int ...
分类:其他好文   时间:2014-08-03 12:27:35    阅读次数:222
codeforces 453 B Little Pony and Harmony Chest (状压dp)
题目大意: 需要你构造一个b数组。使得b数组中的所有元素互质。 而且使得b数组与a数组中的每个对应下标元素的差值和最小。 思路分析: 考虑到 a中所有元素都是 0 - 30. 所以b中的元素也只可能在 0 - 59. 因为如果b 选择60的话,结果和1是一样的,而且b序列中 1 可以重复出现很多次。 因为gcd (1,x) = 1。。 所以们首先把2 - 59中的所有素数处...
分类:其他好文   时间:2014-08-03 10:19:05    阅读次数:336
uva 11317 - GCD+LCM(欧拉函数+log)
题目链接:uva 11317 - GCD+LCM 题目大意:给定n,求出1~n里面两两的最大公约的积GCD和最小公倍数的积LCM,在10100进制下的位数。 解题思路:在n的情况下,对于最大公约数为i的情况又phi[n/i]次。求LCM就用两两乘积除以GCD即可。 #include #include #include #include using namespace std...
分类:其他好文   时间:2014-08-03 01:48:04    阅读次数:392
uva 1521 - GCD Guessing Game(贪心)
题目链接:uva 1521 - GCD Guessing Game 题目大意:给定一个数N,现在又一个数x,在1~N之间,现在每次可以猜一个数a,返回gcd(x,a),问说最少猜几次可以确定x。 解题思路:其实就将1~N里面的素数都要考虑一遍,因为有一个N的限制,所以每次选出来的素数的积不大于N即可。 #include #include #include using name...
分类:其他好文   时间:2014-08-02 23:27:44    阅读次数:302
uva 10542 - Hyper-drive(容斥)
题目链接:uva 10542 - Hyper-drive 题目大意:给定n维空间的线段,问说线段经过几个格子。 解题思路:对于线段可以将一点移动至原点,变成 (0,0)到(a,b)这条线段,以二维为例,每次会从一个格子移动到另一个格子,可以是x+1坐标,也可以是y+1,所以总的应该是a+b-1,扣除掉x+1,y+1的情况gcd(a,b)-1 (原点)。映射成n维就要用容斥原理计算结果...
分类:其他好文   时间:2014-08-02 23:26:24    阅读次数:295
HDU 4902 线段树||暴力
给定一个序列,两种操作 1:把一段变成x。 2:把一段每个数字,如果他大于x,就变成他和x的gcd,求变换完后,最后的序列。 线段树解法:用lazy标记下即可,优化方法还是很巧妙的, Accepted 4902 515MS 3308K 1941 B C++ #include "stdio.h" #include "string...
分类:其他好文   时间:2014-08-02 20:57:24    阅读次数:367
最大公约数 最小公倍数--------专题
#include int gcd(int m,int n){if(n==0) return m;else return gcd(n,m%n);}*************变形一int gcd(int m,int n) {if(m%n==0) return m; else return gcd(n,m...
分类:其他好文   时间:2014-08-02 20:40:13    阅读次数:243
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!