[蓝桥杯省赛 2021 中级组] 求和比较
时间限制:1 S
内存限制:64 MB
【题目描述】
小蓝在学习 C++ 数组时,突发奇想想知道如果将一个连续的正整数数组拆分成两个子数组,然后对拆分出的两个子数组求和并做差,且差值正好等于一个固定的正整数,像这样同一连续的正整数数组拆分方案有多少种。
我们一起帮助小蓝设计一下规则:
给出两个正整数 \(N\) 和 \(M\) 。
从 \(1\) 到 \(N\) 组成一个连续正整数数组 \(A\) (\(A = \{1 , 2 , 3 , 4 , … , N\}\)) 。
将数组 \(A\) 拆分成两个子数组 \(A_1\) , \(A_2\)(1. 两个子数组中不能出现相同的数;2. 子数组中的数字可以是连续的也可以是不连续的;3. 拆分出的两个子数组的元素个数可以不同,但总量等于 \(A\) 数组元素的个数)。
对 \(A_1\) , \(A_2\) 两个子数组分别求和。
对 \(A_1\) , \(A_2\) 两个子数组的和做差(大的数字减去小的数字)。
如果差值正好等于固定值 \(M\) ,则判定此拆分方案成立。
【输入格式】
分别输入两个正整数 \(N\) (\(3 \lt N \lt 30\)) 和 \(M\) (\(0 \le M \le 500\)) ,两个正整数由一个空格隔开。
【输出格式】
输出一个正整数,表示 \(1\) 到 \(N\)(包含 \(1\) 和 \(N\))连续的正整数数组中有多少种方案,使得拆分的两个子数组部分和的差值等于 \(M\) 。
样例 1
【样例 1 输入】
5 1
【样例 1 输出】
3
【样例 1 解释】
\(N = 5\) , \(M = 1\) ,连续正整数数组 \(A = \{1 , 2 , 3 , 4 , 5\}\) 。符合条件的拆分方案有 \(3\) 种:
\(A_1 = \{1 , 2 , 4\}\) , \(A_2 = \{3 , 5\}\) ,其中 \(A_1\) 的和为 \(7\) ,\(A_2\) 的和为 \(8\) ,和的差值等于 \(1\) 。
\(A_1 = \{1 , 3 , 4\}\) , \(A_2 = \{2 , 5\}\) ,其中 \(A_1\) 的和为 \(8\) ,\(A_2\) 的和为 \(7\) ,和的差值等于 \(1\) 。
\(A_1 = \{3 , 4\}\) , \(A_2 = \{1 , 2 , 5\}\) ,其中 \(A_1\) 的和为 \(7\) ,\(A_2\) 的和为 \(8\) ,和的差值等于 \(1\) 。
信息
- ID
- 1010
- 难度
- 3
- 分类
- (无)
- 标签
- 递交数
- 39
- 已通过
- 3
- 通过率
- 8%
- 上传者