A365 | 无聊的小蓝
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
小蓝在学习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=5,M=1$,连续正整数数组$A={1,2,3,4,5}$。
符合条件的拆分方案有3种:
$A_1={1,2,4},A2={3,5}$,其中$A_1$的和为$7$,$A_2$的和为$8$,和的差值等于$1$
$A_1={1,3,4},A2={2,5}$,其中$A_1$的和为$8$,$A_2$的和为$7$,和的差值等于$1$
$A_1={3,4},A2={1,2,5}$,其中$A_1$的和为$7$,$A_2$的和为$8$,和的差值等于$1$
我们一起帮助小蓝设计一下规则:
第一给出两个正整数$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=5,M=1$,连续正整数数组$A={1,2,3,4,5}$。
符合条件的拆分方案有3种:
$A_1={1,2,4},A2={3,5}$,其中$A_1$的和为$7$,$A_2$的和为$8$,和的差值等于$1$
$A_1={1,3,4},A2={2,5}$,其中$A_1$的和为$8$,$A_2$的和为$7$,和的差值等于$1$
$A_1={3,4},A2={1,2,5}$,其中$A_1$的和为$7$,$A_2$的和为$8$,和的差值等于$1$
输入格式
分别输入两个正整数$N(3 \le N \le 30)$和$M(0≤M≤500)$,两个正整数由一个空格隔开
输出格式
输出一个正整数,表示$1$到$N$(包含$1$和$N$)连续的正整数数组中有多少种方案,使得拆分的两个子数组部分和的差值等于$M$
输入输出样例
输入 #1
5 1
输出 #1
3
暂无题解
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?