牛客1047-得不到的爱情

题目链接:https://ac.nowcoder.com/acm/contest/18839/1047

题目表述

Chranos是个数学天才。
一天,有一个可爱的小女孩追求Chranos,他知道Chranos最喜欢当且仅当总质量为K克的时候的番茄炒蛋了。她希望通过美食俘获Chranos的胃,这样就一定可以和他在一起了吧!虽然小女孩有无限数量的食材,但是数学王国的番茄和蛋非常特殊,他们的质量分别为N克和M克。为了表现一颗完整的心、表达充足的爱意,所有的食材必须被用完。N和M都是正整数且互素,制作过程中既不会凭空增加质量,也不会凭空消失质量。
Chranos不希望小女孩打扰他学数学。他发现,并不是所有番茄炒蛋都是可以被制作出来的。他想找出最大的不可以被制作出的总质量K来拒绝小女孩,这样Chranos就可以永远和数学在一起了!

输入描述:

第一行为正整数N和M(2≤N,M≤50000)。

输出描述:

输出最大的不可以被制作出的总质量K.

示例1

输入

2 3

输出

1

解题思路:

已知条件一:小女孩的食材是无限的。
因此我们可以假设小女孩有x个番茄,y个鸡蛋(x,y可取任意值)

已知条件二:番茄和蛋的质量分别为N克和M克(N和M都是正整数且互素)

求:K

可列出求解公式:N*x+M*y=K

K值需要满足的条件:K能够取一个最大的值使得上面这个方程没有整数解(K值既不能为N或M的倍数,也不能为N+M的倍数)

方法一:画图找规律

在这里插入图片描述
以N=3,M=5为例
我们先从1开始,1,2,3…一个接一个列出数字,然后划掉不符合K值条件的数字,最后发现符合K值的最大数字为7。

但仅通过画图找规律,比较难发现K=N*M-N-M这样的结论。

所以本题推荐直接使用下面这个塞瓦维斯特定理

方法二:使用塞瓦维斯特定理

塞瓦维斯特定理
当a,b两数均大于1且a,b互为素数(gcd(a,b)等于1),满足方程ax+by=c无整数解的c的最大值为a*b-a-b。

所以本题中,我们要求解的K值就等于N*M-N-M

代码

#include <iostream>
#include <cstdio>
using namespace std;
int main(){
	long long N,M,K;
	scanf("%d %d",&N,&M);
	K=N*M-N-M;
	printf("%d",K);
	return 0;
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值