拓排+各種判……
program p1094;
type
map3=record
indegree:array['a'..'z'] of longint;
map:array['a'..'z',1..26] of char;
outdegree:array['a'..'z'] of longint;
end;
var n,m,i,j,num,value,topvalue:longint;
s:string;
topout:string;
map,map2:map3;
mark:array['a'..'z'] of boolean;
tag:boolean;
function topsort:longint;
var j,k,h,s,zero:longint;
flag:boolean;
i:char;
begin
topsort:=3;
topout:='';
flag:=false;
h:=1;
s:=0;
zero:=0;
for i:='a' to 'z' do if mark[i] then if map2.indegree[i]=0 then begin inc(zero); topout:=topout+i; end;
if zero=0 then exit(2);
s:=length(topout);
while (h<=s) do
begin
if (hnum then exit(2);
end;
h:=s+1;
s:=length(topout);
end;
if s0) do
begin
topout:='';
fillchar(map,sizeof(map),0);
fillchar(mark,sizeof(mark),false);
num:=0;
value:=3;
for i:=1 to m do
begin
readln(s);
if (ord('a')-1+n
POJ 1094 拓撲排序
文章大意是將n個字母排序 n 26 最終必須排成鍊錶式的輸出 一旦確定或者出現環,記錄當前步數,後續輸入無視 加個拓撲排序判斷圖的總結 1 如果輸入的有向圖中的點,不存在入度為0的點,則存在迴路,反過來則不成立 2 如果入隊的點的個數小於輸入的點的個數,則肯定存在迴路 3 如果存在的入度為零的點大於...
拓撲排序 poj1094
此題題目有點小問題,那也是很多人ac不了的原因 問題是,當給定的前k項條件能夠確定出大小順序時,即便k項之後出現了矛盾條件,輸出也應該是sorted sequence determined after k relations 後面再輸出排序好的序列!include include using nam...
poj 1094 拓撲排序
我居然要講課了!我這麼水,嘖嘖。好好準備呀。要不就死定了。這道題,典型的拓撲排序,n個字母,操作m次,然後看看對不對。看了好久才懂,我真是水呀。題解 每輸入一組條件,就進行一次拓撲排序,看看符不符合,在topsort函式中,先迴圈n次,目的把所有入度為零的點都找到並操作,在每次迴圈裡,先看看有幾個入...