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

用Python玩燒腦小游戲《一筆畫完》,瞬間闖到100關

開發 后端 開發工具
昨天和朋友出去外面吃飯,吃完飯后朋友打開了一個小程序玩了起來......

昨天和朋友出去外面吃飯,吃完飯后朋友打開了一個小程序玩了起來......

[[247317]]

游戲長這樣

大概玩法是:從地圖中貓的位置開始出發,并且經過所有的格子就算過關。游戲還算挺有意思的,經過我的不斷努力終于過到了 30 來關的樣子。

并且隨著游戲關卡的增加,游戲難度也變得越來越大,過一關需要非常久的時間。

最近也正好在研究算法,就打算看能不能寫個通用的算法來找出每個地圖的解。

哥尼斯堡的"七橋問題"

這個游戲的玩法和哥尼斯堡的"七橋問題"有點類似。

哥尼斯堡的"七橋問題":18 世紀著名古典數學問題之一。在哥尼斯堡的一個公園里,有七座橋將普雷格爾河中兩個島及島與河岸連接起來(如下圖)。是否可能從這四塊陸地中任一塊出發,恰好通過每座橋一次,再回到起點?

當時人們想到的證明方法是把七座橋的走法都列出來一個一個試驗,用排列組合的知識很容易得到七座橋所有的走法大概有 7! = 5040 種,如果真的逐一試驗,會是個很大的工作量。

但數學家歐拉沒有這樣想,歐拉把兩座島和河兩岸抽象成頂點,七座橋抽象成連接每個頂點的七條邊,那么這個問題就能被抽象成下面的圖:

假設每座橋都恰好走過一次,那么對于 A、B、C、D 四個頂點中的每一個頂點,需要從某條邊進入,同時從另一條邊離開,進入和離開頂點的次數是相同的,即每個頂點有多少條進入的邊,就有多少條出去的邊。

也就是說:每個頂點相連的邊是成對出現的,即每個頂點的相連邊的數量必須是偶數。

很明顯,上圖中 A、C、D 三個頂點相連的邊都有 3 條,B 頂點的相連邊為 5 條,都是奇數。因此這個圖無法從一個頂點出發,且恰好走過每座橋一次。

由此次證明,人們又得到了歐拉路關系,要使得一個圖形可以一筆畫完,必須滿足如下兩個條件:

  • 圖形必須是連通的不能有孤立的點。
  • 圖中擁有奇數連接邊的點必須是 0 或 2。

對于一個連通圖,通常把從某結點出發一筆畫成所經過的路線叫做歐拉路。那么這個游戲是不是就是讓我們找到一條歐拉路呢?

對游戲進行抽象

按照上面證明七橋問題的方法,我們可以將游戲的地圖抽象成這樣:

  • 其中 14 號頂點為起點。
  • 頂點和邊的關系在程序中可以刻畫成一個二維列表。
  1. graph = [ 
  2.     [1, 6],    #0 
  3.     [0, 2],    #1 
  4.     [1, 7, 3], #2 
  5.     ... 
  6.     [24, 19]   #25 

graph 列表的***層表示每一個頂點,第二層則是與當前頂點有邊的頂點。

抽象完這張游戲地圖后可以很清楚知道,這游戲并不是讓我們找到一條歐拉路。

因為找到一條歐拉路,需要的是經過每一座橋,且只經過一次,也就是說每個頂點可以被多次經過。

而這個游戲需要的是經過每一個頂點,并不要求走完每一座橋,且頂點只能被經過一次。

哈密頓通路

在研究了七橋問題發現并不能解決這類問題后,我開始向團隊的表哥們請教,其中一個表哥告訴我此類問題叫做哈密頓圖 (這里感謝下團隊的**@xq17**表哥)。

這里說的哈密頓圖,實際上是哈密頓通路的一種特殊情況,指的是:由指定的起點出發,途中經過所有其他頂點且只經過一次 ,***返回起點,稱之為哈密頓回路。如果給定的圖 G 具有哈密頓回路,則稱圖 G 為哈密頓圖。

那么現在目標明確了,這個游戲的解法就是找到某個給定圖的哈密頓通路。

但是問題來了!!!哈密頓通路問題,在上世紀七十年代初,被證明是 NP-hard 問題:

  • 一個復雜問題如果能在多項式時間內解決,那么它便被稱為 P 類問題。
  • 一個復雜問題如果不能確定在多項式時間內解決,那么它便被稱為 NP 類問題。

什么意思呢?就拿質因數分解來說吧:

  • P 類問題:23x37=?
  • NP 類問題:已知 axb=740914799,且 a 和 b 都是質數,求 a 和 b 的值

讓我們來看看這個問題有多復雜:

  • 因為 axb=740914799,且 a 和 b 都是質數
  • 設 P={x|2<=x<740914799/2,x 是質數}
  • 易得 (a,b)∈PxP,即 P 與它自身的笛卡爾積

我們用一種叫做篩法的算法來求一下 P 集合的元素個數:

  1. #! /usr/bin/env python 
  2. # -*- coding: utf-8 -*- 
  3. # Coding with love by Naiquan. 
  4. import math 
  5. import time 
  6. start = time.clock() 
  7. number = int(740914799/2) 
  8. marks_list = [True] * (number + 1) 
  9. marks_list[0] = marks_list[1] = False 
  10. for i in range(2, int(math.sqrt(number)) + 1): 
  11.     j = i 
  12.     t = j 
  13.     # 去掉倍數 
  14.     while j * t <= number: 
  15.         marks_list[j * t] = False 
  16.         t += 1 
  17. elapsed = str(time.clock() - start) 
  18. print marks_list.count(True
  19. print "Time used:" + elapsed 

一共有 19841519 個質數,算了我大概 14 分鐘。

PxP 的元素個數一共有 19841519^2 個,要一個個驗證是否等于 740914799,無疑又是一項很大的工程,這就是典型的 NP 類問題。NP 類問題雖然難,但是可以很快驗證一個給定的答案,是否正確。

比如上面的題,我告訴你答案 a=22229,b=33331,你很快就能驗證答案是否正確了。而 NP-hard 問題則是比 NP 問題更難的問題,例如:圍棋。

也就是說并不能找到一個友好的算法,來解決哈密頓通路問題。

算法設計

雖然找到一個圖的哈密頓通路是 NP 困難的,但是好在游戲中的頂點不算太多,還是可以使用暴力一點的方法實現的,例如:圖的深度優先遍歷法(DFS) 即遞歸和回溯法思想。

算法流程:

①將當前頂點壓入已訪問棧和路徑棧中。

②將與當前頂點相通的頂點列出來。

③隨機選取一個相通的頂點,并判斷此頂點是否在已訪問棧中:

  • 在已訪問棧中則取另一個相通的頂點。
  • 不在則將這個相通的頂點作為當前頂點。
  • 若所有相通的頂點都在已訪問棧中, 則判斷路徑棧是否包含所有頂點。
  • 路徑棧中包含所有頂點,則路徑棧為當前圖的哈密頓通路。
  • 不包含所有頂點則回到父頂點, 并從已訪問棧和路徑棧中刪除。

④反復執行 1~3。

算法實現

上面說過圖的頂點和邊的關系可以用一個二維列表來描述:

  1. graph = [ 
  2.     [1, 6],    #0 
  3.     [0, 2],    #1 
  4.     [1, 7, 3], #2 
  5.     ... 
  6.     [24, 19]   #25 

但是要手動輸入這些頂點和邊的關系還是太麻煩了。仔細想了下,如果每個頂點的上下左右有頂點,就一定與上下左右的頂點有邊。

那么這個二維列表就可以簡化成

  1. graph = [ 
  2.     [1,1,1,1,1,1], 
  3.     [1,0,1,1,0,1], 
  4.     [1,1,1,1,1,1], 
  5.     [1,0,1,1,0,1], 
  6.     [1,1,1,1,1,1], 
  7.     [0,0,0,0,0,0]    #每個1代表一個頂點 1與上下左右的1都有邊 與0則沒有 長寬相等易于編寫代碼 

還可以再簡化成一維列表:

  1. graph = [ 
  2.     '111111'
  3.     '101101'
  4.     '111111'
  5.     '101101'
  6.     '111111'
  7.     '000000' 

簡直機智如我啊!于是我寫了個函數對一維列表進行轉換:

  1. def get_index(i, j, G): 
  2.     num = 0 
  3.     for a in xrange(i): 
  4.         num += G[a].count('0'
  5.     for b in xrange(j): 
  6.         if G[i][b] == '0'
  7.             num += 1 
  8.     return i * len(G) + j - num 
  9. def get_graph(G): 
  10.     G = [list(x) for x in G] 
  11.     EG = [] 
  12.     for i in xrange(len(G)): 
  13.         for j in range(len(G[i])): 
  14.             if G[i][j] == '0'
  15.                 continue 
  16.             side_list = [] 
  17.             if j+1 <= len(G[i]) - 1: 
  18.                 if G[i][j+1] == '1'
  19.                     index = get_index(i, j+1, G) 
  20.                     side_list.append(index
  21.             if j-1 >= 0: 
  22.                 if G[i][j-1] == '1'
  23.                     index = get_index(i, j-1, G) 
  24.                     side_list.append(index
  25.             if i+1 <= len(G) - 1: 
  26.                 if G[i+1][j] == '1'
  27.                     index = get_index(i+1, j, G) 
  28.                     side_list.append(index
  29.             if i-1 >= 0: 
  30.                 if G[i-1][j] == '1'
  31.                     index = get_index(i-1, j, G) 
  32.                     side_list.append(index
  33.             EG.append(side_list) 
  34.     return EG 

而算法的實現用圖的鄰接矩陣則更為方便,因此我寫了一個將上列二位列表轉換成鄰接矩陣形式的函數:

  1. def get_matrix(graph): 
  2.     result = [[0]*len(graph) for _ in xrange(len(graph))]  # 初始化 
  3.     for i in xrange(len(graph)): 
  4.         for j in graph[i]: 
  5.             result[i][j] = 1  # 有邊則為1 
  6.     return result 

主要的 DFS 算法如下:

  1. # graph為圖的鄰接矩陣 used為已訪問棧 path為路徑棧 step為已經遍歷的頂點的個數 
  2. def dfs(graph, path, used, step): 
  3.     if step == len(graph): # 判斷頂點是否被遍歷完畢 
  4.         print path 
  5.         return True 
  6.     else
  7.         for i in xrange(len(graph)): 
  8.             if not used[i] and graph[path[step-1]][i] == 1: 
  9.                 used[i] = True 
  10.                 path[step] = i 
  11.                 if dfs(graph, path, used, step+1): 
  12.                     return True 
  13.                 else
  14.                     used[i] = False  # 回溯 返回父節點 
  15.                     path[step] = -1 
  16.     return False 
  17. def main(graph, v): 
  18.     used = []  # 已訪問棧 
  19.     path = []  # 路徑棧 
  20.     for i in xrange(len(graph)): 
  21.         used.append(False)  # 初始化 所有頂點均未被遍歷 
  22.         path.append(-1)     # 初始化 未選中起點及到達任何頂點 
  23.     used[v] = True          # 表示從起點開始遍歷 
  24.     path[0] = v             # 表示哈密頓通路的***個頂點為起點 
  25.     dfs(graph, path, used, 1) 

完整代碼如下:

  1. #! /usr/bin/env python 
  2. # -*- coding: utf-8 -*- 
  3. # Coding with love by Naiquan. 
  4. def dfs(graph, path, used, step): 
  5.     if step == len(graph): 
  6.         print path 
  7.         return True 
  8.     else
  9.         for i in xrange(len(graph)): 
  10.             if not used[i] and graph[path[step-1]][i] == 1: 
  11.                 used[i] = True 
  12.                 path[step] = i 
  13.                 if dfs(graph, path, used, step+1): 
  14.                     return True 
  15.                 else
  16.                     used[i] = False 
  17.                     path[step] = -1 
  18.     return False 
  19. def main(graph, v): 
  20.     used = [] 
  21.     path = [] 
  22.     for i in xrange(len(graph)): 
  23.         used.append(False
  24.         path.append(-1) 
  25.     used[v] = True 
  26.     path[0] = v 
  27.     dfs(graph, path, used, 1) 
  28. def get_index(i, j, G): 
  29.     num = 0 
  30.     for a in xrange(i): 
  31.         num += G[a].count('0'
  32.     for b in xrange(j): 
  33.         if G[i][b] == '0'
  34.             num += 1 
  35.     return i * len(G) + j - num 
  36. def get_graph(G): 
  37.     G = [list(x) for x in G] 
  38.     EG = [] 
  39.     for i in xrange(len(G)): 
  40.         for j in range(len(G[i])): 
  41.             if G[i][j] == '0'
  42.                 continue 
  43.             side_list = [] 
  44.             if j+1 <= len(G[i]) - 1: 
  45.                 if G[i][j+1] == '1'
  46.                     index = get_index(i, j+1, G) 
  47.                     side_list.append(index
  48.             if j-1 >= 0: 
  49.                 if G[i][j-1] == '1'
  50.                     index = get_index(i, j-1, G) 
  51.                     side_list.append(index
  52.             if i+1 <= len(G) - 1: 
  53.                 if G[i+1][j] == '1'
  54.                     index = get_index(i+1, j, G) 
  55.                     side_list.append(index
  56.             if i-1 >= 0: 
  57.                 if G[i-1][j] == '1'
  58.                     index = get_index(i-1, j, G) 
  59.                     side_list.append(index
  60.             EG.append(side_list) 
  61.     return EG 
  62. def get_matrix(graph): 
  63.     result = [[0]*len(graph) for _ in xrange(len(graph))] 
  64.     for i in xrange(len(graph)): 
  65.         for j in graph[i]: 
  66.             result[i][j] = 1 
  67.     return result 
  68. if __name__ == '__main__'
  69.     map_list = [ 
  70.         '111111'
  71.         '101101'
  72.         '111111'
  73.         '101101'
  74.         '111111'
  75.         '000000' 
  76.     ] 
  77.     G = get_graph(map_list) 
  78.     map_matrix = get_matrix(G) 
  79.     # print map_matrix 
  80.     SP = 14 
  81.     main(map_matrix, SP) 

結束

在實現了功能后,我拿著這個程序成功過到了差不多一百關,然后就玩膩了,哈哈哈哈哈哈哈哈哈

本文參考資料:

  • 七橋問題_百度百科

https://baike.baidu.com/item/七橋問題/2580504?fr=aladdin

  • 哈密頓圖_百度百科

https://baike.baidu.com/item/哈密頓圖/2587317?fr=aladdin

  • 這個數學題我做可以,但世界毀滅了別怪我

https://www.bilibili.com/video/av19009866

  • 基于回溯法尋找哈密頓回路

http://www.cnblogs.com/cielosun/p/5654577.html

 

責任編輯:武曉燕 來源: 唯品會安全應急響應中心
相關推薦

2018-01-03 09:26:56

2018-04-26 14:41:47

機器漢字智能

2012-07-18 14:02:54

銳捷網絡

2018-01-15 13:58:46

架構技術棧微信半月刊

2022-03-24 07:57:58

Python水果忍者游戲

2020-08-04 18:23:37

戴爾

2025-11-10 09:29:54

2022-09-16 00:32:39

SQL數據庫習慣

2024-01-15 07:47:09

井字棋游戲編程練習Python

2023-12-07 08:37:49

TCC模式

2020-11-30 06:20:13

javascript

2012-11-13 10:32:22

2011-05-30 13:27:09

2022-04-25 21:50:09

前端JS面試題

2019-02-21 08:50:09

物聯網互聯網IOT

2021-05-04 16:38:54

Linux數學游戲

2015-03-19 10:12:36

下拉刷新開源組件

2013-08-23 09:37:32

PythonPython游戲Python教程

2018-07-03 16:16:24

營銷

2011-01-13 14:29:54

點贊
收藏

51CTO技術棧公眾號

国内老熟妇对白xxxxhd| 国产三级精品三级观看| 一根才成人网| 国产精品乱子久久久久| 国产激情美女久久久久久吹潮| 亚洲欧美在线视频免费| 成人情趣视频网站| 精品久久久久av影院| 国产一区亚洲二区三区| 黄色网页网址在线免费| 99视频国产精品| 国产欧美日韩高清| 亚洲黄色三级视频| 日韩精品久久| 日韩电影在线观看中文字幕| 999这里有精品| 亚洲精品动漫| 亚洲国产三级在线| 亚洲免费在线精品一区| 国产黄色av片| 人人狠狠综合久久亚洲| 久久99精品国产99久久6尤物| 美女脱光内衣内裤| 国产厕拍一区| 91精品国产一区二区三区| 韩国日本在线视频| 91高清视频在线观看| 国产精品久久久久久久久免费桃花 | 91xxx在线观看| 99久久免费视频.com| 亚洲影视九九影院在线观看| 中文字幕免费在线看| 亚洲精品美女| 欧美国产日韩在线| www.毛片com| 成人午夜国产| 夜夜嗨av一区二区三区四区| 日本黄色片在线播放| 999久久久久久久久6666| 欧美高清一级片在线| 中文字幕一区二区三区四区在线视频| 是的av在线| 午夜精品福利视频网站| 97碰在线视频| 欧美黄色视屏| 亚洲午夜精品网| 青青草视频国产| 在线看三级电影| 亚洲男人天堂av| 宅男一区二区三区| 九七久久人人| 亚洲日本乱码在线观看| 手机在线视频你懂的| 日本视频在线观看| 日韩毛片在线免费观看| 精品一区二区成人免费视频| 黄色小网站在线观看| 亚洲欧美日韩在线不卡| 天天干天天色天天爽| 99久久精品免费观看国产| 亚洲少妇30p| 中国一级大黄大黄大色毛片| dj大片免费在线观看| 夜夜嗨av一区二区三区四季av| 日韩不卡视频一区二区| eeuss鲁一区二区三区| 无吗不卡中文字幕| 无码精品国产一区二区三区免费| 欧美成人黑人| 欧美色区777第一页| 国产永久免费网站| 成人香蕉社区| 亚洲免费影视第一页| 免费看日本黄色片| 五月天久久久| 国内精久久久久久久久久人| 亚洲综合一二三| 国产亚洲精品福利| 欧洲一区二区在线观看| 福利小视频在线观看| 国产精品传媒视频| 女人色极品影院| 亚洲天堂手机| 在线不卡a资源高清| 亚洲精品无码久久久久久久| 玖玖玖免费嫩草在线影院一区| 亚洲美女av在线| 国产wwwwxxxx| 99日韩精品| 国产精品人人做人人爽| 国产黄色大片网站| 国产午夜精品理论片a级大结局| 国产av第一区| 成年美女黄网站色大片不卡| 欧美美女喷水视频| 中文字幕在线播放视频| 欧美日韩性在线观看| 欧美片一区二区三区| 中文字幕在线播| 国产一区二区不卡| 日韩福利一区二区三区| 羞羞污视频在线观看| 日本高清不卡在线观看| 亚洲成人激情小说| jvid福利在线一区二区| 欧美激情一区二区三区高清视频| 亚洲毛片一区二区三区| 国产999精品久久| 日韩在线电影一区| 日本电影在线观看| 欧美日韩国产一级二级| 日本黄色录像片| 午夜久久tv| 国产精品一区二区三区久久| 桃花色综合影院| 国产精品美女一区二区在线观看| 亚洲中文字幕无码中文字| japansex久久高清精品| 亚洲视频网站在线观看| 日本少妇吞精囗交| 国产久卡久卡久卡久卡视频精品| 日本一区二区三区在线视频| www视频在线观看| 日韩精品影音先锋| 在线观看黄网址| 欧美96一区二区免费视频| 精品欧美日韩| a'aaa级片在线观看| 日韩一区二区免费在线电影| 影音先锋男人资源在线观看| 久久一区二区三区超碰国产精品| 国模一区二区三区私拍视频| 日韩伦理av| 91.com在线观看| 免费看一级黄色| 日本vs亚洲vs韩国一区三区| 欧美日韩高清在线一区| 天堂中文av在线资源库| 亚洲精品一区在线观看| 国产一级片网址| 粉嫩aⅴ一区二区三区四区| eeuss中文| 国产精品xnxxcom| 久久av资源网站| 国产成人精品免费看视频| 综合婷婷亚洲小说| 欧洲在线免费视频| 亚洲破处大片| 99视频在线免费观看| 50度灰在线| 日韩精品一区二区三区在线播放| 欧美卡一卡二卡三| 国产91精品精华液一区二区三区 | 狠狠爱www人成狠狠爱综合网| 亚洲伊人一本大道中文字幕| 在线观看的网站你懂的| 日韩欧美一区二区在线视频| 亚洲欧美一区二区三区四区五区| 丁香六月综合激情| 久久久久免费看黄a片app| 日本精品影院| 国产精品吊钟奶在线| av在线播放网| 制服丝袜在线91| 日本不卡一区视频| 国产精品羞羞答答xxdd| 97超碰国产精品| 亚洲另类av| 国产精品久久久久久久9999| 免费理论片在线观看播放老| 在线观看91视频| 蜜桃精品一区二区| 蜜臀av性久久久久蜜臀aⅴ| 久久免费视频2| 露出调教综合另类| 欧美综合第一页| 日本三级在线播放完整版| 欧美一区二区三区色| 五月婷婷激情网| 国产又粗又大又爽视频| 日本一不卡视频| 一级全黄肉体裸体全过程| 成人性生交大片免费看96| 国产va免费精品高清在线观看| aaa在线观看| 日韩精品一区二区三区老鸭窝 | 激情欧美国产欧美| 免费久久99精品国产自| 日韩大陆av| 午夜精品久久17c| 成人高清在线| 精品av久久707| 中文字幕在线2019| 亚洲福利一区二区| 91麻豆制片厂| 成人av片在线观看| 999在线观看| 日韩视频三区| 强伦女教师2:伦理在线观看| 久久夜色电影| 91国产在线免费观看| 亚洲成a人片| 久久久久成人精品| 在线观看麻豆| 亚洲精品一区二区久| 国产av精国产传媒| 欧美性色aⅴ视频一区日韩精品| 久久精品无码人妻| 中文字幕在线不卡一区 | 亚洲春色一区二区三区| 在线观看欧美黄色| 精品美女久久久久| 亚洲综合久久久久| 国产成人免费在线观看视频| 91在线视频在线| 欧美xxxx黑人| 久久国产精品色婷婷| 欧美韩国日本在线| 亚洲美女视频在线免费观看 | 一区二区久久| 国产女主播av| 天天做天天爱天天综合网2021| 欧美日韩喷水| 亚洲第一二三区| 国产精选一区二区| 精品一区二区三区视频在线播放| 国产精品久久久久久久久久三级| 秋霞伦理一区| 午夜精品久久久久久久久久久久久| 成人在线网址| 日韩中文娱乐网| av网页在线| 国产一区二区三区欧美| 欧美日本网站| 亚洲毛片在线免费观看| 天天干,天天操,天天射| 精品国产髙清在线看国产毛片| 国产成人毛毛毛片| 欧美一区二区三区四区高清| 99久久久国产精品无码免费| 欧美精品久久一区二区三区| 亚洲特级黄色片| 欧美无砖专区一中文字| 亚洲中文无码av在线| 在线一区二区视频| 不卡av电影在线| 欧美影视一区二区三区| 嫩草影院一区二区三区| 91国偷自产一区二区开放时间 | 国产一区二区三区黄视频 | 中文字幕亚洲第一| 二区在线观看| 中文字幕亚洲专区| 欧洲美女少妇精品| 久久亚洲综合国产精品99麻豆精品福利 | jizz久久久久久| 国产精品日韩欧美综合| 欧美系列精品| 99视频在线| 日韩精选在线| 亚洲a∨一区二区三区| 91精品国偷自产在线电影 | 精品国产乱码久久久久久图片| 丰满人妻一区二区三区免费视频 | 韩国毛片一区二区三区| 一级淫片在线观看| 国产精品一级黄| 日本五十肥熟交尾| 久久久久国产精品厨房| x88av在线| 亚洲免费观看高清完整版在线观看| 精品无码一区二区三区蜜臀 | 神马国产精品影院av| 里番在线观看网站| 欧美第一黄色网| 在线视频cao| 91精品久久久久久综合乱菊| 51社区在线成人免费视频| 看高清中日韩色视频| 日本一区二区三区视频| 一二三四中文字幕| 销魂美女一区二区三区视频在线| 男女男精品视频站| 国产精品一区二区三区四区| 亚洲最大免费视频| 国产精品五月天| 国产真实乱人偷精品视频| 91成人国产精品| 国产成人精品一区二区无码呦| 亚洲美女www午夜| 污影院在线观看| 国产福利成人在线| 日韩08精品| 亚洲高清乱码| 国产视频亚洲| 久久精品无码一区二区三区毛片| 久久综合狠狠综合久久综合88| 日本爱爱小视频| 欧美午夜影院在线视频| xxxx18国产| 中文字幕av日韩| 欧美办公室脚交xxxx| 91色精品视频在线| 经典一区二区| 男人日女人视频网站| 狠狠色丁香婷婷综合| xxxxx在线观看| 午夜精品久久久久久久蜜桃app| 中文字幕一区2区3区| 亚洲黄色在线观看| av香蕉成人| 国产精品久久久久久久久久| 久久久亚洲欧洲日产| 大桥未久一区二区三区| 日韩国产高清在线| 国产精品一区二区入口九绯色| 亚洲嫩草精品久久| 在线观看日批视频| 亚洲美女性生活视频| av资源中文在线| 99热在线播放| 亚洲91中文字幕无线码三区| 久久久久久久片| 91视视频在线直接观看在线看网页在线看| 亚洲熟女www一区二区三区| 欧美视频一区二区三区在线观看| 亚洲av成人无码网天堂| 欧美国产极速在线| 国产精久久久| 一本二本三本亚洲码| 久久国产精品区| 中文字幕求饶的少妇| 欧美伊人久久久久久久久影院| 青青草手机在线| 欧美整片在线观看| 五月天亚洲一区| 成人av一级片| 91免费视频大全| 精品欧美一区二区三区免费观看| 欧美成人a在线| 午夜小视频福利在线观看| 成人在线视频福利| 在线成人直播| 蜜桃91精品入口| 亚洲欧美自偷自拍| 久久婷婷国产麻豆91天堂| 99精品国产九九国产精品| 国产系列第一页| 国产一区二区视频在线| 日韩三级在线观看视频| 欧美高清一级片在线| 欧美寡妇性猛交xxx免费| 春色成人在线视频| 亚洲精选国产| 麻豆精品免费视频| 欧美日韩一区二区在线观看视频 | 91av视频在线免费观看| 青青草这里只有精品| 国产精品亚洲αv天堂无码| 日本一区二区三区久久久久久久久不| 久久久久久久久久一级| 深夜福利一区二区| 精品一区二区三区中文字幕在线 | 欧美深深色噜噜狠狠yyy| 日本伊人精品一区二区三区观看方式| 国产精品69久久久久孕妇欧美| 欧美精品18+| 成人性生交大片免费看网站 | 蜜芽在线免费观看| 97超碰人人看人人 | **女人18毛片一区二区| 深夜视频在线观看| 欧美性色视频在线| 亚洲精品承认| 国产不卡一区二区在线观看| 免费日韩视频| 中文字幕无码日韩专区免费| 日韩一区二区精品葵司在线| 日本在线播放一二三区| 亚洲狠狠婷婷综合久久久| 国产精品资源在线看| 午夜毛片在线观看| 视频在线观看一区二区| 91成人入口| av五月天在线| 一区二区三区加勒比av| 神马精品久久| 国产视频福利一区| 99亚洲视频| 卡通动漫亚洲综合| 亚洲美女中文字幕| 国产一区一区| 日韩一级在线免费观看| 亚洲日本成人在线观看| 色视频精品视频在线观看| 成人免费xxxxx在线观看| 亚洲伊人网站| 免费在线观看黄色av| 在线电影av不卡网址| 成人香蕉社区|