1 条题解
-
0
自动搬运
来自洛谷,原作者为

kkksc03
洛谷吉祥物 DA✩ZE搬运于
2025-08-24 21:32:43,当前版本为作者最后更新于2013-12-21 22:38:25,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
模型基础:判断有向图是否有环(回路)
[算法分析]
搜索 <=70 分
拓扑 100分
显然:出图结点 < 图上结点 && 余下结点入度 > 零 即可判断为有环(回路)
时间复杂度:O(n^2)
[标程]
Program usqwedf_bxdqdlyy; var n,m,i,x,y,k,h,find,t,base:longint; g,in_to,p:array[0..1001] of longint; map:array[0..1001,0..1001] of longint; begin readln(n,m,base); for i:=1 to m do begin readln(x,y); in_to[y]:=in_to[y]+1; g[x]:=g[x]+1; map[x,g[x]]:=y; end; while True do begin h:=0; for i:=1 to n do begin if in_to[i]=0 then begin in_to[i]:=-1; h:=h+1; p[h]:=i; end; end; find:=find+h; if h=0 then break; if find=n then break; for i:=1 to h do for k:=1 to g[p[i]] do in_to[map[p[i],k]]:=in_to[map[p[i],k]]-1; end; if find=n then begin writeln('Yes'); base:=2; t:=1; while k>0 do begin if k and 1=1 then t:=t*base mod 9997; base:=base*base mod 9997; k:=k>>1; end; writeln(t); end else begin writeln('No'); writeln(base*base); end; end. kkksc03注:亦可使用tarjan缩点。
- 1
信息
- ID
- 957
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 3
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者