60pts求条!
查看原帖
60pts求条!
681558
Weizhuo_Zhao楼主2024/10/22 17:38
#include <bits/stdc++.h>
#define MAX_N 105
#define mo 1000007
using namespace std;
int n, m, a[MAX_N];
int ans, r[MAX_N][MAX_N];

int dfs(int k, int s) {
	if (s == m)
		return 1;
	if (k > n || s > m)
		return 0;
	if (r[k][s])
		return r[k][s];
	int ans = 0;
	for (int i = 0; i <= a[k]; i++)
		ans = (ans + dfs(k + 1, s + i)) % mo;
	return r[k][s] = ans;
}

int main() {
	cin >> n >> m;
	for (int i = 1; i <= n; i++)
		cin >> a[i];
	cout << dfs(1, 0);
	return 0;
}
2024/10/22 17:38
加载中...