洛谷 P1164 小A點菜

傳送門

#include <iostream>
using namespace std;
#define MAXN 100+10
#define MAXM 10000+10
int a[MAXN] = { 0 };
int dp[MAXM] = { 0 };//dp[i]表示花光i元的方案數
int main(){
	int N, M;
	cin >> N >> M;
	for(int i = 1; i <= N; i++)
		cin >> a[i];
	dp[0] = 1;
	for (int i = 1; i <= N; i++)
		for (int j = M; j >= a[i]; j--)
			dp[j] = dp[j] + dp[j - a[i]];//不選+選
	cout << dp[M];
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章