#3788. 练3-组合数区间更新-废弃
练3-组合数区间更新-废弃
题目描述
给定一个长度为 的数组,初始全为 0。现有 次操作,每次操作给出三个整数 ,要求对区间 内的每个位置 加上组合数 。请用差分数组思想高效处理所有操作,并输出最终数组。
1<=n<=1000, 1<=m<=10000 1<=k<=50
输入格式
• 第一行两个整数
• 接下来 行每行三个整数
输出格式
• 输出 个整数,空格隔开
样例输入
5 2
1 3 1
2 5 2
样例输出
2 9 14 15 21
解题思路
- 组合数性质:$$C(i + k, k) = C(i + k - 1, k) + C(i + k - 1, k - 1) $$
- 差分数组拆分:
• 用一阶差分维护组合数的递推增量
• 用二阶差分维护参数 的变化影响 - 前缀和优化:
// 处理组合数递推关系 diff1[i] += C(i + k, k) - C(i + k - 1, k); diff2[i] += C(i + k, k); // 用于合并递推项