2016 ICPC大连赛区 hdu5974 A Simple Math Problem

HDU 5974 A Simple Math Problem 2016大连区域赛 A Simple Math Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 14 Accepted Submission(s): 12 Problem Description Given two positive in 阅读详情


A Simple Math Problem

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 456    Accepted Submission(s): 179


Problem Description
Given two positive integers a and b,find suitable X and Y to meet the conditions:
                                                        X+Y=a
                                              Least Common Multiple (X, Y) =b
 

Input
Input includes multiple sets of test data.Each test data occupies one line,including two positive integers a(1≤a≤2*10^4),b(1≤b≤10^9),and their meanings are shown in the description.Contains most of the 12W test cases.
 

Output
For each set of input data,output a line of two integers,representing X, Y.If you cannot find such X and Y,output one line of "No Solution"(without quotation).
 

Sample Input
  
6 8 798 10780
 

Sample Output
  
No Solution 308 490
 

Source
 

Recommend
wange2014   |   We have carefully selected several similar problems for you:   5981  5980  5979  5978  5977 
题意:意思很简单,给你a和b,问能否找出两个数x,y,符合x+y=a,lcm(x,y)=b。

思路:其实就是一道公式题。。设k=gcd(x,y),a=k(x+y),b=kxy,很明显gcd(a,b)=k(下面会给出证明),所以x+y=a/k,xy=b/k,然后就是解二元一次方程,直接套公式就可以得到。然后这道题没说清楚,输出的时候x要比y小,不然是过不了的。下面给代码:

关于gcd(x+y,lcm(x,y))==gcd(x,y)==g的证明

令

x=g*k1;

y=g*k2

易知gcd(k1,k2)==1

所以x+y==g*(k1+k2)    lcm(x,y)==g*k1*k2

那么gcd(x+y,lcm(x,y))==gcd(g*(k1+k2),g*k1*k2)

要证明gcd(g*(k1+k2),g*k1*k2)==g 等价于证明gcd(k1+k2,k1*k2)==1

我们知道 a,b互质的时候 gcd(a+b,a*b)肯定是互质的,因为a+b的质因数肯定不包含a和b。

a*b的质因数肯定只包含a和b。

那么gcd(a+b,a*b)==1

因为k1,k2是互质的,所以gcd(k1+k2,k1*k2)==1

所以gcd(g*(k1+k2),g*k1*k2)==g

又因为gcd(x,y)==gcd(g*k1,g*k2)==g

所以gcd(x,y)==gcd(g*(k1+k2),g*k1*k2)==gcd(x+y,lcm(x,y))==g

得证


#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
#include<cmath>
typedef long long LL;
using namespace std;
#define maxn 1005
#define ll l,mid,now<<1
#define rr mid+1,r,now<<1|1
#define lson l1,mid,l2,r2,now<<1
#define rson mid+1,r1,l2,r2,now<<1|1
LL gcd(LL a, LL b){
	return !b ? a : gcd(b, a%b);
}
int main(){
	LL a, b;
	while (~scanf("%lld%lld", &a, &b)){
		LL k = gcd(a, b);
		LL num = a*a - 4 * b*k;
		LL sqnum = sqrt(num);
		//cout << num << endl << sqnum << endl;
		LL x1 = a - sqnum;
		LL x2 = a + sqnum;
		if (sqnum*sqnum != num || x1 % (k << 1) || x2 % (k << 1)){
			printf("No Solution\n");
		}
		else{
			printf("%lld %lld\n", k*x1 / (k << 1), k*x2 / (k << 1));
		}
	}
}


第一章 初识SpringBoot 提供大量的自动配置Spring和第三方库,开发者可以根据项目需求选择相关的starters依赖,而无需手动配置大量的Spring配置文件,开箱即用,无需配置XML,无代码生成。Spring Boot与Spring Cloud等框架集成,为构建微服务提供了强大的支持,并通过Spring Cloud实现服务注册、负载均衡、熔断等功能。本质上讲,Spring Boot就是Spring,它做了那些本应我们去做的Spring Bean配置等工作。以上就是一个简单的Spring Boot应用的创建和运行过程。 阅读详情

相关推荐

JDK8升级JDK17过程中遇到的那些坑

JDK8虽然非常好,但是JDK版本已经发布到JDK20了,且JDK8后的版本升级了很多新的特性,如模块化、ZGC以及虚拟线程、结构性并发等,也是非常有吸引力的,所以决定将基于JDK8的项目升级到最近的LTS版本JDK17。

BASK2312的博客 6685

HDU 5974 A Simple Math Problem

题目链接:https://vjudge.net/problem/HDU-5974 题意:已知两个正整数x,y的和为a,以及x,y的最小公倍数为b,求x,y 自己并没有推出来数学规律,百度到规律为 : gcd(a,b)与gcd(x,y)相等   那么容易得到:x*y等于b*gcd(a,b) 此时,x,y的和与积已知,联立求解,最后判断是否可以得到整数解 ps: 一条性质:如果x与y互质,...

reedthink的博客 239

UE5 中 Python 编程:Python 代码加载到 UE5 中,如何供蓝图节点调用

配置 python 代码的路径,使 UE5 启动时,加载代码文件。重启之后,在蓝图中右键,就能搜索到你定义的方法了。参数为 str 字符串类型,返回值为 向量数组。注意:一定要 重启 UE5。

topcss的专栏 3996

HDU - 5974

题目来源:click 题意:问x+y=a,lcm(x,y)=b,是否有两个整数x,y使之成立。 看到a,b以及测试样例的组数是不可暴力解决的,估计可以整化成一个公式。 lcm(x,y)=x*y/gcd(x,y),设gcd(x,y)=temp; 可知gcd(x/temp,y/temp)=1; 设i=x/temp,j=y/temp; 则 i * temp + j * temp=a , i...

weixin_43958964的博客 217

大模型-高通平台性能测试示例-2

在QNN中,可以使用(genis-t2t-run)和这两个工具来进行推理的性能分析。支持在QNX操作系统或Android操作系统上进行性能分析。:提供基本的性能数据,如运行时间、资源消耗等。:提供更详细的性能数据,可能包括各个操作的执行时间、资源使用情况等。:是指在性能分析的同时进行代码质量检查,以发现潜在的问题。:是指跟踪和分析神经网络中各个操作的性能,以优化网络结构或参数。

点滴的岁月 1492

Linux 使用rm -rf /*命令后,恢复系统方法

Linux 使用rm -rf /*命令后,恢复系统方法 个人学习记录 这里实验环境采用的是radhel7.1的版本: 个人认为核心就是缺失什么组件,就从别的地方复制什么组件过来,先把系统拉起来,再慢慢恢复配置 进入救援模式 1、将/dev/sda两个分区分别挂载看看,里面的内容,有内容的就是根存在的分区 2、ifconfig eno16777777 192.168.8.2 3、从另外一台一样系统的根 。用 tar打包,一个个文件夹拷贝过来 4、到坏系统,scp另外一个系统的etc.tar.gz 5

weixin_43603476的博客 1万+

HDU - 5974-A Simple Math Problem(gcd)

HDU - 5974-A Simple Math Problem 题目大意:给你2个正整数a、b,要求你找出2个数x、y满足2个条件(1)x+y=a(2)x和y的最小公倍数是b,有则输出x、y,没有就输出“No Solution” 解题思路:首先按照正常的思路,分析题目,通过找b的因子来找到符合条件的x、y,b最大为10^9,也就是可以在sqrt(b)的时间复杂度内完成,但是题目是多组输出,也没有...

weixin_43871404的博客 229

【Cadence软件技巧集萃】从Capture到Allergo——分布演示从原理符号导出到网络表

Cadence软件功能多样、性能强大,但是使用起来颇费步骤,尤其是从原理图到网络表的导入步骤,没有经过上手实践还真不一定一次就能搞定哩。本文笔者用将分步演示:1、在Capture软件上绘制原理图;2、将原理图导出网络表;3、在Allergo软件上更新网络表;希望给予使用Cadence的读者有效的帮助1、本文简述了建立Capture项目的步骤,演示了调用元件符号库的方法,并绘制了电气原理图;2、针对加载元件封装库可能遇到的问题,做了排查步骤建议;

qq_33175704的博客 2534

2016 大连 D HDU5974 A Simple Math Problem · 数论

转化成用gcd做以后,然后简化公式,结论题_(:з」∠)_(不过我算不出来就是了2333#include &lt;cstdio&gt; #include &lt;algorithm&gt; #include &lt;cstring&gt; #include &lt;cmath&gt; using namespace std; #define ll long long ll a,b,i,j,c,d...

山外小楼夜听雨 702

高熵合金AlCoCrFeNi/金刚石摩擦案例代码

本文介绍金刚石与高熵合金AlCoCrFeNi摩擦的案例。 在之前的文章中,介绍过使用fix indent命令实现虚拟球的摩擦,本文介绍使用金刚石实体球实现高熵合金摩擦的方法。 主要的模拟过程如下: (1)基体建模 建使用原子替换法获得高熵合金初始模型,升温到3000K驰豫后,冷却至300K,获得平衡组织。 (2)摩擦球建模 在高熵合金平衡组织的模型中添加金刚石摩擦球,使用change_box命令扩大box尺寸,添加金刚石摩擦球,并设置混合力场。 (3)摩擦过程 摩擦球下压一定深度后,沿y方向进行摩擦,摩擦

lammps_jiayou的博客 2900

SAP-ABAP:ABAP Development Tools(ADT)安装配置学习分享教程-第一篇:ADT安装前置准备与环境校验教程

ABAP Development Tools(ADT)安装配置教程摘要 本文是ADT安装系列的第一篇,重点讲解环境准备与版本校验。ADT是基于Eclipse的现代ABAP开发工具,相比传统SAP GUI提供更智能的开发体验。安装前需确认: 推荐使用Eclipse 2026-03 + Java 21组合 操作系统需Windows 10+/macOS 14+ SAP GUI版本要求Windows≥8.00/macOS≥8.10 后端系统需NetWeaver 7.31 SP04+或S/4HANA 通过java -

baidu_35680696的博客 686

2016 ACM/ICPC大连区域赛 D—A Simple Math Problem【LCM+数学方程】

http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1004&amp;cid=736 A Simple Math Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission...

lml11111的博客 335

SAP SmartForms字体 :从OTF缓存溢出到完美解决

精准诊断:遇到错误,首先区分是图片过大还是字体嵌入导致。删除图片测试是最快的判别方法。字体上传规范始终从SE73入口上传用于表单打印的字体。强烈建议应用SAP Note 1301018,确保上传时勾选“不替换其他字体”,避免系统自动替换引发的意外问题。如需为同一字体族上传粗体、斜体等变体,请在SE73初始屏幕上勾选对应的属性框(如BOLD),然后分别上传对应的字体文件(如上传过程中,系统会提示输入RTF控制序列信息,这是确保打印预览正常显示的关键步骤,必须正确填写。方案选型快速止血:采用方案一(

Pegasus666的博客 294

hdu 5974 A Simple Math Problem(欧几里得)

http://acm.hdu.edu.cn/showproblem.php?pid=5974题目大意: x+y=a,lcm(x,y)=b。给出a和b,如果x和y有解,求出x和y。解题思路:gcd(x,y) * k1 = xgcd(x,y) * k2 = y=> gcd(x,y) * k1 * k2 = b=> gcd(x,y) * k1 + gcd(x,y) * k2 = a=> k1 *

HJ 464

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

HDU 5974 A Simple Math Problem (推数学公式)

B - A Simple Math Problem   题意:给你a和b,找到一对x和y使得x+y==a,lcm(x,y)==b。 思路: 这题暴力是不行了,只能递推公式了,主要有两种姿势 第一种姿势: x = k1*gcd(x,y), y = k2*gcd(x,y); 所以 a = x + y = (k1+K2)*gcd(x,y), b = x * y / g

K键盘里的青春K 859

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

hdu 5974 A Simple Math Problem

A Simple Math Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 70    Accepted Submission(s): 39 Problem Description Given two

无常是生活的常态 1338

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

HDU 5974 A Simple Math Problem(数学解方程)——2016ACM/ICPC亚洲区大连站-重现赛(感谢大连海事大学)

传送门 A Simple Math ProblemTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 262    Accepted Submission(s): 120Problem Description Given two positiv

代码改变世界 1901

HDU - 5974 A Simple Math Problem (数论 GCD)

题目描述: Given two positive integers a and b,find suitable X and Y to meet the conditions: X+Y=a ...

weixin_34358365的博客 164

hdu5974数学

Given two positive integers a and b,find suitable X and Y to meet the conditions: X+Y=a Least Comm

老李2009 672

hdu5974

A Simple Math ProblemTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1086 Accepted Submission(s): 356Problem DescriptionGiven two positive i

creatorx的博客 622

HDU 5974 A Simple Math Problem(简单数学)

Description Given two positive integers a and b,find suitable X and Y to meet the conditions: X+Y=a, Least Common Multiple (X, Y) =b Input Input includes multiple sets of test data.Each test data o

so_so_y的博客 776

2016ICPC大连站 D A Simple Math Problem【GCC+方程】

Given two positive integers a and b,find suitable X and Y to meet the conditions: X+Y=a Least Com

Irish_Moonshine的博客 520

HDU5974方程化简

题意: Given two positive integers a and b,find suitable X and Y to meet the conditions: ​ X+Y=a ​ Leas...

Ivan_zcy的博客 741

HDU 5974 A Simple Math Problem(转化解方程)

题意:x+y=a lcm(x,y)=b  求x,y 12WCases +  b 10^9 + a 10^4 所以肯定不是枚举……肯定是公式题 接下来就是转化 x+y=a x*y/gcd(x,y)=b 令gcd(x,y)=c x=i*c,y=j*c i*c+j*c=a c*i*j=b c*(i+j)=a c*i*j=b 因为i j互

Re-moved 615

HDU 5974 A Simple Math Problem (数学)

A Simple Math Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 86    Accepted Submission(s): 49 Problem Description Give

In my way 1059
上一篇: 2016 ICPC大连赛区 hdu5971 Wrestling Match
下一篇: 2016 ICPC大连赛区 hdu5980 Find Small A
overload1997
博客等级 码龄11年 328粉丝 210原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值