UOJ 12|【UER #1】猜数|数学
2016-09-19 22:14
706 查看
http://uoj.ac/problem/12
给定完全平方数n,并已知gl=n(g,l∈N),对于a,b(g|gcd(a,b)),求min(a+b),max(a+b)
首先很容易想到均值不等式:a+b≥2ab−−√=2n−√,又n是完全平方数,所以a+b可以取到最小值。并且可以证明此时的a,b满足g|gcd(a,b):
∵∴又∴又故g|gcd(a,b),ab=n对于n的一个质因数分解项pq,显然pqa⋅pqb=pq,即qa+qb=q此时g一定满足qg≤min{qa,qb},才有g|gcd(a,b)max{qa,qb}≥q2,min{qa,qb}≤q2qg≤q2当均值不等式取到等号时有a=b,即qa=qb=q2a和b均是q的倍数
对于最大值,最大化|a−b|即有a+b最大,因为a和b是g的倍数,即a,b≥g,故令a=g,b=l时有a+b最大。
强行用long double+printf出车祸了。。貌似long double+cout就没有问题?
不过这种东西只要稍微改一下形式就好了。
不自行出个大数据还不知道有这种bug。。?
给定完全平方数n,并已知gl=n(g,l∈N),对于a,b(g|gcd(a,b)),求min(a+b),max(a+b)
首先很容易想到均值不等式:a+b≥2ab−−√=2n−√,又n是完全平方数,所以a+b可以取到最小值。并且可以证明此时的a,b满足g|gcd(a,b):
∵∴又∴又故g|gcd(a,b),ab=n对于n的一个质因数分解项pq,显然pqa⋅pqb=pq,即qa+qb=q此时g一定满足qg≤min{qa,qb},才有g|gcd(a,b)max{qa,qb}≥q2,min{qa,qb}≤q2qg≤q2当均值不等式取到等号时有a=b,即qa=qb=q2a和b均是q的倍数
对于最大值,最大化|a−b|即有a+b最大,因为a和b是g的倍数,即a,b≥g,故令a=g,b=l时有a+b最大。
强行用long double+printf出车祸了。。貌似long double+cout就没有问题?
不过这种东西只要稍微改一下形式就好了。
不自行出个大数据还不知道有这种bug。。?
#include <cstdio> #include <iostream> #include <cmath> using namespace std; typedef long long ll; ll read() { ll s = 0, f = 1; char ch = getchar(); for (; ch < '0' || ch > '9'; ch = getchar()) if (ch == '-') f = -1; for (; '0' <= ch && ch <= '9'; ch = getchar()) s = s * 10 + ch - '0'; return s * f; } int main() { int t = read(); ll g, l; while (t--) { g = read(), l = read(); cout<<2 * (ll)(sqrt((long double)g * l))<<' '<<g + l<<endl; //printf("%lld %lld\n", 2 * (ll)(sqrt((long double)g / l) * l), g + l); } return 0; }
相关文章推荐
- UOJ 12 [UER #1]猜数
- UOJ 12 猜数 数学题
- uoj problem 12 猜数
- UOJ 12 猜数
- [UOJ 12]猜数
- 数学之美 系列 12 - 余弦定理和新闻的分类
- 游戏开发中的数学和物理算法(12):矢量的加减法
- UOJ180 【UR #12】实验室外的攻防战
- python笔记12 - 装饰器,模块(时间,数学)
- Python标准库12 数学与随机数 (math包,random包)
- 纯数学教程 Page 325 例LXVIII (12)
- 数学之美 系列 12 - 余弦定理和新闻的分类
- Excel教程(12) - 数学和三角函数
- UOJ_14_【UER #1】DZY Loves Graph_并查集
- 数学回味系列之12 - 龟兔赛跑问题
- 纯数学教程 Page 325 例LXVIII (12)
- 【原创】开源Math.NET基础数学类库使用(12)C#随机数扩展方法
- UOJ_21_【UR #1】缩进优化_数学
- Python标准库12 数学与随机数 (math包,random包)
- 数学之美 系列 12 - 余弦定理和新闻的分类