This commit is contained in:
2025-01-14 20:19:17 +08:00
commit f606210553
17 changed files with 426 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
#include <iostream>
using namespace std;
int count(int step, int l, int r, int a[])
{
if (step == 0)
{
if (l + a[0] == r || r + a[0] == l)
{
return 1;
}
return 0;
}
return count(step - 1, l + a[step], r, a) + count(step - 1, l, r + a[step], a);
}
int main()
{
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int n;
cin >> n;
int a[n];
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
cout << count(n - 1, 0, 0, a) / 2;
}
+29
View File
@@ -0,0 +1,29 @@
对抗赛(compete)
内存限制:128 MB
时间限制:5.000 S
评测方式:文本比较
命题人:jixun2019
提交:279
解决:182
题目描述
程序设计对抗赛设有 N(0<N≤50 的整数)个价值互不相同的奖品,每个奖品的价值分 别为 S1,S2,S3……Sn(均为不超过 100 的正整数)。现将它们分给甲乙两队,为了使得甲 乙两队得到相同价值的奖品,必须将这 N 个奖品分成总价值相等的两组。
编程要求:对给定 N 及 N 个奖品的价值,求出将这 N 个奖品分成价值相等的两组,共有 多少种分法?
例如:N = 5,S1S2,S3……Sn 分别为 13589
则可分为{139}与{58}
仅有 1 种分法;
例如:N = 7,S1S2,S3……Sn 分别为 123456,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}
有 4 种分法。
输入
输入文件中包含 N 及 S1,S2,S3……Sn。(每两个相邻的数据之间有一个空格隔开)。
输出
输出文件包含一个整数,表示多少种分法的答案,数据若无解,则输出 0。
样例输入 复制
7
1 2 3 4 5 6 7
样例输出 复制
4