Luogu P3951 小凯的疑惑【数论】

在这里插入图片描述

解题思路

经过朋友指点发现是数论。
首先我们设一个 k k k,
我们让 k = m a + n b k=ma+nb k=ma+nb m , n m,n m,n 为参数, m ≥ 0 m≥0 m0
n ≥ 0 n≥0 n0, k k k 一定能够被表示。那么我们就考虑 n < 0 n<0 n<0 的情况
n = − 1 n=-1 n=1,得 k = m a − b k=ma-b k=mab,当 m ≥ b m≥b mb 时,这个数也可以被表示。
所以我们要让 m < b m<b m<b,为了让小凯不能准确支付的物品价值最大,
显然让 m = b − 1 m=b-1 m=b1是最优的。
那我们将结论带进 m a − b ma-b mab,可得 ( b − 1 ) a − b (b-1)a-b (b1)ab;
化简得 a b − a − b ab-a-b abab

代码

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
long long a,b;
int main()
{
    
    
    cin>>a>>b;
    cout<<a*b-a-b;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/Jackma_mayichao/article/details/108126581