摘要: 【题目链接】 点击打开链接 【算法】 gcd(i,n)是n的约数 不妨设gcd(i,n) = d 考虑枚举d和gcd(i,n) = d有多少个 gcd(i,n) = d gcd(i/d,n/d) = 1 因为i<=n,所以i/d<=n/d 因此满足gcd(i,n) = d一共有phi(n/d)个 【 阅读全文
posted @ 2018-03-20 21:30 evenbao 阅读(121) 评论(0) 推荐(0)
摘要: 【题目链接】 点击打开链接 【算法】 1.关于求最大公约数的算法 若使用辗转相除法,那么显然会超时 不妨这样思考 : 要求gcd(a,b), 若a为偶数,b为偶数,则gcd(a,b) = 2 * gcd(a/2,b/2) 若a为偶数,b为奇数,则gcd(a,b) = gcd(a/2,b) 若a为奇数 阅读全文
posted @ 2018-03-18 20:47 evenbao 阅读(158) 评论(0) 推荐(0)
摘要: 【题目链接】 点击打开链接 【算法】 其实这就是一道模拟题啦! 在判error和计算时间复杂度时,我们需要用栈这种数据结构 【代码】 这题的代码还是有些难写的,写的时候一定要有条理! 阅读全文
posted @ 2018-03-16 19:14 evenbao 阅读(211) 评论(0) 推荐(0)
摘要: 【题目链接】 点击打开链接 【算法】 前缀和 + 堆 【代码】 阅读全文
posted @ 2018-03-15 21:43 evenbao 阅读(156) 评论(0) 推荐(0)
摘要: 【题目链接】 点击打开链接 【算法】 不难看出,x1的范围是[x2-P(x2)+1,x2],x0的范围是[x1-P(x1)+1,x1] 我们可以先做一遍线性筛,然后暴力就可以了 【代码】 阅读全文
posted @ 2018-03-14 22:17 evenbao 阅读(235) 评论(0) 推荐(0)
摘要: 【题目链接】 点击打开链接 【算法】 G中最大的数一定也是a中最大的数。 G中次大的数一定也是a中次大的数。 第三、第四可能是由最大和次大的gcd产生的 那么就不难想到下面的算法: 1. 令p为G中最大的数。在G中删除p,a中加入p。 2 . 对于a中的所有其他数(设为q),在G中删除2个gcd(p 阅读全文
posted @ 2018-03-13 20:24 evenbao 阅读(131) 评论(0) 推荐(0)
摘要: 【题目链接】 点击打开链接 【算法】 设取的所有数都是k的约数,则这些数的lcm必然不大于k。 对于[1, m]中的每个数,统计a中有多少个数是它的约数即可。 【代码】 阅读全文
posted @ 2018-03-11 20:57 evenbao 阅读(180) 评论(0) 推荐(0)
摘要: 【题目链接】 点击打开链接 【算法】 若gcd(s1,s2,s3....sk) > 1, 则说明 : 一定存在一个整数d满足d|s1,d|s2,d|s3....,d|sk 因为我们要使|s|尽可能大,所以d是一个质数 对每个数进行质因数分解即可 【代码】 阅读全文
posted @ 2018-03-11 19:52 evenbao 阅读(151) 评论(0) 推荐(0)
摘要: 【题目链接】 点击打开链接 【算法】 gcd(a,a+1) = 1 所以当a = b时,答案为a,否则为1 【代码】 阅读全文
posted @ 2018-03-11 19:24 evenbao 阅读(171) 评论(0) 推荐(0)
摘要: 【题目链接】 点击打开链接 【算法】 将所有质数染成1,合数染成2即可 【代码】 阅读全文
posted @ 2018-03-11 19:13 evenbao 阅读(184) 评论(0) 推荐(0)