拔河比赛
题目链接:拔河比赛
题目描述
解题思路
这是一个很简单的深搜。
依题意得每组最多 n 2 \frac{n}{2} 2n 个人。
对于每个人无非有选和不选两种情况。
累计选的总和,用全部人的总和去减就得出了另一对的重量。
取绝对值即可。
code
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int T;
int n,ans,st;
int a[30];
void dfs(int x,int y,int s)
{
if(y>=n/2)
{
ans=min(ans,abs(st-2*s));
return;
}
if(x>n)
return;
dfs(x+1,y,s);
dfs(x+1,y+1,s+a[x]);
}
int main()
{
cin>>T;
while(T--)
{
cin>>n;
st=0;
for(int i=1;i<=n;i++)
scanf("%d",&a[i]),st+=a[i];
ans=0x3f3f3f3f;
dfs(1,0,0);
cout<<ans<<endl;
}
}