uoj problem 12 猜数
2017-03-28 21:02
204 查看
题目大意
每次询问给出g,l,有\(a*b = g*l = n\),且\(a,b\)均为\(g\)的倍数.求\(a+b\)的最小值和\(a-b\)的最大值.
题解
因为\(a,b\)均为\(g\)的倍数,所以我们另\(a = k_1*g,b = k_2*g\)那么我们有:
\(a*b = k_1*k_2*g^2 = g*l\)即\(k_1*k_2 = \frac{l}{g}\)
并且我们有\(a+b = (k_1+k_2)*g\)所以我们发现
\(a+b\)的最小值在\(k_1 = k_2\)时取到,\(a+b\)的最大值在\(k_1 = 1,k_2 = g\)时取到.
化简一下就会发现最大值其实就是\(g+l\)
#include <cmath> #include <cstdio> using namespace std; int main(){ int T;scanf("%d",&T); long long g,l; while(T--){ scanf("%lld%lld",&g,&l); printf("%lld %lld\n",2*(long long)sqrt(l/g)*g,g+l); }return 0; }
相关文章推荐
- [UOJ 12]猜数
- UOJ 12 猜数
- UOJ 12|【UER #1】猜数|数学
- UOJ 12 猜数 数学题
- UOJ 12 [UER #1]猜数
- BZOJ 3218|UOJ 77|A + B Problem|最大流|可持久化线段树
- Project Euler:Problem 12 Highly divisible triangular number
- projecteuler problem 12
- uoj problem 21 缩进优化
- Problem 12
- 欧拉项目 Problem 12 of What is the value of the first triangle number to have over five hundred divisors
- 习题6-12 筛子难题(A Dicey Problem, ACM/ICPC World Finals 1999, UVa810)
- Contest1015 - 2017年春季C++作业一 Problem A: 猜数游戏
- ProjectEuler-Problem 12-Highly divisible triangular number
- Project Euler problem 12
- Problem 12
- Problem 12:Highly divisible triangular number
- problem 12 f(n) = f(n-1) + n 数列中第一个
- Problem L-12 Reverse Text
- Problem 12:Highly divisible triangular number