[USACO2.2]集合 Subset Sums(改编) / 整数集合划分(文件IO)
题目描述
对于从 \(1\sim n\) 的连续整数集合,能划分成两个子集合,且保证每个集合的数字和是相等的。举个例子,如果 \(n=3\),对于 \(\{1,2,3\}\) 能划分成两个子集合,每个子集合的所有数字和是相等的:
\(\{3\}\) 和 \(\{1,2\}\) 是唯一一种分法(交换集合位置被认为是同一种划分方案,因此不会增加划分方案总数)
如果 \(n=7\),有四种方法能划分集合 \(\{1,2,3,4,5,6,7 \}\),每一种分法的子集合各数字和是相等的:
\(\{1,6,7\}\) 和 \(\{2,3,4,5\}\)
\(\{2,5,7\}\) 和 \(\{1,3,4,6\}\)
\(\{3,4,7\}\) 和 \(\{1,2,5,6\}\)
\(\{1,2,4,7\}\) 和 \(\{3,5,6\}\)
当然,不是全部的 \(n\) 都能进行这样的划分,如 \(n=5\) 时,就无法进行划分。
给出 \(n\),你的程序应该输出划分方案总数。
格式
输入格式
第一行为正整数 \(t(≤10)\),表示数据组数;接下来 \(t\) 行,每行一个正整数 \(n(≤ 300)\)。
输出格式
对于每组数据,输出划分方案总数对 \(10007\) 的余数。
样例1
样例输入1
1
7
样例输出1
4
来源
地址:芜湖市二十七中电脑班刷题课
作者:汪老师
模拟赛\(T3\)
文件IO
freopen("subset.in","r",stdin);
freopen("subset.out","w",stdout);
相关
在下列训练计划中: