思路
这道题是一道比较基础的深搜题
对于每一个队员,只有选1队和选2队两种状态。
搜索每一种情况取最小即可。
C o d e Code Code
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int w[100010];
int T,n,ans=2147483647;
void dfs(int x,int g1,int g2,int js1,int js2)
{
if(x>n)
{
if(abs(g1-g2)<=1)
{
if(ans>abs(js1-js2))
ans=abs(js1-js2);
}
return;
}
dfs(x+1,g1+1,g2,js1+w[x],js2);
dfs(x+1,g1,g2+1,js1,js2+w[x]);
}
int main()
{
cin>>T;
while(T--)
{
cin>>n;
for(int i=1; i<=n; i++)
scanf("%d",&w[i]);
dfs(1,0,0,0,0);
cout<<ans<<endl;
ans=2147483647;
}
return 0;
}