問題描述
小明幾乎每天早晨都會在一家包子鋪吃早餐。他發現這家包子鋪有n種蒸籠,其中第i種蒸籠恰好能放ai個包子。每種蒸籠都有非常多籠,可以認為是無限籠。
每當有顧客想買x個包子,賣包子的大叔就會迅速選出若干籠包子來,使得這若干籠中恰好一共有x個包子。比如一共有3種蒸籠,分別能放3、4和5個包子。當顧客想買11個包子時,大叔就會選2籠3個的再加1籠5個的(也可能選出1籠3個的再加2籠4個的)。
當然有時包子大叔無論如何也湊不出顧客想買的數量。比如一共有3種蒸籠,分別能放4、5和6個包子。而顧客想買7個包子時,大叔就湊不出來了。
小明想知道一共有多少種數目是包子大叔湊不出來的。
輸入格式
第一行包含乙個整數n。(1 <= n <= 100)
以下n行每行包含乙個整數ai。(1 <= ai <= 100)
輸出格式
乙個整數代表答案。如果湊不出的數目有無限多個,輸出inf。
樣例輸入24
5樣例輸出
6樣例輸入24
6樣例輸出
inf樣例說明
對於樣例1,湊不出的數目包括:1, 2, 3, 6, 7, 11。
對於樣例2,所有奇數都湊不出來,所以有無限多個。
如果所有數的最大公約數不為1則有無限多數目湊不出來,即輸出inf,否則就是個01揹包。
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include7 #include 8 #include 9
#define max_n 105
10#define max_m 10050
11#define ll long long
1213
using
namespace
std;
1415
intn;
16int
num[max_n];
17int
dp[max_m];
18int yue(int a,int
b)19
26return
a;27}28
intmain()
2938
if(ans>1)39
42else
4355}56
}57for(int i = 1; i < max_m; i++)
58if(dp[i]==0
)59 va++;
60 printf("
%d\n
",va);61}
62return0;
63 }
歷屆試題 包子湊數
小明幾乎每天早晨都會在一家包子鋪吃早餐。他發現這家包子鋪有n種蒸籠,其中第i種蒸籠恰好能放ai個包子。每種蒸籠都有非常多籠,可以認為是無限籠。每當有顧客想買x個包子,賣包子的大叔就會迅速選出若干籠包子來,使得這若干籠中恰好一共有x個包子。比如一共有3種蒸籠,分別能放3 4和5個包子。當顧客想買11個...
歷屆試題 包子湊數 真 湊數)
問題描述 小明幾乎每天早晨都會在一家包子鋪吃早餐。他發現這家包子鋪有n種蒸籠,其中第i種蒸籠恰好能放ai個包子。每種蒸籠都有非常多籠,可以認為是無限籠。每當有顧客想買x個包子,賣包子的大叔就會迅速選出若干籠包子來,使得這若干籠中恰好一共有x個包子。比如一共有3種蒸籠,分別能放3 4和5個包子。當顧客...
藍橋杯 包子湊數
時間限制 1 sec 記憶體限制 128 mb 提交 20 解決 12 難度 標籤 基礎 提交 狀態 小明幾乎每天早晨都會在一家包子鋪吃早餐。他發現這家包子鋪有n種蒸籠,其中第i種蒸籠恰好能放ai個包子。每種蒸籠都有非常多籠,可以認為是無限籠。每當有顧客想買x個包子,賣包子的大叔就會迅速選出若干籠包...