日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

寻找道路(codevs 3731)题解

發布時間:2025/3/13 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 寻找道路(codevs 3731)题解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【問題描述】

在有向圖 G 中,每條邊的長度均為 1,現給定起點和終點,請你在圖中找一條從起點到 終點的路徑,該路徑滿足以下條件:

  • 路徑上的所有點的出邊所指向的點都直接或間接與終點連通。
  • 在滿足條件 1 的情況下使路徑最短。
  • 注意:圖 G 中可能存在重邊和自環,題目保證終點沒有出邊。 請你輸出符合條件的路徑的長度。

    【樣例輸入1】

    ? ? 3 2
    ? ? 1 2
    ? ? 2 1
    ? ? 1 3

    【樣例輸出1】

    ? ? -1

    【樣例輸入2】

    ? ? 6 6
    ? ? 1 2
    ? ? 1 3
    ? ? 2 6
    ? ? 2 5
    ? ? 4 5
    ? ? 3 4
    ? ? 1 5

    【樣例輸出2】

    ? ? 3

    【解題思路】

    ? ? ?又是要用鄰接表的題,我又華麗麗地用了鄰接矩陣,加上當初SB一般的用廣搜+深搜去搜能到的頂點,用了兩個布爾型數組,求最短路的時候用了floyed(其實這個都沒什么了,之前的就足夠MLE了……),再次爆零……

    ? ? OK,吐槽完之后,繼續來說正解。

    ? ? 鄰接表,不多說了,以后看到需要存儲邊的題目都去用鄰接表!管你有沒有權。由于這題需要判斷能否到達終點,于是我們需要反向存儲。一遍DFS找到所有不能直接或間接到達的點,將它們的所有的入邊的點全部刪掉,如果起點無法到達的話,就輸出-1,否則就是求最短路了。

    【代碼實現】

    1 type rec=record 2 c,next:longint; 3 end; 4 var e:array[1..200000] of rec; 5 g:array[1..10000] of longint; 6 efree,i,n,m,k,x,y,s,t,j:longint; 7 a:array[1..10000] of longint; 8 f,flag:array[1..10000] of boolean; 9 procedure add; 10 begin 11 e[efree].c:=x; 12 e[efree].next:=g[y]; 13 g[y]:=efree; 14 inc(efree); 15 end; 16 procedure dfs(x:longint); 17 var j:longint; 18 begin 19 f[x]:=true; 20 j:=g[x]; 21 while j<>0 do 22 begin 23 if not f[e[j].c] then 24 dfs(e[j].c); 25 j:=e[j].next; 26 end; 27 end; 28 procedure dijkstra; 29 var i,j,min,pos:longint; 30 begin 31 fillchar(f,sizeof(f),false); 32 f[t]:=true; 33 a[t]:=0; 34 for j:=1 to n do 35 begin 36 pos:=t; 37 min:=maxint; 38 for i:=1 to n do 39 if (not f[i])and(a[i]<min)and(flag[i]) then 40 begin 41 pos:=i; 42 min:=a[i]; 43 end; 44 f[pos]:=true; 45 i:=g[pos]; 46 while i<>0 do 47 begin 48 if flag[e[i].c] then 49 if a[e[i].c]>a[pos]+1 then 50 a[e[i].c]:=a[pos]+1; 51 i:=e[i].next; 52 end; 53 end; 54 end; 55 begin 56 readln(n,m); 57 efree:=1; 58 for i:=1 to m do 59 begin 60 readln(x,y); 61 add; 62 end; 63 readln(s,t); 64 dfs(t); 65 flag:=f; 66 for i:=1 to n do 67 if not f[i] then 68 begin 69 j:=g[i]; 70 while j<>0 do 71 begin 72 flag[e[j].c]:=false; 73 j:=e[j].next; 74 end; 75 end; 76 if not flag[s] then 77 begin 78 writeln(-1); 79 halt; 80 end; 81 for i:=1 to n do 82 a[i]:=maxint; 83 dijkstra; 84 writeln(a[s]); 85 end.

    ?

    轉載于:https://www.cnblogs.com/PengBoLiuXu/p/4536158.html

    總結

    以上是生活随笔為你收集整理的寻找道路(codevs 3731)题解的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 91丨porny丨成人蝌蚪 | 国产精品videossex国产高清 | 在线成人 | jizz中国女人 | 亚洲一区二区三区精品视频 | 午夜精品久久久久久久久 | 激情视频亚洲 | 依依激情网 | av毛片网| 成人性生活免费看 | 熟女熟妇伦久久影院毛片一区二区 | 末发成年娇小性xxxxx | 综合网视频 | 黄色在线免费 | 黄色录像一级大片 | 在线观看国产精品入口男同 | 国产人人射 | 91av视频在线免费观看 | 1000部啪啪未满十八勿入超污 | 美女三区| 欧美精品xxxxx | 那个网站可以看毛片 | 岛国av在线 | 色妇网| 国产黄av | 日韩精品人妻一区二区中文字幕 | 欧美久久久久久久久久久久久久 | 国产精品果冻传媒 | 91在线精品一区二区 | 夜色一区二区三区 | 日韩av影片在线观看 | 久久噜噜噜精品国产亚洲综合 | 国产成人a亚洲精品 | 一本久道久久综合 | 亚洲国产精品视频在线 | 欧美性教育视频 | 国产日韩一区二区三免费高清 | 成人自拍在线 | 久久久久亚洲无码 | 国产专区自拍 | 主人性调教le百合sm | 亚洲一区二区三区免费在线观看 | 成人片免费看 | 色碰视频| 韩国妻子的朋友 | 国产av天堂无码一区二区三区 | 亚洲精品国产免费 | 中文字幕无码人妻少妇免费 | 国偷自产av一区二区三区 | 五月天久久综合 | 动漫美女被吸乳奶动漫视频 | 成年人高清视频 | 久久看片 | 一级黄色电影片 | 日韩乱码人妻无码中文字幕 | 老子午夜影院 | 欧美成人精品一区二区三区在线观看 | 亚洲成人高清 | 精品乱子伦一区二区 | 秋霞7777鲁丝伊人久久影院 | 青青青在线观看视频 | 毛片网站免费在线观看 | 亚洲无人区码一码二码三码的含义 | 777久久久精品一区二区三区 | 成人手机在线播放 | 黄色小电影网址 | 亚洲欧洲免费 | 亚洲一区视频在线 | 国产农村熟妇videos | 亚欧毛片| 日本网站在线播放 | porn麻豆 | 97爱爱爱 | 日本边添边摸边做边爱 | 天天摸天天干 | 黄网av| 久久免费视频99 | 欧美激情综合 | 欧美 日韩 视频 | 午夜亚洲天堂 | 国产一级黄色录像 | 极品另类 | 国产女人爽到高潮a毛片 | 特级丰满少妇一级aaaa爱毛片 | 国产69精品久久久久久久久久 | 四虎影院一区二区 | 婷婷激情综合 | 麻豆91网站| 日本免费不卡一区二区 | 欧美特级黄色大片 | 2021中文字幕 | 涩涩视频免费在线观看 | 日韩城人视频 | 亚洲 小说区 图片区 | 在线观看国产精品入口男同 | 亚洲综合在线视频 | 成年人在线观看网站 | 尤物精品视频在线观看 | 国产亚洲成人av |