dfs秒了

梁乃元  •  1个月前


题目传送门

1 输入

太简单了,所以不讲

	cin >> n ;
	for ( int i = 1 ; i <= n ; i ++ )
	{
		cin >> a [i] ;
	}

2 处理

思路:

∵ 选出一半的人

∴ 若1队人数\geq总人数的一半,则当前人只能进2队,反之亦然

dfs函数:

	if ( cur > n )
	{
		maxs = max ( maxs , min ( t1 , t2 ) ) ;
		return ;
	}
	if ( c1 < n / 2 )
	{
		dfs ( cur + 1 , t1 + a [cur] , t2 , c1 + 1 , c2 ) ;
	}
	if ( c2 < n / 2 )
	{
		dfs ( cur + 1 , t1 , t2 + a [cur] , c1 , c2 + 1 ) ;
	}
	return ;

AC纪录放上

END

抄代码可耻,抄袭题解更可耻!


评论: