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

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;
}

猜你喜欢

转载自blog.csdn.net/tom_jjJack/article/details/125388098