又一年拔河比賽

2022-07-11 14:24:09 字數 664 閱讀 4572

一些廢話:

怎麼說寫完前兩道題再寫這道題思路就順暢多了。但還是寫了半個小時。

依然是 dfs 。。。和上兩道題思路挺像的。

首先,根據

拔河比賽兩邊人數最多不能相差 1。

可得:如果 n 是偶數那麼兩組的人數就只能相等,如果 n 是奇數那麼我們只要選出人數為 (n-1)/2 的一組就行了。

所以要選的人數即為 n/2 。

要使兩隊體重最接近,可以根據體重總和求出另一組的體重,不斷更新答案。

注意多組資料要每次給變數賦初值。

最後放下**:

#includeusing

namespace

std;

int t,n,a[21],sum,ans =1e9,b;

void dfs(int s,int t,int p)//

傳遞到第幾位,目前的人數,目前的和

dfs(s + 1,t + 1,p +a[s]);

dfs(s + 1

,t,p);

return;}

intmain()

dfs(

1,0,0

); cout

<< ans <}

return0;

}

code vs拔河比賽

時間限制 1 s 空間限制 128000 kb 題目等級 gold 題解 檢視執行結果 乙個學校舉行拔河比賽,所有的人被分成了兩組,每個人必須 且只能夠 在其中的一組,要求兩個組的人數相差不能超過1,且兩個組內的所有人體重加起來盡可能地接近。輸入描述 input description 資料的第1行...

拔河比賽 DP

description 乙個學校舉行拔河比賽,所有的人被分成了兩組,每個人必須 且只能夠 在其中的一組,要求兩個組的人數相差不能超過1,且兩個組內的所有人體重加起來盡可能地接近。input 輸入資料的第1行是乙個n,表示參加拔河比賽的總人數,n 100,接下來的n行表示第1到第n個人的體重,每個人的...

DP 拔河比賽

乙個學校舉行拔河比賽,所有的人被分成了兩組,每個人必須 且只能夠 在其中的一組,要求兩個組的人數相差不能超過1,且兩個組內的所有人體重加起來盡可能地接近。input 輸入資料的第1行是乙個n,表示參加拔河比賽的總人數,n 100,接下來的n行表示第1到第n個人的體重,每個人的體重都是整數 1 wei...