问题 5540 --4、背包问题(backpack)

5540: 4、背包问题(backpack)

题目描述

编程达人聚会进入尾声,有来自柯桥和上虞的两位同学收拾背包准备回家,越城区的好友想要挽留他们,就说:“我还有个问题没解决呢!你们帮我解决了才能回家,不然就只能回我家啦! 给定n个物品和一个整数s,第i个物品的体积是a[i],定义f(l,r)表示在第l个物品到第r个物品中选出若干个物品的方案数,使得这些物品的体积之和为s。两种方案被视为不同的,当且仅当存在一个i,使得第i个物品只在其中一个方案中被选中。 你需要求出对于所有1<=l<=r<=n,f(l,r)的和。由于答案可能很大,你只需要输出答案对998244353取模的结果。

输入

第一行两个整数n和s,第二行n个整数a[i]。

输出

一行一个整数,表示答案。

样例输入输出

输入#1 复制
3 4
2 2 4
输出#1 复制
5
输入#2 复制
10 10
3 1 4 1 5 9 2 6 5 3
输出#2 复制
152

提示

对于20%的数据,n,s<=15; 对于50%的数据,n,s<=80; 对于80%的数据,n,s<=300; 对于所有数据,1<=n,s,a[i]<=3000。
序号 标题 作者 发表时间 费用 订购数 操作