#1155. 小A的购物清单
小A的购物清单
题目描述
小A准备购买一些礼品,奖励模拟赛中表现优秀的同学。
他选定了 种礼物,每种礼物都有精装版和普通版。对于第 种礼物,若选择精装版,可以购买 至 份;若选择普通版,可以购买 至 份。
每种礼物都必须购买,并且只能选择其中一种版本,不能同时购买两种版本。小A要求至少有 种礼物选择精装版。
如果两种购买方案中,至少有一种礼物的版本或购买数量不同,就认为这两种方案不同。
小A会依次提出 次修改,每次用三个整数 表示:将第 种礼物的精装版数量上限改为 ,普通版数量上限改为 。修改会保留,并影响之后的所有修改与询问。
请在每次修改后,求出满足要求的购买方案数。答案对 取模。
输入格式
从文件 buy.in 中读入数据。
第一行包含两个整数 ,分别表示礼物种数和至少需要选择精装版的礼物种数。
第二行包含 个整数 ,表示初始的精装版数量上限。
第三行包含 个整数 ,表示初始的普通版数量上限。
第四行包含一个整数 ,表示修改次数。
接下来 行,每行包含三个整数 ,表示一次修改。
输出格式
输出到文件 buy.out 中。
输出 行,每行一个整数,表示对应修改之后的方案数对 取模的结果。
样例 1 输入
2 2
1 2
2 3
2
1 2 2
2 2 2
样例 1 输出
4
4
样例 1 解释
至少有两种礼物选择精装版,而总共只有两种礼物,因此两种礼物都必须选择精装版。
第一次修改后,精装版的数量上限为 ,共有 种方案。第二次修改后,这两个上限仍然为 ,因此答案仍为 。
样例 2 输入
4 2
1 2 3 4
1 2 3 4
2
4 1 1
3 4 4
样例 2 输出
66
88
样例 3
见选手目录下的 buy/buy3.in 与 buy/buy3.ans。
该样例满足第 个测试点的限制,其中 。
样例 4
见选手目录下的 buy/buy4.in 与 buy/buy4.ans。
该样例满足第 个测试点的限制,其中 。
样例 5
见选手目录下的 buy/buy5.in 与 buy/buy5.ans。
该样例满足第 个测试点的限制,其中 。初始数量上限均为 ,修改后的数量上限不要求为 。
样例 6
见选手目录下的 buy/buy6.in 与 buy/buy6.ans。
该样例满足第 个测试点的限制,其中 。
数据范围
对于所有测试数据,保证:
- ;
- ;
- ;
- 。
允许 ,此时没有满足要求的购买方案。
共有 个测试点,每个测试点 分。各测试点还满足下表中的限制。
| 测试点编号 | 特殊限制 |
|---|---|
| 初始 ,且 | |
| 无特殊限制 |
第 个测试点只保证初始数组全为 ,唯一一次修改的 可以是通用范围内的任意值。
统计
相关
在下列比赛中: