1 条题解

  • 1
    @ 2022-10-2 18:04:37
    #include<bits/stdc++.h>
    using namespace std;
    const int maxn = 105, mod = 1000007;
    int n, m, f[maxn], sum[maxn], a[maxn];
    int main(){
        cin>>n>>m;
        for(int i=1; i<=n; i++) cin>>a[i];
    	f[0] = 1;
        for(int i=0; i<=m; i++) sum[i] = 1;
        for(int i=1; i<=n; i++){
        	for(int j=m; j>=1; j--){
        		int t = j - min(a[i], j) - 1;
        		if(t < 0) f[j] = (f[j] + sum[j-1])%mod;
        		else f[j] = (f[j] + sum[j-1] - sum[t] + mod)%mod;
    		}
    		for(int j=1; j<=m; j++) sum[j] = (sum[j-1] + f[j])%mod;
    	}
        cout<<f[m]<<endl;
        return 0;
    }
    
    • 1

    信息

    ID
    78
    时间
    1000ms
    内存
    125MiB
    难度
    3
    标签
    递交数
    13
    已通过
    11
    上传者