洛谷P1164 小A點菜題解(c 動態規劃dp)

2021-10-10 17:34:11 字數 755 閱讀 9723

這是一道基礎的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 由於...