POJ 1094 拓撲排序)

2021-06-08 12:42:47 字數 1135 閱讀 1552

拓排+各種判……

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次,目的把所有入度為零的點都找到並操作,在每次迴圈裡,先看看有幾個入...