藍橋杯 歷屆試題 買不到的數目 DP 動態規劃

2021-10-21 05:10:49 字數 1116 閱讀 5992

【藍橋杯】 歷屆試題 買不到的數目

問題描述

小明開了一家糖果店。他別出心裁:把水果糖包成4顆一包和7顆一包的兩種。糖果不能拆包賣。

小朋友來買糖的時候,他就用這兩種包裝來組合。當然有些糖果數目是無法組合出來的,比如要買 10 顆糖。

你可以用計算機測試一下,在這種包裝情況下,最大不能買到的數量是17。大於17的任何數字都可以用4和7組合出來。

本題的要求就是在已知兩個包裝的數量時,求最大不能組合出的數字。

輸入格式

兩個正整數,表示每種包裝中糖的顆數(都不多於1000)

輸出格式

乙個正整數,表示最大不能買到的糖數

樣例輸入1

4 7樣例輸出1

17樣例輸入2

3 5樣例輸出2

7【題解

非常簡單的dp問題。

100分**:

#include

#include

using

namespace std;

int dp[

1000005];

intmain()

dp[0]

=dp[a]

=dp[b]=1

;for

(int i=a;i<

1000001

;i++

) dp[i]

+=dp[i-a]

;for

(int i=b;i<

1000001

;i++

) dp[i]

+=dp[i-b]

;int ans=0;

for(

int i=

0;i<

1000001

;i++)if

(dp[i]==0

) ans=i;

cout

}

當然我們還可以直接得到結果,能夠證明答案是a*b-a-b:

#include

#include

using

namespace std;

intmain()

藍橋杯 歷屆試題 買不到的數目

歷屆試題 買不到的數目 時間限制 1.0s 記憶體限制 256.0mb 問題描述 小明開了一家糖果店。他別出心裁 把水果糖包成4顆一包和7顆一包的兩種。糖果不能拆包賣。小朋友來買糖的時候,他就用這兩種包裝來組合。當然有些糖果數目是無法組合出來的,比如要買 10 顆糖。你可以用計算機測試一下,在這種包...

藍橋杯 歷屆試題 買不到的數目

問題描述 小明開了一家糖果店。他別出心裁 把水果糖包成4顆一包和7顆一包的兩種。糖果不能拆包賣。小朋友來買糖的時候,他就用這兩種包裝來組合。當然有些糖果數目是無法組合出來的,比如要買 10 顆糖。你可以用計算機測試一下,在這種包裝情況下,最大不能買到的數量是17。大於17的任何數字都可以用4和7組合...

歷屆試題 買不到的數目 (藍橋杯)

問題描述 小明開了一家糖果店。他別出心裁 把水果糖包成4顆一包和7顆一包的兩種。糖果不能拆包賣。小朋友來買糖的時候,他就用這兩種包裝來組合。當然有些糖果數目是無法組合出來的,比如要買 10 顆糖。你可以用計算機測試一下,在這種包裝情況下,最大不能買到的數量是17。大於17的任何數字都可以用4和7組合...