方程的解

测试数据来自 system/3011

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

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


【问题描述】

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

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

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

【输入格式】

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

【输出格式】

  若存在满足条件的解,则输出方程不同的解的个数,这个数可能很大,你只需输出 \(mod\ 10^8+7\) 的结果。若没有解,则输出 None。

【输入输出样例1】

 Input

8 3
2
0
3

 Output

10

【样例解释】

  有10组满足约束条件的解,分别为:
  \(x_1=2,x_2=0,x_3=6\);即:2 + 0 + 6 = 8
  \(x_1=2,x_2=1,x_3=5\);即:2 + 1 + 5 = 8
  \(x_1=2,x_2=2,x_3=4\);即:2 + 2 + 4 = 8
  \(x_1=2,x_2=3,x_3=3\);即:2 + 3 + 3 = 8
  \(x_1=3,x_2=0,x_3=5\);即:3 + 0 + 5 = 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
  \(x_1=4,x_2=0,x_3=4\);即:4 + 0 + 4 = 8
  \(x_1=4,x_2=1,x_3=3\);即:4 + 1 + 3 = 8
  \(x_1=5,x_2=0,x_3=3\);即:5 + 0 + 3 = 8

【输入输出样例2】

 Input

10 4
3
-1
4
0

 Output

35

【数据说明】

  对于 \(40\%\) 的数据 \(1≤n≤10\),\(0≤m≤100\),\(|a_i|≤5\)
  对于 \(100\%\) 的数据 \(1≤m+n≤2000\),\(|a_i|≤30\)且 所有 \(|ai|\) 之和不大于 1000。

【来源】

  Mr.he

附加作业

未认领
状态
已结束
题目
4
开始时间
2024-12-15 00:00
截止时间
2025-02-08 23:59
可延期
24.0 小时