精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

91麻豆精品国产| 欧美激情综合在线| 久久99国产精品自在自在app | 欧美中日韩免费视频| 在线视频你懂得| 欧美区日韩区| 亚洲嫩模很污视频| 在线观看免费视频污| av在线资源| 国产日本欧美一区二区| 1区1区3区4区产品乱码芒果精品| 粉嫩aⅴ一区二区三区| 日韩精品中文字幕第1页| 精品久久久久久最新网址| 97成人在线观看视频| 蜜桃av在线免费观看| 99久久精品免费看国产| 91免费综合在线| 天堂网视频在线| 国产精品观看| 日韩视频永久免费观看| 亚洲调教欧美在线| 国产日本亚洲| 欧美最猛黑人xxxxx猛交| 999一区二区三区| 毛片在线不卡| 亚洲国产高清在线| 免费看成人午夜电影| www.天堂av.com| 蜜臀精品一区二区三区在线观看 | 欧美成人精品三级网站| 一区二区三区 在线观看视频| 亚洲福利av在线| 九色蝌蚪在线| 2017欧美狠狠色| 99视频免费观看| 国产乱淫av免费| 美女在线一区二区| 国产精品99久久久久久www| 国产乡下妇女做爰视频| 欧美激情日韩| 欧美精品免费看| 色欲人妻综合网| 99tv成人| 中文字幕亚洲综合| 丰满的亚洲女人毛茸茸| 免费欧美视频| 国产丝袜一区视频在线观看 | 五月激激激综合网色播| 亚洲福利在线播放| 国产人妻黑人一区二区三区| 超碰97成人| 日韩精品一区二区三区老鸭窝| 中文字幕第三区| 24小时成人在线视频| 欧美军同video69gay| av免费一区二区| 91麻豆精品国产综合久久久| 6080日韩午夜伦伦午夜伦| 午夜免费看毛片| 91精品麻豆| 日韩一级免费一区| 91人妻一区二区| 久久亚洲道色| 亚洲天堂男人的天堂| 日韩精品电影一区二区| 不卡一区综合视频| www.xxxx欧美| 免费在线看黄网址| 亚洲午夜激情在线| 欧美一级电影在线| 特级西西444www高清大视频| 久久精品国产久精国产| 97超碰人人看人人| 婷婷在线观看视频| 久久亚洲精品国产精品紫薇| 天堂资源在线亚洲资源| 麻豆影院在线| 亚洲地区一二三色| 精品国产成人av在线免| 国外成人福利视频| 日韩精品中午字幕| 亚洲欧美日本一区| 欧美偷拍自拍| 欧美夫妻性视频| 综合激情网五月| 久久机这里只有精品| 成人xxxxx色| 日韩偷拍自拍| 成人免费在线观看入口| jizzjizz国产精品喷水| 丁香久久综合| 亚洲成人亚洲激情| 欧美a在线播放| 亚洲午夜av| 国产精品普通话| 国产理论片在线观看| 91农村精品一区二区在线| 亚洲开发第一视频在线播放| 中文字幕在线观看播放| 色悠悠亚洲一区二区| 日本精品一区在线| 嫩草影视亚洲| 欧美高清自拍一区| 波多野结衣二区三区| 高清不卡在线观看| 一区二区免费电影| 日本在线播放一二三区| 91精品久久久久久久久99蜜臂| 中文字幕在线播放视频| 99精品视频精品精品视频| 91av视频导航| 国产激情无套内精对白视频| 欧美激情在线观看视频免费| 无码专区aaaaaa免费视频| 青青久久精品| 亚洲天堂av高清| 免费在线观看国产精品| 麻豆精品在线看| 欧美日本韩国国产| 久久免费电影| 884aa四虎影成人精品一区| 亚洲狠狠婷婷综合久久久久图片| 亚洲蜜桃视频| 国产日韩换脸av一区在线观看| 性插视频在线观看| 亚洲福利一区二区三区| 天天干天天曰天天操| 国产精品黑丝在线播放| 国产精品久久综合av爱欲tv| 日产精品久久久久久久性色| 五月婷婷色综合| 国产吃瓜黑料一区二区| 亚洲一区二区三区无吗| 国产精品人成电影| 国产一级免费在线观看| 色天使色偷偷av一区二区| 国产高清自拍视频| 最新亚洲激情| 国产精品国产亚洲精品看不卡15| av毛片在线免费| 欧美一区二区在线看| 国产美女福利视频| 国产在线精品一区二区夜色 | 欧美丝袜丝交足nylons图片| 天天躁日日躁aaaxxⅹ| 久久电影一区| 欧美亚州在线观看| 日韩高清在线| 中文字幕亚洲情99在线| 国产孕妇孕交大片孕| 国产精品美女久久久久高潮| 狠狠操狠狠干视频| 亚洲精品一区二区妖精| 亚洲在线一区二区| 亚洲电影视频在线| 亚洲第一精品久久忘忧草社区| 国产第一页在线播放| 99久久伊人精品| 国内外成人激情视频| 精品成av人一区二区三区| 国产精品久久久久91| 天堂а√在线官网| 日韩一区国产二区欧美三区| 久久这里只有精品国产| 91在线观看高清| 免费男同深夜夜行网站| 国产精品久久久久久久免费观看| 91视频-88av| gratisvideos另类灌满| 亚洲欧美第一页| 中文字幕人妻一区二区在线视频 | 波多野结衣欧美| 2023亚洲男人天堂| 日韩免费网站| 精品国产一区二区在线观看| 国产精品老女人| 中文字幕高清不卡| 天堂va欧美va亚洲va老司机| 国产精品普通话对白| 亚州欧美一区三区三区在线| 国产精品777777在线播放| 午夜欧美大片免费观看| 国产露出视频在线观看| 日韩一区二区在线看| 欧美h在线观看| 最新热久久免费视频| 国产精品久久AV无码| 日韩精品久久久久久| 色哺乳xxxxhd奶水米仓惠香| 日韩精品免费一区二区三区竹菊| 国产欧美日韩精品丝袜高跟鞋| 日本三级韩国三级欧美三级| 亚洲欧美在线免费观看| 精品久久久无码中文字幕| 欧美午夜性色大片在线观看| 亚洲 欧美 变态 另类 综合| www国产精品av| 国产老头和老头xxxx×| 久久久xxx| 国产男女免费视频| 99久久视频| 欧美日韩一区二区三区在线视频| 精品入口麻豆88视频| 国产精品爱啪在线线免费观看| 午夜伦理在线视频| 中文字幕九色91在线| 手机看片福利在线| 91精品国产免费| 伊人久久久久久久久久久久| 亚洲成av人片在线| 亚洲天堂一级片| 中文字幕欧美区| 中文字幕在线播放一区| 国产精品一二三四五| av无码精品一区二区三区| 亚洲高清毛片| 老司机午夜免费福利视频| 欧美色图一区| 日本不卡久久| 亚洲v天堂v手机在线| 国产精品区一区| 国产精品亚洲欧美一级在线| 国产精品视频一区国模私拍| 在线女人免费视频| 久久全球大尺度高清视频| av毛片在线免费看| 久久天天躁日日躁| 毛片在线播放a| 久久精品国产综合| 亚洲欧美视频一区二区| 一个人看的www久久| 蜜桃视频在线观看视频| 精品视频偷偷看在线观看| 天天色综合久久| 亚洲国产成人在线视频| 国产综合视频在线| 欧美v日韩v国产v| www.国产精品视频| 日韩欧美在线网站| 性一交一乱一乱一视频| 日韩欧美国产麻豆| www.黄色小说.com| 欧美一区二区三区四区在线观看 | 在线观看亚洲欧美| 精品久久中文字幕| 亚洲日本视频在线观看| 好吊成人免视频| 亚洲毛片一区二区三区| 91黄色免费看| 怡红院成永久免费人全部视频| 欧美视频自拍偷拍| 一级片视频网站| 91精品国产乱| 亚洲av色香蕉一区二区三区| 精品国产自在久精品国产| 天堂网av在线播放| 亚洲精品日韩丝袜精品| a天堂中文在线| 久久精品2019中文字幕| 18+激情视频在线| 国内久久久精品| 成人免费看黄| 国产精自产拍久久久久久| 麻豆国产一区二区三区四区| 成人资源视频网站免费| 网红女主播少妇精品视频| 日韩久久不卡| 牛夜精品久久久久久久99黑人| 欧美无砖专区免费| 噜噜噜在线观看免费视频日韩| 一女二男3p波多野结衣| 国产成人亚洲综合色影视| 精品影片一区二区入口| 国产欧美日产一区| 中国毛片直接看| 调教+趴+乳夹+国产+精品| 波多野结衣电车痴汉| 欧美一区二区三区白人| 欧美一区二不卡视频| 亚洲无线码在线一区观看| 看女生喷水的网站在线观看| 69久久夜色精品国产69| 国产黄色一区| 精品伦精品一区二区三区视频 | 99久久精品国产一区| 亚洲一区 欧美| 亚洲成a人v欧美综合天堂下载 | 欧美成人aaa| 国产精品久久久久久久小唯西川| 国产日产精品_国产精品毛片| 国产四区在线观看| 国产日韩欧美三级| 亚洲一区二区三区四区精品| 99re这里只有精品6| 国精产品一区一区二区三区mba| 亚洲成av人**亚洲成av**| 亚洲自拍第二页| 日韩精品福利网站| 超碰在线caoporen| 国产精品久久久久久av| 福利欧美精品在线| 中文字幕不卡每日更新1区2区| 国产亚洲精品v| 国产ts在线观看| 国产精品久久影院| 男人天堂av在线播放| 欧美变态tickle挠乳网站| 日本中文字幕在线观看| 茄子视频成人在线| 北条麻妃一区二区三区在线观看| 亚洲精品偷拍视频| 热久久国产精品| 久久久久久久久免费看无码| 亚洲一区二区在线免费看| 91国偷自产中文字幕久久| 亚洲欧美另类中文字幕| caoporn视频在线| 91传媒视频在线观看| 四季av一区二区凹凸精品| 亚洲男人天堂色| 久久一夜天堂av一区二区三区| 久久精品免费av| 日韩三级视频在线观看| 巨大荫蒂视频欧美另类大| 国产精品揄拍500视频| 精品国产乱码| 日韩av片在线看| 91在线视频在线| 久久丫精品久久丫| 精品福利在线导航| 色呦呦在线观看视频| 亚洲一区二区三区xxx视频| 99精品在线免费在线观看| 最新中文字幕免费视频| 国产日产欧产精品推荐色| 日本中文字幕在线观看视频| 亚洲色图av在线| 人人视频精品| 日韩性感在线| 青青草91视频| 韩国一级黄色录像| 欧美日韩mp4| 超碰在线无需免费| 91亚洲精品丁香在线观看| 欧美日本免费| 亚洲精品久久一区二区三区777 | 欧美激情啊啊啊| 2020国产精品极品色在线观看| 韩国无码av片在线观看网站| 国产成人啪午夜精品网站男同| 美女毛片在线观看| 精品国产一区二区三区忘忧草| hd国产人妖ts另类视频| 蜜桃导航-精品导航| 日日夜夜一区二区| 国产调教在线观看| 日韩一区二区电影在线| 成人性生交大片免费看网站| 精品无人区一区二区三区竹菊| 老鸭窝毛片一区二区三区| 99久久99久久精品免费| 这里只有精品电影| 国模私拍视频在线播放| 精品中文字幕人| 日韩国产欧美三级| 中文字幕无码日韩专区免费| 日韩欧美国产高清| 日韩欧美一中文字暮专区| 日产精品高清视频免费| 狠狠色狠狠色综合| 国产乡下妇女做爰视频| 亚洲欧美一区二区三区情侣bbw| 久久亚洲精品人成综合网| 黄色一级片国产| 国产亚洲欧美日韩在线一区| 在线免费看av片| 国内成人精品视频| 中文字幕中文字幕精品| 久久国产激情视频| 亚洲综合一二区| 国产精品影院在线| 1卡2卡3卡精品视频| 久久精品女人| 亚洲一级生活片| 日韩毛片中文字幕| 中文字幕综合| 日本在线观看a| 亚洲视频一区二区在线观看| 天堂国产一区二区三区| 成人av番号网| 国产欧美在线| 国产suv一区二区三区| 日韩第一页在线| 久久伦理中文字幕| 日韩欧美在线免费观看视频| 亚洲精品老司机| 国产69精品久久app免费版| 国产高清在线精品一区二区三区| 老妇喷水一区二区三区|