天天看点

洛谷—P1164 小A点菜(0/1背包问题)

洛谷—P1164 小A点菜(0/1背包问题)
#include<iostream>
using namespace std;
int n, m;
int price[1010];
int f[110][10010];
int main()
{
	cin >> n >> m;
	for (int i = 1; i <= n; ++i)
		cin >> price[i];
	for(int i=1;i<=n;++i)
		for (int j = 1; j <= m; ++j)
		{
			if (j < price[i])
				f[i][j] = f[i - 1][j];
			else if (j == price[i])
				f[i][j] = f[i - 1][j] + 1;
			else
				f[i][j] = f[i - 1][j - price[i]] + f[i - 1][j];
		}
	cout << f[n][m];
	//while (1);
	return 0;
}