问题 4258 --背包方案数

4258: 背包方案数

时间限制: 1 Sec  内存限制: 128 MB
提交: 10  解决: 9
[提交][状态][命题人:]

题目描述

给定n个大小为a[i]的物品与一个大小为m的背包,你需要回答q次询问,每次询问会给出k个标号为b[i]物品,你需要回答在这k个物品不能被选择的情况下,有多少种选择物品的方案,使得背包能够容纳被选择的物品。每个物品只有一件。两种方案不同当且仅当存在一个物品,在这两种方案中选择的情况不同。由于答案可能很大,你需要输出答案对1000000007取模的结果。不同的询问是互相独立的,也就是说,如果第一个询问b[i]中出现了1但第二个询问中没有,那么第二个询问中允许将第1个物品放入背包。

输入

第一行为n,m,q (n,m,q<=3000),第二行为n个整数a[i],表示每个物品的大小。第三行至q+2行为q个询问,每行的第一个数为k,后面跟有k个物品标号b[i]。所有询问的k之和不超过3000。

输出

每个询问输出一行,每行仅包含一个整数。表示在这k个物品不能被选择的情况下,使得背包能够容纳被选择的物品的方案数。
样例输入
Copy
5 1967 4
743 212 607 1132 1000 
1 2 
2 1 3 
3 3 4 5 
5 1 2 3 4 5
样例输出
Copy
10
6
4
1

提示

来源

DP 

[提交][状态]