部落衛隊pascal解題程式

2021-07-25 03:52:12 字數 913 閱讀 8973

type

jh=set of 0..100;//集合

varn,m,i,u,v,tj:longint;

w:jh;

a,f:array[0..100]of boolean;

s:array[1..100]of jh;

procedure search(dep:longint;w:jh;t:longint);//dep是第幾個人,w是總人數

vari:longint;

begin

if t>tj then

begin

tj:=t;

a:=f;

end;//a陣列記錄人數最多時的每個人的存在情況

for i:=dep+1 to n do

begin

if not(i in w) then//w存放被選人的仇敵,第i人不是仇敵才行

begin

f[i]:=true;//將i選進去

search(i,w+s[i],t+1);//搜尋

f[i]:=false;//回溯

end;

end;

end;

begin

readln(n,m);//輸入

w:=;//賦值

fillchar(f,sizeof(f),false);//賦值

for i:=1 to m do

begin

readln(u,v);

s[u]:=s[u]+[v];

end;

tj:=0;//最多人數

search(0,w,0);//搜尋

writeln(tj);

for i:=1 to n do//輸出

if a[i]=true then write('1 ') else write('0 ');

end.

部落衛隊 2281

部落衛隊 time limit 10000ms memory limit 65536k total submit 244 accepted 166 case time limit 1000ms description 原始部落byteland 中的居民們為了爭奪有限的資源,經常發生衝突。幾乎每個居民...

C 部落衛隊

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

騎士旅行pascal解題程式

這題我是用廣度優先搜尋的方法來做的 我先找出下乙個能走的點,再把它放進佇列裡,如果到了目標點,就把tail放進best,tail等於0,最後輸出。做這題的時候,用最大資料時,一直棧溢位,原來是陣列不夠大,把50 50算成250了,搞得我除錯了超久。const dx array 1.8 of inte...