1. 程式人生 > 其它 >YbtOJ 深度搜索課堂過關 例1 拔河比賽【深度優先搜尋】

YbtOJ 深度搜索課堂過關 例1 拔河比賽【深度優先搜尋】

技術標籤:YbtOJ專項練習題dfs題解dfsYbtOJ

在這裡插入圖片描述


思路

這道題是一道比較基礎的深搜題
對於每一個隊員,只有選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; }