【藍橋杯】 歷屆試題 買不到的數目
問題描述
小明開了一家糖果店。他別出心裁:把水果糖包成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組合...