随笔分类 - 数学
摘要:【题目链接】 点击打开链接 【算法】 要求M,显然可以通过约数个数定理从1..N暴力计算答案,然而n最大10^6,这个算法的时间复杂度是 O(N * sqrt(N))的,不能通过此题 因此我们换一种思路 不妨考虑每个数对答案的“贡献”,若这个数为i,那么1..n中,共有n / i个数是i的倍数,那么
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 稍加分析可知,问题等价于“求1到n中,因子个数最多的数,若有多个,求最小的” 那么我们该怎么求这个数呢? 约数个数定理 : x = p1^a1p2^a2p3^a3...pn^an 则x的约数个数为 : (a1 + 1)(a2 + 1)(a3 + 1) ... (
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 欧拉函数 【代码】
阅读全文
摘要:【题目链接】 点击打开链接【算法】 不难看出,ans = phi(2) + phi(3) + .... + phi(n-1) + phi(n) 线性筛筛出欧拉函数,预处理前缀和,即可【代码】 ...
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 线性筛出不大于N的所有素数,枚举gcd(x,y)(设为p),问题转化为求(x,y)=p的个数 设x=x'p, y=y'p,那么有(x,y)=1且1≤x,y≤N/p 转化为求(x,y)=1且1≤x,y≤n的个数 求(x,y)=1且1≤x,y≤N的个数: 若x≥y,
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 px + qy不能表示的最大整数为 pq - p - q 证明见这篇博客,过程很详细,推荐阅读 : https://blog.csdn.net/qwerty1125/article/details/78661916 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 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)个 【
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 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为奇数
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 不难看出,x1的范围是[x2-P(x2)+1,x2],x0的范围是[x1-P(x1)+1,x1] 我们可以先做一遍线性筛,然后暴力就可以了 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 G中最大的数一定也是a中最大的数。 G中次大的数一定也是a中次大的数。 第三、第四可能是由最大和次大的gcd产生的 那么就不难想到下面的算法: 1. 令p为G中最大的数。在G中删除p,a中加入p。 2 . 对于a中的所有其他数(设为q),在G中删除2个gcd(p
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 设取的所有数都是k的约数,则这些数的lcm必然不大于k。 对于[1, m]中的每个数,统计a中有多少个数是它的约数即可。 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 若gcd(s1,s2,s3....sk) > 1, 则说明 : 一定存在一个整数d满足d|s1,d|s2,d|s3....,d|sk 因为我们要使|s|尽可能大,所以d是一个质数 对每个数进行质因数分解即可 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 gcd(a,a+1) = 1 所以当a = b时,答案为a,否则为1 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 将所有质数染成1,合数染成2即可 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 我们知道,一个数的因子是成对出现的,一半小于等于sqrt(N),一半大于sqrt(N),因此,我们可以从 2..sqrt(N)枚举因子 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 杨辉三角 + 二维前缀和 O(1)计算答案 【代码】
阅读全文
摘要:【比赛链接】 点击打开链接 【题解】 Problem A Word Correction【字符串】 不用多说了吧,字符串的基本操作 Problem B Run for your prize【贪心】 我们可以将这个数轴一分为二,小于等于500000的由第一个人领,否则由第二个人领 Problem C
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 如果一个数是小X喜欢的数,那么有两种可能: 1.这个数是质数 2.这个数除以它的最小质因子是一个质数 所以我们可以用线性筛+前缀和的方式预处理,询问的时候O(1)计算就可以了 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 概率DP 先跑一遍floyed,求出每个教室之间的最短路径,存在数组dist[][]中,时间复杂度O(V^3) 设计状态,f[i][j][k]表示当前选到第i个教室,已经选了j个教室,当前这个教室选不选(0..1) 那么,状态转移方程是什么呢? 假设当前选到第i
阅读全文
摘要:【题目描述】 白日梦 (daydream.c/cpp/pas) 时间限制: 1 s 空间限制: 256 MB 题目描述 SR需要相当大的睡眠量 某日,他做了一个奇怪的梦,他梦见自己成为了怪物猎人,为了狩猎,他要去一个岛上住N+1天(编号为0到N)。这个岛位于太平洋中心,每天要么是晴天,要么刮台风。
阅读全文

浙公网安备 33010602011771号