方程的解[2]

测试数据来自 system/3055

作业已超过截止时间,您无法递交本题目。

时间限制:1秒  内存限制:256M


【问题描述】

  给定方程:\(x_1+x_2+...+x_n=m\),其中:\(x_1,x_2,…,x_n\) 为整数,\(m\) 为正整数。

  再给定关于 \(x_i\) 的约束条件,即要求:\(0 \le x_i \le a_i\)。

  请你编程计算在满足约束条件的情况下,方程的解的个数。

【输入格式】

  第一行包含两个整数:\(m,n\)。它们的意义如题目描述。
  接下来有 \(n\) 行,每行包含一个整数:\(a_i\),表示 \(0 \le x_i \le a_i\)。

【输出格式】

  若存在满足条件的解,则输出方程不同的解的个数 \(mod\ 10^9+7\) 的结果。若没有解,则输出 None。

【输入输出样例1】

 Input

8 3
3
2
4

 Output

3

【样例1解释】

  有3组满足约束条件的解,分别为:
  \(x_1=2,x_2=2,x_3=4\);即:2 + 2 + 4 = 8
  \(x_1=3,x_2=1,x_3=4\);即:3 + 1 + 4 = 8
  \(x_1=3,x_2=2,x_3=3\);即:3 + 2 + 3 = 8

【输入输出样例2】

 Input

10 4
3
2
1
3

 Output

None

【数据说明】

  对于 \(40\%\) 的数据 \(1≤n≤50\),\(0≤m≤1000\)。
  对于 \(100\%\) 的数据 \(1≤n≤100\),\(0≤m≤10000\),\(0≤a_i≤m\)。

【来源】

  Mr.he

序列最优分组练习题

未认领
状态
已结束
题目
10
开始时间
2025-03-03 00:00
截止时间
2025-04-05 23:59
可延期
24.0 小时