洛谷P1164 小A點菜

2021-09-11 06:17:08 字數 1282 閱讀 2364

uim神犇拿到了uoira(鐳牌)後,立刻拉著**小a到了一家……餐館,很低端的那種。

uim指著牆上的價目表(太低階了沒有選單),說:「隨便點」。

不過uim由於買了一些輔(e)輔(ro)書,口袋裡只剩mm元(m≤10000)。

餐館雖低端,但是菜品種類不少,有nn種(n \le 100)(n≤100),第ii種賣a_iai​元(ai​≤1000)。由於是很低端的餐館,所以每種菜只有乙份。

小a奉行「不把錢吃光不罷休」,所以他點單一定剛好吧uim身上所有錢花完。他想知道有多少種點菜方法。

由於小a肚子太餓,所以最多只能等待11秒。

輸入格式:

第一行是兩個數字,表示n和m。

第二行起n個正數ai​(可以有相同的數字,每個數字均在1000以內)。

輸出格式:

乙個正整數,表示點菜方案數,保證答案的範圍在int之內。

輸入樣例#1:

4 4

1 1 2 2

輸出樣例#1:

3
這道題其實很簡單,只要把題目分析清楚了就很容易做。

當 j == a[i]時,也就是說j == 第i道菜的**  f[i][j] = f[i - 1][j] + 1;

當j > a[i]時,也就是說j > 第i道菜的**  f[i][j] = f[i - 1][j] + f[i - 1][j - a[i]];

當j < a[i]時,也就是說j < 第i道菜的**  f[i][j] = f[i - 1][j];

那麼接下來就非常愉快了,直接打下來即可

#includeusing namespace std;

int n, m;

int a[110];

int f[110][10010];

int main()

for (int i = 1; i <= n; i++)

else if (j > a[i])

else if (j < a[i])

} }cout << f[n][m];

return 0;

}

洛谷 P1164 小A點菜

不過uim由於買了一些輔 e 輔 ro 書,口袋裡只剩m元 m 10000 餐館雖低端,但是菜品種類不少,有n種 n 100 第i種賣ai元 ai 1000 由於是很低端的餐館,所以每種菜只有乙份。小a奉行 不把錢吃光不罷休 所以他點單一定剛好吧uim身上所有錢花完。他想知道有多少種點菜方法。由於小...

洛谷P1164 小A點菜

題目背景 uim神犇拿到了uoi的ra 鐳牌 後,立刻拉著 小a到了一家 餐館,很低端的那種。uim指著牆上的價目表 太低階了沒有選單 說 隨便點 題目描述 不過uim由於買了一些輔 e 輔 ro 書,口袋裡只剩m元 m 10000 餐館雖低端,但是菜品種類不少,有n種 n 100 第i種賣ai元 ...

洛谷 P1164 小A點菜

uim神犇拿到了uoi的ra 鐳牌 後,立刻拉著 小a到了一家 餐館,很低端的那種。uim指著牆上的價目表 太低階了沒有選單 說 隨便點 不過uim由於買了一些輔 e 輔 ro 書,口袋裡只剩m元 m 10000 餐館雖低端,但是菜品種類不少,有n種 n 100 第i種賣ai元 ai 1000 由於...