传统题 1000ms 256MiB

求和比较

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

小蓝在学习 C++ 数组时,突发奇想想知道如果将一个连续的正整数数组拆分成两个子数组,然后对拆分出的两个子数组求和并做差,且差值正好等于一个固定的正整数,像这样同一连续的正整数数组拆分方案有多少种。

我们一起帮助小蓝设计一下规则:

  1. 第一给出两个正整数 NNMM
  2. 第二从 11NN 组成一个连续正整数数组 AA={1,2,3,4N}A(A=\{1,2,3,4……N\})
  3. 第三将数组 AA 拆分成两个子数组 A1A_1A2A_2
    • 两个子数组中不能出现相同的数;
    • 子数组中的数字可以是连续的也可以是不连续的;
    • 拆分出的两组子数组的元素个数可以不同,但总数量等于 AA 数组元素个数。
  4. 第四对 A1A_1A2A_2 两个子数组分别求和;
  5. 第五对 A1A_1A2A_2 两个子数组的和做差(大的数字减去小的数字);
  6. 第六如果差值正好等于固定值 MM,则判定此拆分方案成立。

如:N=5M=1N = 5,M = 1,连续正整数数组 A=1,2,3,4,5A = {1, 2, 3, 4, 5}

符合条件的拆分方案有 3 种:

  • A1=1,2,4,A2=3,5A_1 = {1, 2, 4}, A_2={3, 5}, 其中 A1A_1 的和为 7,A2A_2 的和为 8,和的差值等于 1。
  • A1=1,3,4,A2=2,5A_1 = {1, 3, 4}, A_2 = {2, 5}, 其中 A1A_1 的和为 8,A2A_2 的和为 7,和的差值等于 1。
  • A1=3,4,A2=1,2,5A_1 = {3, 4}, A_2 = {1, 2, 5}, 其中 A1A_1 的和为 7,A2A_2 的和为 8,和的差值等于 1。

输入格式

输入两个正整数 NNM3<N<300M500M(3<N<30,0 \leq M\leq 500)

输出格式

输出拆分方案数。

5 1
3

第十二届蓝桥杯大赛软件赛省赛青少年组

未参加
状态
已结束
规则
OI
题目
6
开始于
2021-4-24 14:00
结束于
2021-4-24 16:30
持续时间
2.5 小时
主持人
参赛人数
0