hdu5974 A Simple Math Problem(数学)

时间:2022-11-03 23:23:40

题目链接

大意:给你两个数X,YX,YX,Y,让你找两个数a,ba,ba,b,满足a+b=X,lcm(a,b)=Ya+b=X,lcm(a,b)=Ya+b=X,lcm(a,b)=Y.

思路:枚举gcd(a,b)gcd(a,b)gcd(a,b),假设gcd(a,b)=k,那么a=xa∗k,b=xb∗k,gcd(a,b)=k,那么a=x_a*k,b=x_b*k,gcd(a,b)=k,那么a=xa​∗k,b=xb​∗k,化简上面给的两个式子即可得到

xa+xb=Xk,xa∗xb=Ykx_a+x_b=\frac{X}{k},x_a*x_b=\frac{Y}{k}xa​+xb​=kX​,xa​∗xb​=kY​,显然这是一个方程组,将xb=Xk−xax_b=\frac{X}{k}-x_axb​=kX​−xa​代入第二个式子即可得到一个一元二次方程,解这个方程即可。

#include<bits/stdc++.h>

#define LL long long
#define fi first
#define se second
#define mp make_pair
#define pb push_back using namespace std; LL gcd(LL a,LL b){return b?gcd(b,a%b):a;}
LL lcm(LL a,LL b){return a/gcd(a,b)*b;}
LL powmod(LL a,LL b,LL MOD){LL ans=1;while(b){if(b%2)ans=ans*a%MOD;a=a*a%MOD;b/=2;}return ans;}
const int N = 2e5 +11;
int a,b;
int main(){
ios::sync_with_stdio(false);
while(cin>>a>>b){
int q=sqrt(a);
int sta=0,anL,anR;
for(int i=1;i<=q;i++){
if(a%i)continue;
int A=a/i;
int B=b/i;
if(A*A<4*B)continue;
int T=floor(sqrt(A*A-4*B));
if(T*T!=A*A-4*B)continue;
else {
if((A-T)%2||(A+T)%2)continue;
int L=(A-T)/2*i;
int R=(A+T)/2*i;
if(lcm(L,R)!=b)continue;
anL=(A-T)/2*i;
anR=(A+T)/2*i;
sta=1;
break;
}
}
for(int i=1;i<=q&&!sta;i++){
if(a%i)continue;
int A=a/(a/i);
int B=b/(a/i);
if(A*A<4*B)continue;
int T=floor(sqrt(A*A-4*B));
if(T*T!=A*A-4*B){continue;}
else {
if((A-T)%2||(A+T)%2){continue;}
int L=(A-T)/2*(a/i);
int R=(A+T)/2*(a/i);
if(lcm(L,R)!=b){continue;}
anL=(A-T)/2*(a/i);
anR=(A+T)/2*(a/i);
sta=1;
break;
}
}
if(!sta)cout<<"No Solution\n";
else cout<<anL<<' '<<anR<<endl;
}
return 0;
}

hdu5974 A Simple Math Problem(数学)的更多相关文章

  1. FZYZ-2071 A Simple Math Problem IX

    P2071 -- A Simple Math Problem IX 时间限制:1000MS      内存限制:262144KB 状态:Accepted      标签:    数学问题-博弈论    ...

  2. hdu 1757 A Simple Math Problem &lpar;乘法矩阵&rpar;

    A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  3. HDU1757 A Simple Math Problem 矩阵快速幂

    A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  4. hdu------&lpar;1757&rpar;A Simple Math Problem&lpar;简单矩阵快速幂&rpar;

    A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  5. A Simple Math Problem(矩阵快速幂)(寒假闭关第一题,有点曲折啊)

    A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...

  6. HDU 1757 A Simple Math Problem &lpar;矩阵快速幂&rpar;

    题目 A Simple Math Problem 解析 矩阵快速幂模板题 构造矩阵 \[\begin{bmatrix}a_0&a_1&a_2&a_3&a_4&a ...

  7. HDU 1757 A Simple Math Problem&lpar;矩阵&rpar;

    A Simple Math Problem [题目链接]A Simple Math Problem [题目类型]矩阵快速幂 &题解: 这是一个模板题,也算是入门了吧. 推荐一个博客:点这里 跟 ...

  8. HDU 1757 A Simple Math Problem (矩阵乘法)

    A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  9. hdu 5974 A Simple Math Problem

    A Simple Math Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Ot ...

随机推荐

  1. 【处理手记】U盘读不出&plus;卷标丢失&plus;像读卡器&plus;大小0&plus;无媒体

    Update:201307180945 今天这鸟问题又找上我了,照之前的方法做后没解决,我又做了些尝试,整个流程如下: 1.插上U盘,发现问题 2.以devmgr_show_nonpresent_de ...

  2. strong和b

    strong和b标签都是很久以前遗留下来的标签,b标签用来加粗字体,strong用来强调,通常浏览器会把强调的语句加粗,所以二者效果比较近似.语义化愈发受重视以后,b标签退出大众视野,strong依然 ...

  3. Spring-IOC之前世今生

    没使用IOC之前 贯用工厂模式调用 bean组件 可类比为: 去商场买东西,你是先想好自己要买什么了,然后去寻找商品(逛商场的同学不要扯皮啊2333) 用了IOC之后 可类比为: 所有网上购物,所有的 ...

  4. redis存储对象,实体类新加字段空指针问题处理

    redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set ...

  5. 《C&plus;&plus; primer》--第12章

    习题12.7 什么是封装?为什么封装是有用的? 解答: 封装是一种将低层次的元素组合起来形成新的.高层次实体的技术.例如,函数是封装的一种形式:函数所执行的细节行为被封装在函数本身这个更大的实体中:类 ...

  6. Linux 网络编程基础(2)-- 获取主机信息

    前一篇已经介绍了最基本的网络数据结构.这篇介绍一下获取主机信息的函数 举个例子,想要通过代码的方式从百度获取当前的时间,怎么做?我们不知道百度的IP地址啊,这代码怎么写?还好,Linux提供了一些AP ...

  7. 省市区三级数据的MYSQL内容

    省市区三级数据的MYSQL内容 省: /* Navicat MySQL Data Transfer Source Server : rm-2ze0lz594rof5nn72.mysql.rds.ali ...

  8. Android Studio 创建&sol;打开项目时一直处于Building&OpenCurlyDoubleQuote;project name”Gradle project info 的解决

    最近发现新版的AS,IDEA毛病不断,而且gradle的更新又给墙了,无奈啊! 进入类似如下的目录,发现如果没有对应的gradle解压文件,则在gradle官网下载完整压缩包,放入类似55xxxx串号 ...

  9. mongodb rebo 3T 执行出错 failed to execute script 但是执行成功 171条

    我现在也不清楚到底是什么原因 解决方法: 把你要执行的脚本保存到文件 在最上面添加下面两行代码:根据你的数据库 信息填写 conn = new Mongo('host:port'); db = con ...

  10. CCD和CMOS的差别

    单从感光器电子技术上来说,CCD比CMOS更先进,理论成像上有优势,但是最近几年CMOS却发展更好,使得很多高端数码单反采用CMOS传感器,下面来看看CCD和CMOS的技术知识: CCD和CMOS传感 ...