#include<bits/stdc++.h>
using namespace std;
const int mod=10e6+7;
int n,m;
int q[110];
int dfs(int x,int k){
	if(x>n||k>m) return 0;
	if(k==m) {
		cout<<"?1?";
		return 1;
	}
	int ans=0;
	for(int i=0;i<=q[x];i++) ans=(ans+dfs(x+1,k+i))%mod;//i=0也要考虑(不选这一种)
	return ans;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>q[i];
	cout<<dfs(1,0);
	return 0;
}

1 comments

  • @ 2023-8-12 13:12:10

    你这个方法应该TLE了吧,搜索递归时间复杂度比较高,肯定会超时,过测试点应该是部分分,还有10^6是1e6不是10e6,也可以打成1000007 cout<<"?1?";这句啥意思没懂

    • 1

    Information

    ID
    505
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    4
    Tags
    # Submissions
    24
    Accepted
    16
    Uploaded By