Codeforces C.Neko does Maths】的更多相关文章

题目描述: C. Neko does Maths time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Neko loves divisors. During the latest number theory lesson, he got an interesting exercise from his math teacher. N…
题目链接: http://codeforces.com/contest/1152/problem/C 题意: 给出两个数$a$和$b$ 找一个$k(k\geq 0)$得到最小的$LCM(a+k,b+k)$ 如果有多个$k$,输出最小的$k$ 数据范围: $1 \le a, b \le 10^9$ 分析: 假设 $gcd\left (  a+k,b+k\right )= t$ 那么$(a+k)\%t=(b+k)\%t=0$ 化简得到$a\%t=b\%t$ $a-x\times t=b-y\time…
题目:http://codeforces.com/contest/1152/problem/C 题意:给你a,b, 你可以找任意一个k     算出a+k,b+k的最小公倍数,让最小公倍数尽量小,求出这个k 思路: 因为现在两个都是未知数,我们无法确定 我们根据gcd底层实现原理 gcd(a+k,b+k) = gcd(b-a,a+k) a=c*x; b=c*y; b-a=c*(y-x) 所以证明b-a的因子是a的因子也是b的因子 那么我们只要枚举出b-a的因子,然后再套入a+k中求得k,然后枚举…
Neko does MathsCodeForces - 1152C 题目大意:给两个正整数a,b,找到一个非负整数k使得,a+k和b+k的最小公倍数最小,如果有多个k使得最小公倍数最小的话,输出最小的k. 首先让b>a,由lcm(a,b)=a*b/gcd(a,b),可以得出如果b%a==0,那么它们的最小公倍数就是b,此时的k就等于0.但如果b%a!=0的话,我们设g=gcd(a+k,b+k),那么就是有a+k=q1*g,b+k=q2*g,两者做差,那么b-a=(q2-q1)*g,由此我们可以知…
题目链接:https://codeforces.com/contest/1152/problem/C 题目大意:给定两个正整数a,b,其中(1<=a,b<=1e9),求一个正整数k(0<=k),使得a+k与b+k的最小公倍数最小. 解题思路:首先我们需要知道gcd(a,b)=gcd(a,b-a)=gcd(b,b-a)(b>a)的 我们要求的是lcm(a+k,b+k)=(a+k)(b+k)/gcd(a+k,b+k)=(a+k)(b+k)/gcd(a+k,b-a) 因为b-a是定值,所…
传送门 题意: 给出两个整数a,b: 求解使得LCM(a+k,b+k)最小的k,如果有多个k使得LCM()最小,输出最小的k: 思路: 刚开始推了好半天公式,一顿xjb乱操作: 后来,看了一下题解,看到一个引理: GCD(a,b) = GCD(a,b-a) = GCD(b,b-a)(b > a) 假设GCD(a,b) = c; a%c = ; b%c = ; 那么(b-a)%c = ; 这证明了a和(b-a),b和(b-a)有公约数c; 假设GCD(a,b-a)=c' > c; 那么,a%c'…
传送门 •题意 给出两个正整数 a,b: 求解 k ,使得 LCM(a+k,b+k) 最小,如果有多个 k 使得 LCM() 最小,输出最小的k: •思路 时隔很久,又重新做这个题 温故果然可以知新❤ 重要知识点 GCD(a,b)=GCD(a,b-a)=GCD(b,b-a) (b>a) 证明: 设GCD(a,b)=c 则a%c=0,b%c=0,(b-a)%c=0 所以GCD(a,b-a)=c 得GCD(a,b)=GCD(a,b-a) gcd(a+k,b-a)肯定是(b-a)的因子 所以gcd(a…
题目大意:输入两个数 a,b,输出一个k使得lcm(a+k,b+k)尽可能的小,如果有多个K,输出最小的. 题解: 假设gcd(a+k,b+k)=z; 那么(a+k)%z=(b+k)%z=0. a%z+k%z=b%z+k%z:a%z=b%z:(a-b)%z=0; 也就是说,z一定是a-b的因子.a-b是已知的,枚举a-b的因子就好了. 也就是枚举z,因为(a+k)%z==0,如果让k最小,那么k=z-a%z. #include<iostream> #include<cstdio>…
题目链接: https://codeforces.com/contest/1152/problem/D 题意: 给出一个$n$,然后在匹配树上染色边,每个结点的所有相邻边只能被染色一次. 问,这颗树上最多染色多少边. 匹配树,就是深度为$2n$的树,每个节点都是一个字符串,只包含$(,)$,以长度为$2n$的合法匹配字符串作为叶子.每个节点的父亲是比自身长度小一的节点. 数据范围: $1 \le n \le 1000$ 分析: 在百度找了很久都没找到满意的题解,于是看了cf给的官方题解.虽然是全…
 题目链接:https://codeforces.com/contest/1152/problem/C 题目大意:给你a和b,然后让你找到一个k,使得a+k和b+k的lcm. 学习网址:https://blog.csdn.net/yopilipala/article/details/89517933 具体思路:   AC代码: #include<bits/stdc++.h> using namespace std; # define ll long long # define inf 0x3f…