#3788. 练3-组合数区间更新-废弃

练3-组合数区间更新-废弃

题目描述
给定一个长度为 nn 的数组,初始全为 0。现有 mm 次操作,每次操作给出三个整数 l,r,kl, r, k,要求对区间 [l,r][l, r] 内的每个位置 ii 加上组合数 C(i+k,k)C(i + k, k)。请用差分数组思想高效处理所有操作,并输出最终数组。

1<=n<=1000, 1<=m<=10000 1<=k<=50

输入格式
• 第一行两个整数 n,mn, m
• 接下来 mm 行每行三个整数 l,r,kl, r, k

输出格式
• 输出 nn 个整数,空格隔开

样例输入

5 2
1 3 1
2 5 2

样例输出

2 9 14 15 21

解题思路

  1. 组合数性质:$$C(i + k, k) = C(i + k - 1, k) + C(i + k - 1, k - 1) $$
  2. 差分数组拆分
    • 用一阶差分维护组合数的递推增量
    • 用二阶差分维护参数 kk 的变化影响
  3. 前缀和优化
    // 处理组合数递推关系
    diff1[i] += C(i + k, k) - C(i + k - 1, k);
    diff2[i] += C(i + k, k);  // 用于合并递推项