這是一道基礎的dp題
我們用 f[i][j] 表示前i個菜品用光j元的的方案總數
那麼可以推出:
(1)if(j==第i道菜的**)f[i][j]=f[i-1][j]+1;
(2)if(j>第i道菜的**) f[i][j]=f[i-1][j]+f[i-1][j-第i道菜的**];
(3)if(j《第i道菜的**) f[i][j]=f[i-1][j];
這三個方案都是在吃與不吃第i道菜之間抉擇。
方案(1)、(2)表示若錢充足,辦法總數就等於吃這道菜(i)的辦法與不吃這道菜(i-1)的辦法數之和
方案(3)表示若錢不充足,辦法總數就只能承襲吃前i-1道菜的辦法總數
**如下:
#include
using
namespace std;
intmain()
int q[n]
[m]=
;memset
(q,0
,sizeof
(q))
;for
(int i=
1;i<=n;i++)}
cout<
[m];
}
洛谷 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 由於...