Acwing—1205.买不到的数目

  • Post author:
  • Post category:其他




1.题目

小明开了一家糖果店。

他别出心裁:把水果糖包成4颗一包和7颗一包的两种。

糖果不能拆包卖。

小朋友来买糖的时候,他就用这两种包装来组合。

当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。

你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。

大于17的任何数字都可以用4和7组合出来。

本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。


输入格式


两个正整数 n,m,表示每种包装中糖的颗数。


输出格式


一个正整数,表示最大不能买到的糖数。


数据范围





2

n

,

m

1000

,保证数据一定有解。

2≤n,m≤1000, 保证数据一定有解。






2













n


,




m













1000


,保证数据一定有解。





输入样例:

4 7


输出样例:

17



2.基本思想


引理





给定

a

b

,若

d

=

g

c

d

(

a

,

b

)

>

1

,

则一定不能凑出最大数

给定a,b,若 d=gcd(a,b)>1,则一定不能凑出最大数






给定


a





b


,若


d




=








g


c


d


(


a


,




b


)




>








1


,




则一定不能凑出最大数





结论





如果

a

,

b

均是正整数且互质,那么由

a

x

+

b

y

,

x

0

,

y

0

不能凑出的最大数是

:

(

a

1

)

(

b

1

)

1

如果 a,b 均是正整数且互质,那么由 ax+by,x≥0,y≥0 不能凑出的最大数是: (a−1)(b−1)−1。






如果


a


,




b


均是正整数且互质,那么由


a


x




+








b


y


,




x













0


,




y













0


不能凑出的最大数是




:








(


a













1


)


(


b













1


)













1







Tip:




1.

g

c

d

:

最大公因数(

G

r

e

a

t

e

s

t

C

o

m

m

o

n

D

i

v

i

s

o

r

,

G

C

D

),指两个或多个整数共有约数中最大的一个。

1. gcd:最大公因数(Greatest Common Divisor, GCD),指 两个或多个整数共有约数中最大的一个。






1.


g


c


d




:








最大公因数(


G


re


a


t


es


tC


o


mm


o


n


D


i


v


i


sor


,




GC


D


),指两个或多个整数共有约数中最大的一个。







https://blog.csdn.net/qq_51251599/article/details/127493957


2.互质数即两个或多个整数的公因数只有1的非零自然数。公因数只有1的两个非零自然数,叫做互质数。



3.代码实现

import java.util.Scanner;

public class _1205买不到的数目 {
    static Scanner sc = new Scanner(System.in);

    public static void main(String args[]) {
        int n = sc.nextInt();
        int m = sc.nextInt();
        System.out.println((n - 1) * (m - 1) - 1);//裴蜀定理
    }
}



版权声明:本文为qq_51251599原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。