[塞瓦维斯特定理] 算法题:得不到的爱情

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

思路:
这道题需要理解下题目,我们将题目的数据对应方程式 Nx + My = K ,题目说小女孩的食材是无限的就是指x,y任意取值;N,M两个质量就相当于参数(对应题目说食材必须用完),K就是制作出来的菜品质量。
而题目问的意思就是K能够取一个最大的值使得上面这个方程(N>1,M>1;N,M互素)没有整数解,那么这个K是多少?

涉及知识点:
[塞瓦维斯特定理]
这个定理告诉我们,对于ax+by=c式子,当a,b均大于1且a,b互为素数(最大公约数==1),满足方程无整数解的c的最大值为a*b-a-b。
在这里了解到的这个定理:题目:小凯的疑惑

代码(AC)

#include <iostream>
using namespace std;
int main(){
    //用int不行哦
    long N,M;
    cin>>N>>M;
    cout<<N*M-N-M;
    return 0;
}
  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值