部落卫队pascal解题程序
生活随笔
收集整理的這篇文章主要介紹了
部落卫队pascal解题程序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
type
jh=set of 0..100;//集合
var
n,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是總人數
var
i: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.
jh=set of 0..100;//集合
var
n,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是總人數
var
i: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.
轉載于:https://www.cnblogs.com/YYC-0304/p/9500255.html
總結
以上是生活随笔為你收集整理的部落卫队pascal解题程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 车站解题程序
- 下一篇: 最大正数pascal程序