7 6 部落衛隊問題 20分

2022-07-11 14:54:11 字數 1269 閱讀 8123

原始部落byteland中的居民們為了爭搶有限的資源,經常發生衝突。幾乎每個居民都有它的仇敵。部落酋長為了組織一支保衛部落的隊伍,希望從部落的居民中選出最多的居民入伍,並保證隊伍中任何兩個人都不是仇敵。

第一行兩個正整數n和m,表示byteland部落中有n個居民,居民間有m個仇敵關係, 0輸出部落衛隊最佳組建方案中包含的居民人數。之後逐個輸出衛隊組成xi, 1<=i<=n, xi=0表示居民i不在衛隊中,xi=1表示居民i在衛隊中。

7 10

1 21 4

2 42 3

2 52 6

3 53 6

4 55 6

3

1 0 1 0 0 0 1

#include using

namespace

std;

int n; //

有 n 個居民

int m; //

有 m 個仇敵關係

bool hate[300][300]=; //

a[i][j] 表示 居民 i 對 居民 j 是否 仇恨 , 1表示有

bool inteam[300]=; //

居民i是否在衛隊中 inteam[i]=1 表示在衛隊中,初始化為0

bool bestrecord[300]=;

int bestcount = 0

; int getcount( bool inteam ) //

遍歷 inteam 陣列 ,計算該方案下 衛隊的人數

return

count;

}void record() //

把 最好的方案記錄下來

bool canin(int dep) //

第 dep 個村民能否進入衛隊 (和已經進入衛隊的人有沒有衝突)

void search(int dep) //

確定 第 dep 個村民要不要進入衛隊

return

; }

//第 i 個村民進入衛隊

if(canin(dep))

//第i個村民不進入衛隊

search(dep+1

);

return

; }

intmain()

search(

1); //

從居民1開始

cout

for(int i=1;i<=n;i++)

return0;

}

luogu1692 部落衛隊

時空限制 1000ms 128mb 原始部落byteland中的居民們為了爭奪有限的資源,經常發生衝突。幾乎每個居民都有他的仇敵。部落酋長為了組織一支保衛部落的隊伍,希望從部落的居民中選出最多的居民入伍,並保證隊伍中任何2 個人都不是仇敵。給定byteland部落中居民間的仇敵關係,程式設計計算組成...

7 5 部落 20分 (沒用set)

在乙個社群裡,每個人都有自己的小圈子,還可能同時屬於很多不同的朋友圈。我們認為朋友的朋友都算在乙個部落裡,於是要請你統計一下,在乙個給定社群中,到底有多少個互不相交的部落?並且檢查任意兩個人是否屬於同乙個部落。輸入在第一行給出乙個正整數n 104 是已知小圈子的個數。隨後n行,每行按下列格式給出乙個...

洛谷 P1692 部落衛隊

p1692 部落衛隊 洛谷 題目描述 原始部落byteland中的居民們為了爭奪有限的資源,經常發生衝突。幾乎每個居民都有他的仇敵。部落酋長為了組織一支保衛部落的隊伍,希望從部落的居民中選出最多的居民入伍,並保證隊伍中任何2 個人都不是仇敵。給定byteland部落中居民間的仇敵關係,程式設計計算組...