精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

地鐵圖快速尋路算法

開發 開發工具 算法
這兩天,博客園里有人談論到地鐵圖的實現,而之前我也和NeoRAGEx2002同學做了一個Android地鐵圖應用,因此,對于地鐵圖的尋路算法,我覺得有必要專門寫一篇博客來給出我們的解決方案,供大家參考。本文所述算法的時間復雜度為O(|E|log|E|),其中|E|為邊的數量。

1.概述

 

這兩天,博客園里有人談論到地鐵圖的實現,而之前我也和NeoRAGEx2002同學做了一個Android地鐵圖應用,因此,對于地鐵圖的尋路算法,我覺得有必要專門寫一篇博客來給出我們的解決方案,供大家參考。本文所述算法的時間復雜度為O(|E|log|E|),其中|E|為邊的數量。

 

 

2.概念

 

1)點和邊

 

基礎元素為點(地鐵站)和邊(兩個相鄰站之間的有向軌道)。

例如,經過莘莊站有1號線和5號線,含有莘莊站的邊有4條,經過世紀大道站有4條線路,含有世紀大道站的邊有8條。

 

2)運營段

 

在邊的基礎上,還有運營段的概念,即一組連續邊的集合。

例如,1號線有莘莊-富錦路(發車間隔8分)、莘莊-上海火車站(發車間隔6分)、上海南站-富錦路(發車間隔8分)、上海南站-上海火車站(發車間隔6分)、富錦路-莘莊(發車間隔8分)、上海火車站-莘莊(發車間隔6分)等運營段。

 

3)代價

 

尋路算法的依據可以為時間、換乘次數、經過邊數等任意非負代價,這里著重對時間進行建模。

每條邊有一個乘坐時間代價,表示乘坐地鐵經過該邊所需要花費的時間。

每個運營段有一個等車時間代價,為通過該運營段中的邊乘車需要等車的時間,通常可以假設為發車間隔時間(等車時間的最大值)或者發車間隔時間的一半(等車時間的數學期望)。

在每個點有一個換乘時間代價矩陣,表示在任意兩條邊之間換乘所需要花費的時間。兩邊之間的關系有直接連通、換乘、不連通三種。連通的換乘時間代價為0,換乘的換乘時間代價為換乘行走時間+等車時間,不連通的換乘時間代價為+∞。這個矩陣可以用稀疏矩陣表示,不連通的兩邊不出現。由于地鐵的設計使得我們不需要考慮沿著某條線路折返的路線,我們可以將一邊和它的相反邊看做不連通而不是換乘,這樣可以降低圖的復雜度。

 

 

3.算法

 

1)思路

 

傳統的最短路徑算法很多,比如

Dijkstra算法,不過這種算法沒有辦法解決換乘時間代價問題。

廣度優先算法,在加權圖的時候無法得到最優解。

受限的深度優先算法,能得到結果,但路徑比較長時算法時間過長。

 

我們可以考慮這樣一個自然現象,雪水在山峰上融化,然后流經各個山谷。各站點就是山谷中的點,換乘站點就是山谷分成多股的交叉點。

假設起始點是山峰,水沿著各邊擴散,經過一邊的用時和邊上的乘坐時間代價一樣,從一邊到一鄰邊,需要等待換乘時間代價。不停往起始點倒水,水不停流動,當水到達終止點時,水流經過的路徑就是我們所需要的最短路徑。

 

這個模型的問題在于水可以有多股水流同時流動,但是我們的算法應該有一個順序,我們可以假設有一個水流切線,表示所有水流的最前端位置。任意邊e,當其起點被水流所覆蓋,而終點沒有被水流覆蓋時,將e加入按代價排序的切線邊列表C(紅黑樹或平衡樹實現),并記錄e->水流經過的上一邊。繼續讓水流動,則C中的第一個邊e的終點最先被水流所覆蓋,從C中移除e。當到達尋路的終止點時,我們可以通過從最后一條邊開始回溯上一邊,再上一邊的上一邊,直到尋路的起點,這樣就獲得了所需要的路徑。

 

算法也可以不在終點結束,而直到水流覆蓋地圖上的所有點,對性能并沒有明顯的影響。

 

2)例子

 

如圖1所示:

        圖1(a) 時間代價                                圖1(b) 搜索順序

 

為了簡化問題,我們假設2號線(綠色)和9號線(水色)不存在,只考慮4號線(深藍色)和6號線(紫紅色)。

圖1(a)中表示了4號線和6號線的邊的時間代價,其中白色表示等車時間,黃色表示乘車時間。

我們假設每個換乘站,換乘時的行走時間為4分鐘。

圖1(b)表示了搜索順序,對于相同的代價,其搜索順序不定,由切線邊列表C的實現決定。

例子中的起始點為世紀大道,終止點為上海兒童醫學中心。

 

切線邊列表C的變化如下

  1. {1, 2, 3, 5}  
  2. {2, 3, 4, 5}  
  3. {3, 4, 5, 6}  
  4. {4, 5, 6, 9}  
  5. {5, 6, 7, 9}  
  6. {6, 7, 8, 9}  
  7. {7, 8, 9, 10, .., ..}  
  8. {8, 9, 10, .., .., ..}  
  9. {9, 10, .., .., .., ..}  
  10. {10, .., .., .., .., ..} 

需要注意到消去6的時候,增加了10、(藍村路, 塘橋)、9的反向邊三條邊,消去9的時候,增加了6的反向邊。

消去9時,會再次搜索到10,此時的時間代價為13+4+8=25,但因為10已經記錄了其上一邊,所以不再加入C。

#p#

 

3)實現

 

偽代碼如下:

  1. record Vertex //點  
  2.     InEdges:List<Edge> //進站邊  
  3.     OutEdges:List<Edge> //出站邊  
  4.     Connection:Map<Tuple<Edge, Edge>, EdgeConnection> //邊連接矩陣,包含換乘行走時間代價,當不連接時不存在  
  5.  
  6. record Edge //邊  
  7.     Start:Vertex //起點  
  8.     End:Vertex //終點  
  9.     Cost:Int //乘坐時間代價  
  10.     Ranges:List<Range> //運營段  
  11.  
  12. record Range //運營段  
  13.     Edges:List<Edge> //邊  
  14.     Cost:Int //等車時間  
  15.  
  16. taggedunion EdgeConnection  
  17.     Connected:Unit //直接連接  
  18.     Transferable:Int //換乘,行走時間代價  
  19.  
  20. CalculateRoute(Start:Vertex, End:Vertex):List<Edge>  
  21.     if Start == End  
  22.         return new List<Edge>() //起始點和終止點重合  
  23.  
  24.     let Previous <- new Map<Edge, Edge>() //邊到上一邊的映射  
  25.     let cmp <- (Comparer<Edge>)(...) //路徑代價比較函數,將在下面給出  
  26.     let CutEdges <- new RedBlackTree<Edge>(cmp) //水流切線邊列表  
  27.  
  28.     foreach o in Start.OutEdges  
  29.         CutEdges <- CutEdges + o  
  30.         Previous <- Previous + (o, null)  
  31.  
  32.     let e <- (Edge)(null) //終邊  
  33.  
  34.     while CutEdges.Count > 0  
  35.         let i <- CutEdges.First  
  36.         CutEdges <- CutEdges - i  
  37.  
  38.         let s <- i.End  
  39.         if s == End  
  40.             e <- i  
  41.             break 
  42.  
  43.         foreach o in s.OutEdges  
  44.             if !s.Connection.ContainsKey((i, o))  
  45.                 continue 
  46.  
  47.             if Previous.ContainsKey(o)  
  48.                 continue 
  49.  
  50.             Previous <- Previous + (o, i)  
  51.             CutEdges <- CutEdges + o  
  52.  
  53.     if e == null  
  54.         return null //沒有路徑  
  55.  
  56.     let l <- new List<Edge>()  
  57.     while e != null  
  58.         l <- l + e  
  59.         e <- Previous(e)  
  60.  
  61.     return l.Reverse() 

下面為當尋路依據為時間時的比較函數

  1. let Time <- new Map<Edge, Int>()  
  2. let Range <- new Map<Edge, Range>()  
  3. let GetBestRange <- l:List<Range> => l.OrderBy(r => r.Cost).First  
  4. let GetTime <-  
  5.     e =>  
  6.         if e == null  
  7.             return 0  
  8.         if Time.ContainsKey(e)  
  9.             return Time(e)  
  10.         let p <- Previous(e)  
  11.         let v <- GetTime(p)  
  12.         if p != null  
  13.             let c <- e.Start.Connection((p, e))  
  14.             if c  
  15.             | Connected ->  
  16.                 let rgOld <- Range(p)  
  17.                 let rg <- GetBestRange(p.Ranges.Intersect(e.Ranges))  
  18.                 Range <- Range + (e, rg)  
  19.                 if rgOld != rg  
  20.                     v <- v - rgOld.Cost + rg.Cost  
  21.             | Transferable t ->  
  22.                 let rg <- GetBestRange(e.Ranges)  
  23.                 Range <- Range + (e, rg)  
  24.                 v <- v + rg.Cost + t  
  25.         else 
  26.             let rg <- GetBestRange(e.Ranges)  
  27.             Range <- Range + (e, rg)  
  28.             v <- v + rg.Cost  
  29.         v <- v + e.Cost  
  30.         Time <- Time + (e, v)  
  31.         return v  
  32. let cmp <-  
  33.     (l:Edge, r:Edge) =>  
  34.         return GetTime(l) - GetTime(r) 

下面為當尋路依據為換乘次數時的比較函數

  1. let TransferCount <- new Map<Edge, Int>()  
  2. let GetTransferCount <-  
  3.     e =>  
  4.         if e == null  
  5.             return 0  
  6.         if TransferCount.ContainsKey(e)  
  7.             return TransferCount(e)  
  8.         let p <- Previous(e)  
  9.         let v <- GetTransferCount(p)  
  10.         if p != null  
  11.             let c <- e.Start.Connection((p, e))  
  12.             if c  
  13.             | Connected ->  
  14.                 ()  
  15.             | Transferable _ ->  
  16.                 v += 1  
  17.         TransferCount <- TransferCount + (e, v)  
  18.         return v  
  19. let cmp <-  
  20.     (l:Edge, r:Edge) =>  
  21.         return GetTransferCount(l) - GetTransferCount(r) 

下面為當尋路依據為經過邊數時的比較函數
 

  1. let StopCount <- new Map<Edge, Int>()  
  2. let GetStopCount <-  
  3.     e =>  
  4.         if e == null  
  5.             return 0  
  6.         if StopCount.ContainsKey(e)  
  7.             return StopCount(e)  
  8.         let p <- Previous(e)  
  9.         let v <- GetStopCount(p) + 1  
  10.         StopCount <- StopCount + (e, v)  
  11.         return v  
  12. let cmp <-  
  13.     (l:Edge, r:Edge) =>  
  14.         return GetStopCount(l) - GetStopCount(r) 

4.算法復雜度

認為點的入站邊和出站邊很少,覆蓋每條邊的運營段很少,并注意到GetTime運行時遞歸的部分總會在Time變量中緩存,可知時間比較函數的復雜度為O(1)。

CutEdges的紅黑樹插入刪除的復雜度為O(log|E|)。

所有邊最多進出CutEdges一次,可知整個算法的復雜度為O(|E|log|E|)。

 

5.結果

本文所述算法能夠在O(|E|log|E|)時間內快速得到全局最佳路徑。

在1GHz的單CPU手機上實測得到的上海地鐵(11條線路214站)任意兩站點之間的尋路時間均為200ms以下。

 

最后還是介紹下我們的應用。

矢量地鐵(上海版)

支持雙指無極縮放、動態尋徑效果、本地地圖顯示。雖然我們只是一個小團隊,但我們只做最好的地鐵圖!如果大家有啥問題和建議,歡迎給我們留言!

原文鏈接:http://www.cnblogs.com/Rex/archive/2012/08/12/2634401.html

責任編輯:林師授 來源: 博客園
相關推薦

2017-07-26 15:59:51

尋路算法Dijkstra游戲

2023-12-20 08:35:54

Dijkstra算法A*算法計算機圖形學

2021-01-28 10:55:31

算法可視化數據

2009-06-10 13:25:46

RFID發展無線網絡

2024-10-08 15:16:23

SQL地鐵換乘數據庫

2012-05-18 13:59:45

HTML5

2022-12-14 17:42:48

軍棋工兵算法

2016-01-27 14:47:02

云監控華為

2023-08-24 22:13:31

2009-07-29 11:16:08

浪潮四路服務器

2013-10-14 13:52:06

Windows 8微軟

2019-04-28 12:00:56

地鐵數據代碼

2025-10-17 01:55:00

排序算法快速排序Lomuto

2014-10-30 15:14:54

快速排序編程算法

2023-01-15 17:57:01

2020-09-17 17:46:20

Python地鐵線路圖

2014-12-17 09:16:33

漏洞北京地鐵系統

2016-02-01 18:19:49

數據中心建設華為

2021-03-04 07:24:28

排序算法優化

2010-04-29 13:04:39

Google數據中心
點贊
收藏

51CTO技術棧公眾號

欧美黄色一级| 九一国产在线观看| 欧美调教sm| 狠狠网亚洲精品| 欧美疯狂xxxx大交乱88av| 国产成人美女视频| 欧美人与动牲性行为| 成人性色生活片免费看爆迷你毛片| 久久久91精品国产| 精品综合久久久久| caoporn97在线视频| 日韩一区精品视频| 欧美俄罗斯性视频| 91视频免费观看网站| 欧美一级免费| 亚洲乱码国产乱码精品精的特点 | 中文字幕视频一区二区在线有码 | 中文字幕一区二区三区日韩精品| 欧美日韩国产丝袜另类| 亚洲国产午夜伦理片大全在线观看网站 | 欧美日韩在线影院| 久久av秘一区二区三区| 欧洲成人一区二区三区| 免播放器亚洲一区| 国内精品久久久久伊人av| 国产乱了高清露脸对白| 国产一区一区| 欧洲精品视频在线观看| 男女猛烈激情xx00免费视频| 欧美午夜黄色| 99久久亚洲一区二区三区青草| 91精品久久久久久久久久久久久| 欧美成人免费观看视频| 日韩欧美精品综合| 精品久久久网站| 三级av免费观看| 欧美电影免费观看高清完整| 亚洲国产va精品久久久不卡综合| 正在播放一区二区三区| 久草视频视频在线播放| 高清成人免费视频| 亚洲va国产va天堂va久久| 成年人晚上看的视频| 亚洲欧美日本视频在线观看| 久久乐国产精品| 久操视频免费在线观看| 日韩在线二区| 中文字幕在线观看日韩| 人人爽人人爽人人片| 九九精品在线| 亚洲开心激情网| 中文在线永久免费观看| 国产精品久久久久久妇女| 91福利在线免费观看| 成人国产在线看| 在线三级电影| 最新国产精品久久精品| 性欧美18一19内谢| 福利视频在线| 久久综合色一综合色88| 精品一区在线播放| 天天色综合久久| 91在线精品一区二区| 久久精品国产一区二区三区不卡| 污污视频在线观看网站| 91视频一区二区三区| 欧美精品成人一区二区在线观看| 飘雪影院手机免费高清版在线观看| 91亚洲资源网| 日产精品高清视频免费| 国产福利第一视频在线播放| 国产精品网站在线| 亚洲综合五月天| 在线观看av黄网站永久| 亚洲三级在线观看| 一卡二卡三卡视频| 一本大道色婷婷在线| 五月婷婷久久丁香| 日韩欧美在线播放视频| 亚洲成人va| 欧美一二三四在线| 99久久免费看精品国产一区| 高清一区二区三区| 日韩成人在线电影网| 中国女人特级毛片| 亚洲免费二区| 久久久久久久亚洲精品| 91免费在线看片| 欧美深夜福利| 欧洲成人免费aa| 亚洲午夜精品久久久| 国产精品一区二区男女羞羞无遮挡| 91日韩久久| 青青草超碰在线| 亚洲视频在线观看一区| 亚洲熟妇无码另类久久久| 成人精品国产亚洲| 精品乱码亚洲一区二区不卡| 亚洲性猛交xxxx乱大交| 欧美精品色网| 国产精品电影网| 性生交生活影碟片| 成人h动漫精品| 亚洲一区二区三区精品在线观看 | 一区二区三区在线观看国产| koreanbj精品视频一区| 图片一区二区| 亚洲成人av在线播放| 国产精品成人在线视频| 亚洲第一偷拍| 日韩美女视频中文字幕| 国产视频第一页| 972aa.com艺术欧美| 影音先锋男人的网站| 视频二区不卡| 亚洲福利在线视频| 男女男精品视频网站| 狠久久av成人天堂| 国产欧美中文字幕| 国产午夜精品一区理论片| 亚洲一区二区三区中文字幕在线| 国产视频一区二区三区在线播放 | 欧美国产大片| 精品剧情v国产在线观看在线| 欧美激情久久久久久久| 国产日韩欧美三级| 99在线看视频| 成人看av片| 欧洲人成人精品| 国产精品815.cc红桃| 亚洲三级视频| julia一区二区中文久久94| 2017亚洲天堂1024| 色婷婷国产精品| 好男人香蕉影院| 欧美三级网页| 国产精品啪视频| 高h放荡受浪受bl| 亚洲欧洲美洲综合色网| 日韩肉感妇bbwbbwbbw| 精品在线播放| 日韩av免费看| 国产在线小视频| 色呦呦国产精品| 欧美丰满少妇人妻精品| 在线亚洲自拍| 精品网站在线看| 国产资源在线观看入口av| 欧美tickling网站挠脚心| 成人免费黄色小视频| 精东粉嫩av免费一区二区三区| 国模精品娜娜一二三区| 24小时免费看片在线观看| 精品国产91久久久久久久妲己| 天堂网中文在线观看| 狂野欧美一区| 日韩国产欧美精品| 日产精品一区| 中文综合在线观看| 国产又黄又粗又猛又爽| 国产精品的网站| 色戒在线免费观看| 久久综合99| 91九色偷拍| 最新黄网在线观看| 欧美videos大乳护士334| 动漫性做爰视频| 国产呦精品一区二区三区网站| 成人性做爰片免费视频| 亚洲一区二区三区日本久久九| 久久久在线免费观看| 久青青在线观看视频国产| 色一情一乱一乱一91av| 精品女人久久久| 国产精品一区在线观看乱码| 无码av天堂一区二区三区| 成人免费观看49www在线观看| 欧美成人午夜剧场免费观看| 97人妻精品一区二区三区软件 | 久视频在线观看| 成人网在线免费视频| 国产福利视频在线播放| 日韩欧美不卡| 91九色在线观看| 亚洲优女在线| 亚洲欧洲日产国产网站| 中文在线a天堂| 一区二区三区欧美| 亚洲精品理论片| 亚洲私拍自拍| 亚洲国产精品一区二区第四页av| 国产日韩一区二区三免费高清| 97国产真实伦对白精彩视频8| 精品电影在线| 精品视频在线免费看| 久久免费视频精品| 2023国产精品视频| 久久精品影视大全| 香蕉视频官网在线观看日本一区二区| 99久热re在线精品996热视频| 久久91导航| 久久99亚洲热视| www.av在线.com| 色94色欧美sute亚洲线路一ni| 女女互磨互喷水高潮les呻吟 | 欧美丝袜丝nylons| 老司机成人免费视频| 99麻豆久久久国产精品免费 | 性色av一区二区三区四区| 亚洲一区在线观看免费观看电影高清| 国产亚洲精品熟女国产成人| 国产成人精品亚洲午夜麻豆| 青青青在线播放| 91国语精品自产拍| 日韩欧美99| 欧美18xxxx| 91久久在线观看| av黄色在线免费观看| 在线观看免费视频一区| 亚洲精品你懂的| 日本网站在线看| 奇米在线7777在线精品| av中文字幕av| 欧美韩日一区| 免费成人看片网址| 精品午夜电影| 国产精品一二区| 成人性生交大片免费网站| 色综合视频一区中文字幕| 国内av一区二区三区| 亚洲成人黄色在线观看| 国产免费无遮挡| 欧美日韩在线不卡| 日本视频www色| 色女孩综合影院| 国产成人在线视频观看| 亚洲激情av在线| 久久久精品少妇| 成人av午夜影院| www.四虎在线| 国产美女视频一区| 黄色一级片免费播放| 久久精品国产色蜜蜜麻豆| 国产精品入口免费软件| 狂野欧美一区| 国产精品欧美激情在线观看| 一区二区三区导航| 黄色免费视频大全| 99成人精品| 国产欧美在线一区| 免费精品视频| 成人一区二区三| 久久av一区| 欧美精品第三页| 日本sm残虐另类| 久久人人爽av| 国产一区二区三区视频在线播放| 91aaa精品| 国产精品77777| 国产69视频在线观看| 处破女av一区二区| 亚洲国产精品自拍视频| 久久蜜桃一区二区| 免费一级黄色录像| **网站欧美大片在线观看| 欧美日韩在线国产| 亚洲精选在线视频| 精品无码人妻一区二区三区| 亚洲成人自拍网| 中文字幕精品无码一区二区| 欧美丝袜一区二区三区| 日本中文字幕在线观看视频| 欧美日韩国产综合视频在线观看 | 91黄色在线观看| 在线免费av片| 欧美一区二区精品在线| 欧美一区二区三区黄片| 亚洲人成网在线播放| 麻豆电影在线播放| 在线电影av不卡网址| 永久免费网站在线| 久久久久久网址| 巨胸喷奶水www久久久免费动漫| 成人a免费视频| 欧美交a欧美精品喷水| 日韩精品一区二区三区四区五区| 欧美好骚综合网| 国产美女在线一区| 奇米综合一区二区三区精品视频| 波多野结衣三级视频| 91在线国产福利| 免费在线观看a级片| 天天综合色天天综合色h| 在线播放国产一区| 亚洲成人aaa| 国产视频在线播放| 2019中文字幕免费视频| 午夜不卡一区| 久久久婷婷一区二区三区不卡| 天天综合网91| 日韩免费毛片视频| 国产iv一区二区三区| 久久精品三级视频| 亚洲电影激情视频网站| 亚洲天堂中文字幕在线| 亚洲成avwww人| 免费黄色电影在线观看| 欧美一级免费看| 日本欧美韩国| 好看的日韩精品| 欧美777四色影| 日韩欧美在线免费观看视频| 成人免费观看视频| 多男操一女视频| 在线观看国产一区二区| 国产chinasex对白videos麻豆| 亚洲人成电影网站色www| av色综合久久天堂av色综合在| 欧美与黑人午夜性猛交久久久| 亚洲欧洲高清| 亚洲free性xxxx护士白浆| 成人在线电影在线观看视频| 欧美日本视频在线观看| 高清国产一区二区| 国产高清在线免费观看| 日本道在线观看一区二区| 无码精品黑人一区二区三区| 欧美黄色成人网| 免费看日产一区二区三区| 五月天亚洲综合情| 久久综合图片| 成人片黄网站色大片免费毛片| 午夜久久电影网| www.成人免费视频| 米奇精品一区二区三区在线观看| jizz亚洲女人高潮大叫| 日本一区二区久久精品| 亚洲一区日韩| 熟妇高潮精品一区二区三区| 亚洲成a人v欧美综合天堂下载| 亚洲av综合色区无码一区爱av| 久久亚洲精品国产亚洲老地址| 三上悠亚国产精品一区二区三区| 欧美系列一区| 国产精品试看| 精品人妻伦一二三区久| 中文字幕一区av| 亚洲精品国产精品国自产网站按摩| 一色桃子一区二区| 成人国产精品| 亚洲一区三区| 日日夜夜免费精品| 亚洲精品午夜视频| 欧美在线观看一区二区| av在线三区| 成人羞羞国产免费| 91不卡在线观看| 国产xxx在线观看| 午夜精品久久久久久久蜜桃app| 人妻中文字幕一区| 55夜色66夜色国产精品视频| 免费看成人哺乳视频网站| 久久久久久香蕉| 国产精品伦理在线| 一卡二卡在线视频| 欧美巨大黑人极品精男| 超碰在线亚洲| 成年人黄色片视频| 久久久久久久综合狠狠综合| 亚洲av人无码激艳猛片服务器| 日韩网站在线观看| 超碰一区二区三区| 国产福利一区视频| 中文字幕亚洲精品在线观看| 亚洲伦理在线观看| 2019中文在线观看| 久久精品国产www456c0m| 美女被艹视频网站| 五月天网站亚洲| 在线播放麻豆| 国产一区二区无遮挡| 日本sm残虐另类| 久久久精品国产sm调教| 亚洲精品在线观看www| aa亚洲一区一区三区| 青青草精品视频在线| 日本一区二区高清| 亚洲产国偷v产偷v自拍涩爱| 久久777国产线看观看精品| 香蕉久久99| 一区二区三区免费播放| 一区二区久久久| 国产高清在线看| 91精品国产91久久久久青草| 亚欧成人精品| 亚洲av无码一区二区三区在线| 国产丝袜一区二区三区| 日韩一级视频| 久久久精品在线视频| 亚洲国产欧美另类丝袜|