久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

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

编程问答

DSA_常用10种算法(java数据结构与算法)

發布時間:2023/12/31 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DSA_常用10种算法(java数据结构与算法) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

常用10種算法

  • 二分查找算法(非遞歸)
    • 二分查找算法(非遞歸)介紹
    • 二分查找算法(非遞歸)代碼實現
  • 分治算法
    • 分治算法介紹
    • 分治算法的基本步驟
    • 分治算法最佳實踐-漢諾塔
      • 漢諾塔的傳說
      • 漢諾塔游戲的演示和思路分析:
      • 漢諾塔游戲的代碼實現:
  • 動態規劃算法
    • 動態規劃算法介紹
    • 背包問題
      • 背包問題
      • 思路分析
      • 圖解
    • 代碼實現
  • KMP 算法
    • 應用場景-字符串匹配問題
    • 暴力匹配算法
    • KMP 算法介紹
    • KMP 算法最佳應用-字符串匹配問題
      • 字符串匹配問題::
      • 思路分析圖解
      • 代碼實現
  • 貪心算法
    • 貪心算法介紹
    • 貪心算法注意事項和細節
    • 貪心算法最佳應用-集合覆蓋
      • 問題描述
      • 思路分析:
      • 代碼實現
  • 普里姆算法
    • 普里姆算法介紹
    • 普里姆算法最佳實踐(修路問題)
    • 最小生成樹
    • 代碼實現
  • 克魯斯卡爾算法
    • 克魯斯卡爾算法介紹
    • 應用場景-公交站問題
    • 克魯斯卡爾算法圖解說明
    • 克魯斯卡爾算法分析
    • 如何判斷是否構成回路
    • 代碼實現
  • 迪杰斯特拉算法
    • 迪杰斯特拉(Dijkstra)算法介紹
    • 迪杰斯特拉(Dijkstra)算法過程
    • 迪杰斯特拉(Dijkstra)算法最佳應用-最短路徑
      • 問題描述
      • 思路圖解
      • 代碼實現
  • 弗洛伊德算法
    • 弗洛伊德(Floyd)算法介紹
    • 弗洛伊德(Floyd)算法圖解分析
    • 弗洛伊德(Floyd)算法最佳應用-最短路徑
    • 代碼實現
    • 運行結果
  • 馬踏棋盤算法
    • 馬踏棋盤算法介紹和游戲演示
    • 思路圖解
    • 代碼實現

二分查找算法(非遞歸)

二分查找算法(非遞歸)介紹

  • 前面我們講過了二分查找算法,是使用遞歸的方式,下面我們講解二分查找算法的非遞歸方式
  • 二分查找法只適用于從有序的數列中進行查找(比如數字和字母等),將數列排序后再進行查找
  • 二分查找法的運行時間為對數時間 O(㏒?n) ,即查找到需要的目標位置最多只需要㏒?n 步,假設從[0,99]的 隊列(100 個數,即 n=100)中尋到目標數 30,則需要查找步數為㏒?100 , 即最多需要查找 7 次( 2^6 < 100 < 2^7)
  • 二分查找算法(非遞歸)代碼實現

    數組 {1,3, 8, 10, 11, 67, 100}, 編程實現二分查找, 要求使用非遞歸的方式完成.

    package cn.chasing.Algorithm.binarySearch;/*** @author 柴柴快樂每一天* @create 2021-08-23 10:50 上午* <p>* 『Stay hungry, stay foolish. 』*/ public class BinarySearchNoRecur {public static void main(String[] args) {//測試int[] arr = {1,3, 8, 10, 11, 67, 100};int index = binarySearch(arr, -100);System.out.println("index=" + index);}/*** 二分查找的非遞歸實現* @param arr 待查找的數組,arr是升序排列* @param target 需要查找的數* @return 返回對應下標,-1表示沒有找到*/public static int binarySearch(int[] arr, int target) {int left = 0;int right = arr.length - 1;int mid;while (left <= right) {mid = (left + right) / 2;if (target == arr[mid]) {return mid;}if (target < arr[mid]) {right = mid-1;} else {left = mid + 1;}}return -1;} }

    分治算法

    分治算法介紹

  • 分治法是一種很重要的算法。字面上的解釋是“分而治之”,就是把一個復雜的問題分成兩個或更多的相同或相似的子問題,再把子問題分成更小的子問題……直到最后子問題可以簡單的直接求解,原問題的解即子問題的解的合并。這個技巧是很多高效算法的基礎,如排序算法(快速排序,歸并排序),傅立葉變換(快速傅立葉變換)……

  • 分治算法可以求解的一些經典問題

    • 二分搜索

    • 大整數乘法

    • 棋盤覆蓋

    • 合并排序

    • 快速排序

    • 線性時間選擇

    • 最接近點對問題

    • 循環賽日程表

    • 漢諾塔

  • 分治算法的基本步驟

    分治法在每一層遞歸上都有三個步驟:

  • 分解:將原問題分解為若干個規模較小,相互獨立,與原問題形式相同的子問題
  • 解決:若子問題規模較小而容易被解決則直接解,否則遞歸地解各個子問題
  • 合并:將各個子問題的解合并為原問題的解。
  • 分治(Divide-and-Conquer§)算法設計模式如下:

    分治算法最佳實踐-漢諾塔

    漢諾塔的傳說

    漢諾塔:漢諾塔(又稱河內塔)問題是源于印度一個古老傳說的益智玩具。大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著 64 片黃金圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。并且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動一個圓盤。

    假如每秒鐘一次,共需多長時間呢?移完這些金片需要 5845.54 億年以上,太陽系的預期壽命據說也就是數百億年。真的過了 5845.54 億年,地球上的一切生命,連同梵塔、廟宇等,都早已經灰飛煙滅。

    漢諾塔游戲的演示和思路分析:

  • 如果是有一個盤, A->C

    如果我們有 n >= 2 情況,我們總是可以看做是兩個盤

    1.最下邊的盤 2. 上面的盤

  • 先把 最上面的盤 A->B

  • 把最下邊的盤 A->C

  • 把 B 塔的所有盤 從 B->C

  • 漢諾塔游戲的代碼實現:

    package cn.chasing.Algorithm.divideAndConquer;/*** @author 柴柴快樂每一天* @create 2021-08-23 3:45 下午* <p>* 『Stay hungry, stay foolish. 』*/ public class HanoiTower {public static void main(String[] args) {hanoiTower(3, 'A', 'B', 'C');}/*** 漢諾塔移動的方法,將起始塔a的所有圓盤借助輔助塔b移動到目標塔c* @param num 漢諾塔的層數* @param a 起始塔* @param b 輔助塔* @param c 目標塔*/public static void hanoiTower(int num, char a, char b, char c) {// 如果只有一個圓盤if (num == 1) {System.out.println("第1個圓盤從 " + a + "->" + c);} else {// 當 n >= 2 時,始終可以看做兩個圓盤:1. 最底部的一個盤;2. 上面的所有盤// 1. 先把最上面所有的盤移動從a->b,移動過程中會用到chanoiTower(num-1, a, c, b);// 2. 把最下面的盤移動到a->cSystem.out.println("第" + num + "個盤從 " + a + "->" + c);// 3. 把b塔上的所有盤從b->c,移動過程中會用到ahanoiTower(num-1, b, a, c);}} }

    動態規劃算法

    動態規劃算法介紹

  • 動態規劃(Dynamic Programming)算法的核心思想是:將大問題劃分為小問題進行解決,從而一步步獲取最優解 的處理算法
  • 動態規劃算法與分治算法類似,其基本思想也是將待求解問題分解成若干個子問題,先求解子問題,然后從這 些子問題的解得到原問題的解。
  • 與分治法不同的是,適合于用動態規劃求解的問題,經分解得到子問題往往不是互相獨立的。 ( 即下一個子階段的求解是建立在上一個子階段的解的基礎上,進行進一步的求解 )
  • 動態規劃可以通過填表的方式來逐步推進,得到最優解.
  • 背包問題

    背包問題

    有一個背包,容量為 4 磅 , 現有如下物品

  • 要求達到的目標為裝入的背包的總價值最大,并且重量不超出
  • 要求裝入的物品不能重復
  • 思路分析

  • 背包問題主要是指一個給定容量的背包、若干具有一定價值和重量的物品,如何選擇物品放入背包使物品的價 值最大。其中又分 01 背包和完全背包(完全背包指的是:每種物品都有無限件可用)
  • 這里的問題屬于 01 背包,即每個物品最多放一個。而無限背包可以轉化為 01 背包。
  • 算法的主要思想,利用動態規劃來解決。每次遍歷到的第 i 個物品,根據 weight[i]和 value[i]來確定是否需要將該物品放入背包中。即對于給定的 n 個物品,設 value[i]、weight[i]分別為第 i 個物品的價值和重量,C 為背包的容量。再令 vTable 表示在前 i 個物品中能夠裝入容量為 j 的背包中的最大價值。則我們有下面的結果:
  • vTable[i] [0] = vTable[0] [j] = 0;

    表示填入表第一行和第一列是 0

  • 當 weight[i] > j 時:

    vTable[i] [j] = vTable[i-1] [j]

    當準備加入新增的商品的容量大于當前背包的容量時,就直接使用上一個單元格的裝入策略

  • 當 w[i] <= j時:

    vTable[i] [j] = max{ vTable[i-1] [j], value[i] + vTable[i-1] [j-weight[i]] }

    當 準備加入的新增的商品的容量小于等于當前背包的容量,

  • 裝入的方式:

    j 為當前動態容量,i為商品下標

    vTable [i-1] [j]: 就是上一個單元格的裝入的最大值

    value[i] : 表示當前商品的價值

    vTable [i-1] [j-weight[i]] : 裝入 i-1 商品,到剩余空間 j-weight[i]的最大值

    當w[i] <= j時: vTable[i] [j] = max{vTable[i-1] [j], value[i] + vTable[i-1] [j-weight[i]] }

    圖解

    代碼實現

    package cn.chasing.Algorithm.dynamic;/*** @author 柴柴快樂每一天* @create 2021-08-23 5:44 下午* <p>* 『Stay hungry, stay foolish. 』*/ public class Knapsack {public static void main(String[] args) {// 物體的重量int[] weight = {0, 1, 4, 3};// 物體的價值int[] value = {0, 1500, 3000, 2000};// 背包的容量int capacity = 4;// 物體的個數int n = value.length;// 創建二維數組狀態表,vTable[i][j] 表示從前i個物品中,裝入到容量為j的背包中的最大價值// n個物品,第一個物品0磅,capacity+1是因為要保證表頭為0 1 2 3 4,不加1就沒有4int[][] vTable = new int[n][capacity + 1];// 存儲最優解的路徑int[][] path = new int[n][capacity+1];// 初始化第一行和第一列,使其都為0,但但是數組默認值為0,所以可以不處理// 進行動態規劃,從非0行列開始處理for (int i = 1; i < vTable.length; i++) {for (int j = 1; j < vTable[0].length; j++) {if (weight[i] > j) {vTable[i][j] = vTable[i - 1][j];} else {vTable[i][j] = Math.max(vTable[i - 1][j], value[i] + vTable[i - 1][j - weight[i]]);path[i][j] = 1;}}}// 輸出狀態表for (int i = 0; i < vTable.length; i++) {for (int j = 0; j < vTable[i].length; j++) {System.out.print(vTable[i][j] + " ");}System.out.println();}System.out.println("=========================");int i = path.length - 1;int j = path[0].length - 1;while (i > 0 && j > 0) {if (path[i][j] == 1) {System.out.printf("第%d個商品放入到背包\n", i);j -= weight[i];}i--;}} }

    KMP 算法

    應用場景-字符串匹配問題

    字符串匹配問題::

  • 有一個字符串 str1= ““硅硅谷 尚硅谷你尚硅 尚硅谷你尚硅谷你尚硅你好””,和一個子串 str2=“尚硅谷你尚硅你”
  • 現在要判斷 str1 是否含有 str2, 如果存在,就返回第一次出現的位置, 如果沒有,則返回-1
  • 暴力匹配算法

    如果用暴力匹配的思路,并假設現在 str1 匹配到 i 位置,子串 str2 匹配到 j 位置,則有:

  • 如果當前字符匹配成功(即 str1[i] == str2[j]),則 i++,j++,繼續匹配下一個字符
  • 如果失配(即 str1[i]! = str2[j]),令 i = i - (j - 1),j = 0。相當于每次匹配失敗時,i 回溯,j 被置為 0。
  • 用暴力方法解決的話就會有大量的回溯,每次只移動一位,若是不匹配,移動到下一位接著判斷,浪費了大量的時間。(不可行!)
  • 暴力匹配算法實現.
  • 代碼
  • KMP 算法介紹

  • KMP 是一個解決模式串在文本串是否出現過,如果出現過,最早出現的位置的經典算法
  • Knuth-Morris-Pratt 字符串查找算法,簡稱為 “KMP 算法”,常用于在一個文本串 S 內查找一個模式串 P 的出現位置,這個算法由 Donald Knuth、Vaughan Pratt、James H. Morris 三人于 1977 年聯合發表,故取這 3 人的 姓氏命名此算法.
  • KMP 方法算法就利用之前判斷過信息,通過一個 next 數組,保存模式串中前后最長公共子序列的長度,每次回溯時,通過 next 數組找到,前面匹配過的位置,省去了大量的計算時間
  • 參考資料:https://www.cnblogs.com/ZuoAndFutureGirl/p/9028287.html
  • KMP 算法最佳應用-字符串匹配問題

    字符串匹配問題::

  • 有一個字符串 str1= “BBC ABCDAB ABCDABCDABDE”,和一個子串 str2=“ABCDABD”

  • 現在要判斷 str1 是否含有 str2, 如果存在,就返回第一次出現的位置, 如果沒有,則返回-1

  • 要求:使用 KMP 算法完成判斷,不能使用簡單的暴力匹配算法.

  • 思路分析圖解

    舉例來說,有一個字符串 Str1 = “BBC ABCDAB ABCDABCDABDE”,判斷,里面是否包含另一個字符串 Str2 = “ABCDABD”?

  • 首先,用 Str1 的第一個字符和 Str2 的第一個字符去比較,不符合,關鍵詞向后移動一位
  • 重復第一步,還是不符合,再后移
  • 一直重復,直到 Str1 有一個字符與 Str2 的第一個字符符合為止
  • 接著比較字符串和搜索詞的下一個字符,還是符合。
  • 遇到 Str1 有一個字符與 Str2 對應的字符不符合。
  • 這時候,想到的是繼續遍歷 Str1 的下一個字符,重復第 1 步。(其實是很不明智的,因為此時 BCD 已經比較過了,沒有必要再做重復的工作,一個基本事實是,當空格與 D 不匹配時,你其實知道前面六個字符是”ABCDAB”。 KMP 算法的想法是,設法利用這個已知信息,不要把”搜索位置”移回已經比較過的位置,繼續把它向后移,這樣就提高了效率。)
  • 怎么做到把剛剛重復的步驟省略掉?可以對 Str2 計算出一張《部分匹配表》,這張表的產生在后面介紹
  • 已知空格與 D 不匹配時,前面六個字符”ABCDAB”是匹配的。查表可知,最后一個匹配字符 B 對應的”部分匹配值”為 2,因此按照下面的公式算出向后移動的位數:

    移動位數 = 已匹配的字符數 - 對應的部分匹配值

    因為 6 - 2 等于 4,所以將搜索詞向后移動 4 位。

  • 因為空格與C不匹配,搜索詞還要繼續往后移。這時,已匹配的字符數為 2(”AB”),對應的”部分匹配值” 為 0。所以,移動位數 = 2 - 0,結果為 2,于是將搜索詞向后移 2 位。

  • 因為空格與 A 不匹配,繼續后移一位。
  • 逐位比較,直到發現 C 與 D 不匹配。于是,移動位數 = 6 - 2,繼續將搜索詞向后移動 4 位。
  • 逐位比較,直到搜索詞的最后一位,發現完全匹配,于是搜索完成。如果還要繼續搜索(即找出全部匹配),移動位數 = 7 - 0,再將搜索詞向后移動 7 位,這里就不再重復了。
  • 介紹《部分匹配表》怎么產生的,先介紹前綴,后綴是什么
  • “部分匹配值”就是”前綴”和”后綴”的最長的共有元素的長度。以”ABCDABD”為例,

    • ”A”的前綴和后綴都為空集,共有元素的長度為 0;
    • ”AB”的前綴為[A],后綴為[B],共有元素的長度為 0;
    • ”ABC”的前綴為[A, AB],后綴為[BC, C],共有元素的長度 0;
    • ”ABCD”的前綴為[A, AB, ABC],后綴為[BCD, CD, D],共有元素的長度為 0;
    • ”ABCDA”的前綴為[A, AB, ABC, ABCD],后綴為[BCDA, CDA, DA, A],共有元素為”A”,長度為 1;
    • ”ABCDAB”的前綴為[A, AB, ABC, ABCD, ABCDA],后綴為[BCDAB, CDAB, DAB, AB, B],共有元素為”AB”,長度為 2;
    • ”ABCDABD”的前綴為[A, AB, ABC, ABCD, ABCDA, ABCDAB],后綴為[BCDABD, CDABD, DABD, ABD, BD, D],共有元素的長度為 0。
  • 部分匹配”的實質是,有時候,字符串頭部和尾部會有重復。比如,”ABCDAB”之中有兩個”AB”,那么它的”部分匹配值”就是 2(”AB”的長度)。搜索詞移動的時候,第一個”AB”向后移動 4 位(字符串長度- 部分匹配值),就可以來到第二個”AB”的位置。
  • 到此 KMP 算法思想分析完畢!

    代碼實現

    package cn.chasing.kmp;import java.util.Arrays;/*** @author 柴柴快樂每一天* @create 2021-08-23 11:02 下午* <p>* 『Stay hungry, stay foolish. 』*/ public class KMP {public static void main(String[] args) {String str1 = "BBC ABCDAB ABCDABCDABDE";String str2 = "ABCDABD"; // String str2 = "AABAAA";int[] next = kmpNext(str2);System.out.println("next = " + Arrays.toString(next));int index = kmpSearch(str1, str2, next);System.out.println(index);}public static int kmpSearch(String str, String dest, int[] next) {for (int i = 0, j = 0; i < str.length(); i++) {// 需要處理str.charAt(i) != dest.charAt(j),去調整j的位置while (j > 0 && str.charAt(i) != dest.charAt(j)) {j = next[j-1];}if (str.charAt(i) == dest.charAt(j)) {j++;}if (j == dest.length()) {return i-j+1;}}return -1;}/*** 獲取到一個字符串的部分匹配表* @param dest 目標字符串* @return 返回該字符串的部分匹配表*/public static int[] kmpNext(String dest) {// 創建一個next數組保存部分匹配值int[] next = new int[dest.length()];// 字符串長度為1,則部分匹配值的值為0next[0] = 0;// j一直在前綴活動,i在找對應的后綴for (int i = 1, j = 0; i < dest.length(); i++) {// 當 dest.charAt(i) != dest.charAt(j),需要從next[j-1]獲取新的j// 直到發現有 dest.charAt(i) == dest.charAt(j) 時才退出, j > 0防止next[j-1]越界while (j > 0 && dest.charAt(i) != dest.charAt(j)) {// j表示已經匹配上的位數。失配時,// 之前我們比較模式串和文本串時遇到沖突回退到next數組前一位代表的下標位置,現在我們也是匹配只不過匹配的時前綴(相當于模式串)和后綴(相當于文本串)j = next[j-1];}if (dest.charAt(i) == dest.charAt(j)) {j++;}next[i] = j;}return next;} }

    貪心算法

    貪心算法介紹

  • 貪婪算法(貪心算法)是指在對問題進行求解時,在每一步選擇中都采取最好或者最優(即最有利)的選擇,從而希望能夠導致結果是最好或者最優的算法
  • 貪婪算法所得到的結果不一定是最優的結果(有時候會是最優解),但是都是相對近似(接近)最優解的結果
  • 貪心算法注意事項和細節

  • 貪婪算法所得到的結果不一定是最優的結果(有時候會是最優解),但是都是相對近似(接近)最優解的結果
  • 比如上題的算法選出的是 K1, K2, K3, K5,符合覆蓋了全部的地區
  • 但是我們發現 K2, K3,K4,K5 也可以覆蓋全部地區,如果 K2 的使用成本低于 K1,那么我們上題的 K1, K2, K3, K5 雖然是滿足條件,但是并不是最優的.
  • 貪心算法最佳應用-集合覆蓋

    問題描述

    假設存在如下表的需要付費的廣播臺,以及廣播臺信號可以覆蓋的地區。 如何選擇最少的廣播臺,讓所有的地區都可以接收到信號

    思路分析:

    如何找出覆蓋所有地區的廣播臺的集合呢,使用窮舉法實現,列出每個可能的廣播臺的集合,這被稱為冪集。假設總的有 n 個廣播臺,則廣播臺的組合總共有 2? -1 個,假設每秒可以計算 10 個子集, 如圖:

    使用貪婪算法,效率高:

  • 目前并沒有算法可以快速計算得到準備的值, 使用貪婪算法,則可以得到非常接近的解,并且效率高。選擇策略上,因為需要覆蓋全部地區的最小集合:
  • 遍歷所有的廣播電臺, 找到一個覆蓋了最多未覆蓋的地區的電臺(此電臺可能包含一些已覆蓋的地區,但沒有關系)
  • 將這個電臺加入到一個集合中(比如 ArrayList), 想辦法把該電臺覆蓋的地區在下次比較時去掉。
  • 重復第 1 步直到覆蓋了全部的地區
  • 分析的圖解:

    代碼實現

    package cn.chasing.Algorithm.greedy;import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet;/*** @author 柴柴快樂每一天* @create 2021-08-25 10:45 上午* <p>* 『Stay hungry, stay foolish. 』*/ public class GreedyAlgorithm {public static void main(String[] args) {// 創建廣播電臺,放到MapHashMap<String, HashSet<String >> broadcasts = new HashMap<>();// 將各個電臺放到broadcastsHashSet<String> hashSet1 = new HashSet<String>();hashSet1.add("北京");hashSet1.add("上海");hashSet1.add("天津");HashSet<String> hashSet2 = new HashSet<String>();hashSet2.add("廣州");hashSet2.add("北京");hashSet2.add("深圳");HashSet<String> hashSet3 = new HashSet<String>();hashSet3.add("成都");hashSet3.add("上海");hashSet3.add("杭州");HashSet<String> hashSet4 = new HashSet<String>();hashSet4.add("上海");hashSet4.add("天津");HashSet<String> hashSet5 = new HashSet<String>();hashSet5.add("杭州");hashSet5.add("大連");//加入到mapbroadcasts.put("K1", hashSet1);broadcasts.put("K2", hashSet2);broadcasts.put("K3", hashSet3);broadcasts.put("K4", hashSet4);broadcasts.put("K5", hashSet5);//allAreas 存放所有的地區HashSet<String> allAreas = new HashSet<String>();allAreas.add("北京");allAreas.add("上海");allAreas.add("天津");allAreas.add("廣州");allAreas.add("深圳");allAreas.add("成都");allAreas.add("杭州");allAreas.add("大連");// 創建ArrayList,存放選擇的電臺集合ArrayList<String> selects = new ArrayList<>();// 定義一個臨時的集合,在遍歷過程中,存放該電臺覆蓋區域和當前allAreas剩余未覆蓋區域的交集HashSet<String> tempSet = new HashSet<>();// 定義maxKey,保存在遍歷過程中,能夠覆蓋最大未覆蓋區域的key// maxAreaSize是能夠覆蓋最大未覆蓋區域的tempSet的size// 當maxKey != null,加入到selectsString maxKey;Integer maxAreaSize = null;// 當allAreas 里還有元素,這說明還有未覆蓋到的區域while (allAreas.size() > 0) {// 每次遍歷比較前,需將上一次的maxKey清空maxKey = null;// 遍歷broadcasts,取出對應keyfor (String key : broadcasts.keySet()) {// 每一次for都要清空臨時settempSet.clear();// 獲取當前這個key可以覆蓋的地區HashSet<String> areas = broadcasts.get(key);tempSet.addAll(areas);// 求出tempSet和allAreas交集,結果會直接賦給tempSettempSet.retainAll(allAreas);// 第一次maxKey為null,通過判斷makKey == null 進入if賦初始maxKey;// 之后每一次for循環則比較當前key和maxKey對應覆蓋區域交集的大小,通過判斷tempSet.size() > maxAreas更新maxKeyif (tempSet.size() > 0 && (maxKey == null || tempSet.size() > maxAreaSize)) {maxKey = key;maxAreaSize = tempSet.size();}}// 一輪比較結束后,如果maxKey != null, 就把maxKey加入selectsif (maxKey != null) {selects.add(maxKey);// 將maxKey指向的廣播電臺覆蓋的區域,從allAreas中去掉allAreas.removeAll(broadcasts.get(maxKey));}}// K1, K2, K3, K5System.out.println("得到的選擇結果是:" + selects);} }

    普里姆算法

    普里姆算法介紹

    普利姆(Prim)算法求最小生成樹,也就是在包含 n 個頂點的連通圖中,找出只有(n-1)條邊包含所有 n 個頂點的

    連通子圖,也就是所謂的極小連通子圖

    普利姆的算法如下:

  • 設 G=(V,E)是連通網,T=(U,D)是最小生成樹,V,U 是頂點集合,E,D 是邊的集合

  • 若從頂點 u 開始構造最小生成樹,則從集合 V 中取出頂點 u 放入集合 U 中,標記頂點 v 的 visited[u]=1

  • 若集合 U 中頂點 ui 與集合 V-U 中的頂點 vj 之間存在邊,則尋找這些邊中權值最小的邊,但不能構成回路,將頂點 vj 加入集合 U 中,將邊(ui,vj)加入集合 D 中,標記 visited[vj]=1

  • 重復步驟②,直到 U 與 V 相等,即所有頂點都被標記為訪問過,此時 D 中有 n-1 條邊

  • 提示: 單獨看步驟很難理解,我們通過代碼來講解,比較好理解.

  • 圖解普利姆算法

  • 普里姆算法最佳實踐(修路問題)

  • 有勝利鄉有 7 個村莊(A, B, C, D, E, F, G) ,現在需要修路把 7 個村莊連通
  • 各個村莊的距離用邊線表示(權) ,比如 A – B 距離 5 公里
  • 問:如何修路保證各個村莊都能連通,并且總的修建公路總里程最短?
  • 思路:

    將 10 條邊,連接即可,但是總的里程數不是最小。正確的思路,就是盡可能的選擇少的路線,并且每條路線最小,保證總里程數最少。

    最小生成樹

    修路問題本質就是就是最小生成樹問題, 先介紹一下最小生成樹(Minimum Cost Spanning Tree),簡稱 MST。

    給定一個帶權的無向連通圖,如何選取一棵生成樹,使樹上所有邊上權的總和為最小,這叫最小生成樹

  • N 個頂點,一定有 N-1 條邊
  • 包含全部頂點

  • N-1 條邊都在圖中

  • 舉例說明(如圖:)

  • 求最小生成樹的算法主要是普里姆算法和克魯斯卡爾算法

  • 代碼實現

    package cn.chasing.Algorithm.prim;import java.util.Arrays;/*** @author 柴柴快樂每一天* @create 2021-08-25 4:07 下午* <p>* 『Stay hungry, stay foolish. 』*/ public class PrimAlgorithm {public static void main(String[] args) {//測試看看圖是否創建okchar[] data = new char[]{'A','B','C','D','E','F','G'};int verNum = data.length;//鄰接矩陣的關系使用二維數組表示,10000這個大數,表示兩個點不聯通int[][] weight = new int[][] {{10000,5,7,10000,10000,10000,2},{5,10000,10000,9,10000,10000,3},{7,10000,10000,10000,8,10000,10000},{10000,9,10000,10000,10000,4,10000},{10000,10000,8,10000,10000,5,4},{10000,10000,10000,4,5,10000,6},{2,3,10000,10000,4,6,10000}};// 創建MGraph對象MGraph graph = new MGraph(verNum, data, weight);// 創建一個MinTree對象MinTree minTree = new MinTree(graph);minTree.showGraphWeight();minTree.prim(1);} }/*** 創建最小生成樹*/ class MinTree {private MGraph mGraph;public MinTree(MGraph mGraph) {this.mGraph = mGraph;}/*** 顯示圖的鄰接矩陣*/public void showGraphWeight() {for (int[] link : this.mGraph.weight) {System.out.println(Arrays.toString(link));}}/*** 編寫prim算法,得到最小生成樹* @param v 表示從圖的第幾個頂點開始生成A->0 B->1*/public void prim(int v) {// 標記頂點是否被訪問過,默認值為0,表示未訪問過int[] visited = new int[this.mGraph.verNum];// 把當前節點標記已訪問visited[v] = 1;// h1, h2記錄聯通的兩點下標int h1 = -1, h2 = -1;int minWeight = 10000;// prim算法結束后,會產生的 邊 = 頂點-1for (int e = 0; e < this.mGraph.verNum - 1; e++) {// 確定當前生成的 子圖<X1, X2> 跟哪一個節點Y 距離最近// i 表示已經訪問過的節點,j表示未訪問的。實際不知道訪問沒有,直接都遍歷,拉進循環判斷for (int i = 0; i < this.mGraph.verNum; i++) {for (int j = 0; j < this.mGraph.verNum; j++) {if (visited[i] == 1 && visited[j] == 0 && mGraph.weight[i][j] < minWeight) {minWeight = mGraph.weight[i][j];h1 = i;h2 = j;}}}// 找到一條邊最小了System.out.println("邊<" + mGraph.data[h1] + ", " + mGraph.data[h2] + "> 權值:" + minWeight);// 將當前節點標記為已訪問visited[h2] = 1;minWeight = 10000;}} }class MGraph {/*** @param verNum 表示圖的節點個數* @param data 存放節點數據* @param weight 存放邊,即鄰接矩陣*/int verNum;char[] data;int[][] weight;public MGraph() {}/*** 初始化圖(村莊)* @param verNum 圖對應的頂點個數* @param data 圖各個頂點的值* @param weight 圖的鄰接矩陣*/public MGraph (int verNum, char[] data, int[][] weight) {this.verNum = verNum;this.data = new char[verNum];this.weight = new int[verNum][verNum];for (int i = 0; i < verNum; i++) {this.data[i] = data[i];for (int j = 0; j < verNum; j++) {this.weight[i][j] = weight[i][j];}}} }

    克魯斯卡爾算法

    克魯斯卡爾算法介紹

  • 克魯斯卡爾(Kruskal)算法,是用來求加權連通圖的最小生成樹的算法。
  • 基本思想:按照權值從小到大的順序選擇 n-1 條邊,并保證這 n-1 條邊不構成回路
  • 具體做法:首先構造一個只含 n 個頂點的森林,然后依權值從小到大從連通網中選擇邊加入到森林中,并使森林中不產生回路,直至森林變成一棵樹為止
  • 應用場景-公交站問題

    看一個應用場景和問題:

  • 某城市新增 7 個站點(A, B, C, D, E, F, G) ,現在需要修路把 7 個站點連通
  • 各個站點的距離用邊線表示(權) ,比如 A – B 距離 12 公里
  • 問:如何修路保證各個站點都能連通,并且總的修建公路總里程最短?
  • 克魯斯卡爾算法圖解說明

    以城市公交站問題來圖解說明 克魯斯卡爾算法的原理和步驟:

    在含有 n 個頂點的連通圖中選擇 n-1 條邊,構成一棵極小連通子圖,并使該連通子圖中 n-1 條邊上權值之和達到最小,則稱其為連通網的最小生成樹。

    例如,對于如上圖 G4 所示的連通網可以有多棵權值總和不相同的生成樹。

    以上圖 G4 為例,來對克魯斯卡爾進行演示(假設,用數組 R 保存最小生成樹結果)。

  • 將邊<E,F>加入 R 中。

    邊<E,F>的權值最小,因此將它加入到最小生成樹結果 R 中。

  • 將邊<C,D>加入 R 中。

    上一步操作之后,邊<C,D>的權值最小,因此將它加入到最小生成樹結果 R 中。

  • 將邊<D,E>加入 R 中。

    上一步操作之后,邊<D,E>的權值最小,因此將它加入到最小生成樹結果 R 中。

  • 將邊<B,F>加入 R 中。

    上一步操作之后,邊<C,E>的權值最小,但<C,E>會和已有的邊構成回路;因此,跳過邊<C,E>。同理,跳過邊<C,F>。將邊<B,F>加入到最小生成樹結果 R 中。

  • 將邊<E,G>加入 R 中。

    上一步操作之后,邊<E,G>的權值最小,因此將它加入到最小生成樹結果 R 中。

  • 將邊<A,B>加入 R 中。

    上一步操作之后,邊<F,G>的權值最小,但<F,G>會和已有的邊構成回路;因此,跳過邊<F,G>。同理,跳過邊<B,C>。將邊<A,B>加入到最小生成樹結果 R 中。

  • 此時,最小生成樹構造完成!它包括的邊依次是:

    <E,F> <C,D> <D,E> <B,F> <E,G> <A,B>

    克魯斯卡爾算法分析

    根據前面介紹的克魯斯卡爾算法的基本思想和做法,我們能夠了解到,克魯斯卡爾算法重點需要解決的以下兩個問題:

  • 對圖的所有邊按照權值大小進行排序。
  • 將邊添加到最小生成樹中時,怎么樣判斷是否形成了回路。
  • 問題一很好解決,采用排序算法進行排序即可。

    問題二,處理方式是:記錄頂點在"最小生成樹"中的終點,頂點的終點是"在最小生成樹中與它連通的最大頂點"。

    然后每次需要將一條邊添加到最小生存樹時,判斷該邊的兩個頂點的終點是否重合,重合的話則會構成回路。

    如何判斷是否構成回路

    在將<E,F> <C,D> <D,E>加入到最小生成樹 R 中之后,這幾條邊的頂點就都有了終點:

    • C 的終點是 F。
    • D 的終點是 F。
    • E 的終點是 F。
    • F 的終點是 F。

    關于終點的說明:

  • 就是將所有頂點按照從小到大的順序排列好之后;某個頂點的終點就是"與它連通的最大頂點"。

  • 因此,接下來,雖然<C,E>是權值最小的邊。但是 C 和 E 的終點都是 F,即它們的終點相同,因此,將<C,E> 加入最小生成樹的話,會形成回路。這就是判斷回路的方式。也就是說,我們加入的邊的兩個頂點不能都指向同一個終點,否則將構成回路。

  • 代碼實現

    package cn.chasing.Algorithm.kruskal;import java.util.Arrays;/*** @author 柴柴快樂每一天* @create 2021-08-25 11:05 下午* <p>* 『Stay hungry, stay foolish. 』*/ public class KruskalCaseDemo {private static final int INF = Integer.MAX_VALUE;public static void main(String[] args) {char[] vertexs = {'A', 'B', 'C', 'D', 'E', 'F', 'G'};//克魯斯卡爾算法的鄰接矩陣int matrix[][] = {/*A*//*B*//*C*//*D*//*E*//*F*//*G*//*A*/ { 0, 12, INF, INF, INF, 16, 14},/*B*/ { 12, 0, 10, INF, INF, 7, INF},/*C*/ { INF, 10, 0, 3, 5, 6, INF},/*D*/ { INF, INF, 3, 0, 4, INF, INF},/*E*/ { INF, INF, 5, 4, 0, 2, 8},/*F*/ { 16, 7, 6, INF, 2, 0, 9},/*G*/ { 14, INF, INF, INF, 8, 9, 0}};KruskalCase kruskalCase = new KruskalCase(vertexs, matrix);kruskalCase.showMatrix();kruskalCase.kruskal();} }class KruskalCase {/**邊的個數*/private int edgeNum;private char[] vertexes;private int[][] matrix;private Edge[] edges;private static final int INF = Integer.MAX_VALUE;/*** 創建最小生成樹,實現克魯斯卡爾算法* @param vertexes 頂點數組* @param matrix 鄰接矩陣*/public KruskalCase(char[] vertexes, int[][] matrix) {int vLen = vertexes.length;// 初始化頂點,復制拷貝數據的方式this.vertexes = new char[vLen];for (int i = 0; i < vLen; i++) {this.vertexes[i] = vertexes[i];}//初始化邊, 使用的是復制拷貝的方式this.matrix = new int[vLen][vLen];for(int i = 0; i < vLen; i++) {for(int j= 0; j < vLen; j++) {this.matrix[i][j] = matrix[i][j];}}// 統計邊的條數,AB和BA是一條邊,統計上三角,不算對角線,自己跟自己沒有算邊for (int i = 0; i < vLen; i++) {for (int j = i+1; j < vLen; j++) {if (this.matrix[i][j] != INF) {edgeNum++;}}}}/*** 打印鄰接矩陣*/public void showMatrix() {System.out.println("鄰接矩陣為: \n");for(int i = 0; i < vertexes.length; i++) {for(int j=0; j < vertexes.length; j++) {System.out.printf("%12d", matrix[i][j]);}System.out.println();//換行}}/*** 通過頂點的值返回其對應下標* @param c 頂點的值,如 A, B* @return 返回c對應的下標,找不到則返回-1*/public int getPosition(char c) {for (int i = 0; i < vertexes.length; i++) {if (vertexes[i] == c) {return i;}}return -1;}/*** 獲取圖中的邊的信息,存放到Edge[]數組中* 通過matrix鄰接矩陣來獲取* 數組形如[ ['A','B', 12], ['B','F',7], ..... ]*/public void setEdges() {int index = 0;this.edges = new Edge[edgeNum];for (int i = 0; i < vertexes.length; i++) {for (int j = i+1; j < vertexes.length; j++) {if (matrix[i][j] != INF) {// i始終比j小,對應后面ends[end1] = end2edges[index++] = new Edge(vertexes[i], vertexes[j], matrix[i][j]);}}}}/*** 對edges數組按照權值進行排序*/public void sortEdges() {Arrays.sort(this.edges);}/*** 獲取下標為i的頂點的終點下標,用于后面判斷兩個終點是否相同* @param ends 終點數組。數組動態記錄各個頂點在加入子圖后對應終點是哪個。ends在加入過程中動態更新* @param i 傳入的頂點的對應下標* @return 下標為i的頂點其對應的終點下標*/public int findEnd(int[] ends, int i) {// 終點數組ends[0,0,0,0,5,0,0,0,0,0,0,0]while (ends[i] != 0) {i = ends[i];}// 節點在未加入子圖時候,終點默認就是自己return i;}public void kruskal() {int index = 0;// 用于保存“已有最小生成樹”中的每個頂點在其中的終點,該數組動態更新int[] ends = new int[edgeNum];// 創建結果數組,保存最后的最小生成樹Edge[] res = new Edge[vertexes.length-1];// 獲取圖中所有邊的集合(12條)this.setEdges();System.out.println("圖的邊的集合=" + Arrays.toString(edges) + " 共"+ edges.length);// 按照邊的權值將邊排序this.sortEdges();System.out.println("圖的邊的集合=" + Arrays.toString(edges) + " 共"+ edges.length);// 遍歷edges數組,將邊添加到最小生成樹中,判斷準備加入的邊是否會形成回路for (int i = 0; i < edgeNum; i++) {// 獲取邊的兩個頂點int p1 = getPosition(edges[i].start);int p2 = getPosition(edges[i].end);// 分別獲取這兩個點對應的終點,ends初始化為[0,0,0,0,0,0,0,0,0,0,0,0]int end1 = findEnd(ends, p1);int end2 = findEnd(ends, p2);if (end1 != end2) {// 未構成回路,則替m對應的字符,設置在最小生成樹中的終點,如<E, F>。/*** @See setEdges() i永遠比j小,導致start對應字符永遠比end小*/ends[end1] = end2;res[index++] = edges[i];}}// 統計并打印最小生成樹//<E,F> <C,D> <D,E> <B,F> <E,G> <A,B>。System.out.println("最小生成樹為");for(int i = 0; i < index; i++) {System.out.println(res[i]);}}}class Edge implements Comparable<Edge>{char start;char end;int weight;/*** 對象實例表示一條邊* @param start 邊的一個頂點* @param end 邊的另一個頂點* @param weight 邊的權值*/public Edge(char start, char end, int weight) {this.start = start;this.end = end;this.weight = weight;}@Overridepublic int compareTo(Edge o) {return this.weight - o.weight;}@Overridepublic String toString() {return "Edge [<" + start + ", " + end + ">= " + weight + "]";} }

    迪杰斯特拉算法

    迪杰斯特拉(Dijkstra)算法介紹

    迪杰斯特拉(Dijkstra)算法是典型最短路徑算法,用于計算一個結點到其他結點的最短路徑。它的主要特點是以起始點為中心向外層層擴展(廣度優先搜索思想),直到擴展到終點為止。

    迪杰斯特拉(Dijkstra)算法過程

  • 設置出發頂點為 v,頂點集合 V{v1,v2,vi…},v 到 V 中各頂點的距離構成距離集合 Dis,Dis{d1,d2,di…},Dis集合記錄著 v 到圖中各頂點的距離(到自身可以看作 0,v 到 vi 距離對應為 di)

  • 從 Dis 中選擇值最小的 di 并移出 Dis 集合,同時移出 V 集合中對應的頂點 vi,此時的 v 到 vi 即為最短路徑

  • 更新 Dis 集合,更新規則為:比較 v 到 V 集合中頂點的距離值,與 v 通過 vi 到 V 集合中頂點的距離值,保留值較小的一個(同時也應該更新頂點的前驅節點為 vi,表明是通過 vi 到達的)

  • 重復執行兩步驟,直到最短路徑頂點為目標頂點即可結束

  • 迪杰斯特拉(Dijkstra)算法最佳應用-最短路徑

    問題描述

  • 戰爭時期,勝利鄉有 7 個村莊(A, B, C, D, E, F, G) ,現在有六個郵差,從 G 點出發,需要分別把郵件分別送到A, B, C , D, E, F 六個村莊

  • 各個村莊的距離用邊線表示(權) ,比如 A – B 距離 5 公里

  • 問:如何計算出 G 村莊到 其它各個村莊的最短距離?

  • 如果從其它點出發到各個點的最短距離又是多少?

  • 思路圖解

    代碼實現

    package cn.chasing.Algorithm.dijkstra;import java.util.Arrays;/*** @author 柴柴快樂每一天* @create 2021-08-26 3:09 下午* <p>* 『Stay hungry, stay foolish. 』*/ public class DijkstraAlgorithm {public static void main(String[] args) {char[] vertex = { 'A', 'B', 'C', 'D', 'E', 'F', 'G' };//鄰接矩陣int[][] matrix = new int[vertex.length][vertex.length];// 表示不可以連接final int N = 65535;matrix[0]=new int[]{N,5,7,N,N,N,2};matrix[1]=new int[]{5,N,N,9,N,N,3};matrix[2]=new int[]{7,N,N,N,8,N,N};matrix[3]=new int[]{N,9,N,N,N,4,N};matrix[4]=new int[]{N,N,8,N,N,5,4};matrix[5]=new int[]{N,N,N,4,5,N,6};matrix[6]=new int[]{2,3,N,N,4,6,N};//創建 Graph對象Graph graph = new Graph(vertex, matrix);//測試, 看看圖的鄰接矩陣是否okgraph.showGraph();//測試迪杰斯特拉算法graph.dijkstra(6);graph.showDijkstra();} }class Graph {private char[] vertex;private int[][] matrix;private Vertex ver;public Graph(char[] vertex, int[][] matrix) {this.vertex = vertex;this.matrix = matrix;}public void showDijkstra() {ver.showRes();}public void showGraph() {for (int[] ints : matrix) {System.out.println(Arrays.toString(ints));}}/*** 更新index頂點到其他頂點的距離,更新頂點的前驅頂點* 即更新dis,pre_visited* @param index 訪問頂點的下標*/private void update(int index) {// 表示 出發頂點 到index頂點的距離int distance = 0;// 遍歷matrix數組第index行的數據for (int i = 0; i < matrix[index].length; i++) {distance = ver.getDis(index) + matrix[index][i];if (!ver.isVisited(i) && distance < ver.getDis(i)) {ver.updateDis(distance, i);// 將index節點的前驅節點設置為iver.updatePre(i, index);}}}/*** 迪杰斯特拉算法實現* @param index 出發頂點的下標*/public void dijkstra(int index) {this.ver = new Vertex(vertex.length, index);// 更新距離和前驅節點update(index);for (int i = 0; i < vertex.length; i++) {// 選擇并返回新的訪問節點index = ver.updateArr();// 更新距離和前驅節點update(index);}} }class Vertex {/*** already_arr 記錄各個頂點是否訪問過* pre_visited 每個頂點對應的前一個頂點下標,動態更新* dis 記錄出發頂點到其他所有頂點的距離,會動態更新,始終保持最短距離*/public int[] already_arr;public int[] pre_visited;public int[] dis;/**** @param number 表示頂點的個數* @param index 出發頂點對應的下標*/public Vertex (int number, int index) {this.already_arr = new int[number];this.pre_visited = new int[number];this.dis = new int[number];// 初始化dis數組,到所有節點距離都為最大值,到自身為0Arrays.fill(dis, 65535);this.dis[index] = 0;// 設置出發節點已被訪問this.already_arr[index] = 1;}/*** 判斷下標為index的頂點是否被訪問* @param index 下標* @return 已被訪問則返回true,否則返回false*/public boolean isVisited (int index) {return already_arr[index] == 1;}/*** 返回出發頂點到index頂點的距離* @param index 頂點下標* @return 到該頂點的距離*/public int getDis(int index) {return dis[index];}/*** 更新出發頂點到index頂點的距離* @param len 新距離* @param index 頂點下標*/public void updateDis (int len, int index) {dis[index] = len;}/*** 更新index頂點的前驅節點* @param pre 新前驅節點* @param index 待更新節點*/public void updatePre(int pre, int index) {pre_visited[index] = pre;}/*** 繼續選擇并返回新的訪問頂點,但是并沒有更換出發節點* @return 返回新訪問頂點*/public int updateArr() {int min = 65535;int index = 0;for (int i = 0; i < already_arr.length; i++) {if (already_arr[i] == 0 && dis[i] < min) {min = dis[i];index = i;}}// 更新index頂點被訪問already_arr[index] = 1;return index;}/*** 顯示最后的結果,即將3個數組的情況輸出*/public void showRes() {System.out.println("===================");// 輸出already_arrfor (int i : already_arr) {System.out.print(i + " ");}System.out.println();// 輸出pre_visitedfor (int i : pre_visited) {System.out.print(i + " ");}System.out.println();// 輸出disfor (int di : dis) {System.out.print(di + " ");}System.out.println();char[] vertexes = { 'A', 'B', 'C', 'D', 'E', 'F', 'G' };int count = 0;for (int di : dis) {if (di != 65535) {System.out.println(vertexes[count++] + "(" + di + ") ");} else {System.out.println("N ");}}System.out.println();}}

    弗洛伊德算法

    弗洛伊德(Floyd)算法介紹

  • 和 Dijkstra 算法一樣,弗洛伊德(Floyd)算法也是一種用于尋找給定的加權圖中頂點間最短路徑的算法。該算法名稱以創始人之一、1978 年圖靈獎獲得者、斯坦福大學計算機科學系教授羅伯特·弗洛伊德命名
  • 弗洛伊德算法(Floyd)計算圖中各個頂點之間的最短路徑
  • 迪杰斯特拉算法用于計算圖中某一個頂點到其他頂點的最短路徑。
  • 弗洛伊德算法 VS 迪杰斯特拉算法:迪杰斯特拉算法通過選定的被訪問頂點,求出從出發訪問頂點到其他頂點的最短路徑;弗洛伊德算法中每一個頂點都是出發訪問點,所以需要將每一個頂點看做被訪問頂點,求出從每一個頂點到其他頂點的最短路徑。
  • 弗洛伊德(Floyd)算法圖解分析

  • 設置頂點 vi 到頂點 vk 的最短路徑已知為 Lik,頂點 vk 到 vj 的最短路徑已知為 Lkj,頂點 vi 到 vj 的路徑為 Lij,則 vi 到 vj 的最短路徑為:min((Lik+Lkj),Lij),vk 的取值為圖中所有頂點,則可獲得 vi 到 vj 的最短路徑

  • 至于 vi 到 vk 的最短路徑 Lik 或者 vk 到 vj 的最短路徑 Lkj,是以同樣的方式獲得

  • 弗洛伊德(Floyd)算法最佳應用-最短路徑

  • 勝利鄉有 7 個村莊(A, B, C, D, E, F, G)
  • 各個村莊的距離用邊線表示(權) ,比如 A – B 距離 5 公里
  • 問:如何計算出各村莊到 其它各村莊的最短距離?
  • 代碼實現

    package cn.chasing.Algorithm.floyd;import java.util.Arrays;/*** @author 柴柴快樂每一天* @create 2021-08-27 9:56 上午* <p>* 『Stay hungry, stay foolish. 』*/ public class FloydAlgorithm {public static void main(String[] args) {// 測試看看圖是否創建成功char[] vertex = { 'A', 'B', 'C', 'D', 'E', 'F', 'G' };//創建鄰接矩陣int[][] matrix = new int[vertex.length][vertex.length];final int N = 65535;matrix[0] = new int[] { 0, 5, 7, N, N, N, 2 };matrix[1] = new int[] { 5, 0, N, 9, N, N, 3 };matrix[2] = new int[] { 7, N, 0, N, 8, N, N };matrix[3] = new int[] { N, 9, N, 0, N, 4, N };matrix[4] = new int[] { N, N, 8, N, 0, 5, 4 };matrix[5] = new int[] { N, N, N, 4, 5, 0, 6 };matrix[6] = new int[] { 2, 3, N, N, 4, 6, 0 };//創建 Graph 對象Graph graph = new Graph( vertex,matrix);//調用弗洛伊德算法graph.floyd();graph.show();}}class Graph {/*** vertex 存放頂點的數組* dis 表示從各個頂點到其他結點的距離,動態更新,最后結果儲存在此數組中* pre 表示各節點的到達目標節點的中間節點*/private char[] vertex;private int[][] dis;private int[][] pre;public Graph (char[] vertex, int[][] matrix) {int len = vertex.length;this.vertex = vertex;this.dis = matrix;this.pre = new int[len][len];for (int i = 0; i < len; i++) {Arrays.fill(pre[i], i);}}public void show() {//為了顯示便于閱讀,我們優化一下輸出char[] vertex = { 'A', 'B', 'C', 'D', 'E', 'F', 'G' };for (int k = 0; k < dis.length; k++) {// 先將pre數組輸出的一行for (int i = 0; i < dis.length; i++) {System.out.printf(vertex[pre[k][i]] + "\t\t\t");}System.out.println();// 輸出dis數組的一行數據for (int i = 0; i < dis.length; i++) {System.out.print("("+vertex[k]+"->"+vertex[i]+"=" + dis[k][i] + ")\t");}System.out.println();System.out.println();}}public void floyd() {int len = 0;int disLen = dis.length;//對中間頂點遍歷, k 就是中間頂點的下標 [A, B, C, D, E, F, G]for (int k = 0; k < disLen; k++) {//從i頂點開始出發 [A, B, C, D, E, F, G]for (int i = 0; i < disLen; i++) {//到達j頂點 [A, B, C, D, E, F, G]for (int j = 0; j < disLen; j++) {/// => 求出從i頂點出發,經過k中間頂點,到達j頂點距離// ik之間也可能還有其他節點len = dis[i][k] + dis[k][j];if (len < dis[i][j]) {// 更新距離dis[i][j] = len;// 更新終點的前驅節點// i到j會經過的中間節點必然是k到j要經過的中間節點pre[i][j] = pre[k][j];}}}}} }

    運行結果

    馬踏棋盤算法

    馬踏棋盤算法介紹和游戲演示

  • 馬踏棋盤算法也被稱為騎士周游問題
  • 將馬隨機放在國際象棋的 8×8 棋盤 Board[0~7][0~7]的某個方格中,馬按走棋規則(馬走日字)進行移動。要求每個方格只進入一次,走遍棋盤上全部 64 個方格
  • 游戲演示: http://www.4399.com/flash/146267_2.htm
  • 思路圖解

  • 馬踏棋盤問題(騎士周游問題)實際上是圖的深度優先搜索(DFS)的應用。
  • 如果使用回溯(就是深度優先搜索)來解決,假如馬兒踏了 53 個點,如圖:走到了第 53 個,坐標(1,0),發現已經走到盡頭,沒辦法,那就只能回退了,查看其他的路徑,就在棋盤上不停的回溯……
  • 代碼實現

    package cn.chasing.Algorithm.knightTour;import java.awt.*; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator;/*** @author 柴柴快樂每一天* @create 2021-08-27 5:09 下午* <p>* 『Stay hungry, stay foolish. 』*/ public class KnightTourAlgorithm {public static void main(String[] args) {KnightTour knightTour = new KnightTour(8, 8);int row = 1;int column = 1;knightTour.knightTour(row-1, column-1, 1);for (int[] ints : knightTour.chessBoard) {System.out.println(Arrays.toString(ints));}} }class KnightTour {/*** X 列數* Y 行數* visited 標記各個位置是否被訪問過* finished 標記是否所有位置都已被訪問*/private int X;private int Y;private boolean[] visited;private boolean finished;public int[][] chessBoard;public KnightTour(int X, int Y) {this.X = X;this.Y = Y;this.visited = new boolean[X*Y];this.finished = false;this.chessBoard = new int[X][Y];}/*** 根據當前位置(Point對象),計算馬兒還能走哪些位置,并放到一個集合中,最多有8個位置* @param curPoint 當前馬兒的位置* @return 返回能走位置的集合*/public ArrayList<Point> next(Point curPoint) {// 創建一個ArrayListArrayList<Point> points = new ArrayList<>();// 創建一個PointPoint p = new Point();// 表示馬兒可以走p這個位置if ((p.x = curPoint.x - 2) >= 0 && (p.y = curPoint.y) >= 0) {points.add(new Point(p));}//判斷馬兒可以走6這個位置if((p.x = curPoint.x - 1) >=0 && (p.y=curPoint.y-2)>=0) {points.add(new Point(p));}//判斷馬兒可以走7這個位置if ((p.x = curPoint.x + 1) < X && (p.y = curPoint.y - 2) >= 0) {points.add(new Point(p));}//判斷馬兒可以走0這個位置if ((p.x = curPoint.x + 2) < X && (p.y = curPoint.y - 1) >= 0) {points.add(new Point(p));}//判斷馬兒可以走1這個位置if ((p.x = curPoint.x + 2) < X && (p.y = curPoint.y + 1) < Y) {points.add(new Point(p));}//判斷馬兒可以走2這個位置if ((p.x = curPoint.x + 1) < X && (p.y = curPoint.y + 2) < Y) {points.add(new Point(p));}//判斷馬兒可以走3這個位置if ((p.x = curPoint.x - 1) >= 0 && (p.y = curPoint.y + 2) < Y) {points.add(new Point(p));}//判斷馬兒可以走4這個位置if ((p.x = curPoint.x - 2) >= 0 && (p.y = curPoint.y + 1) < Y) {points.add(new Point(p));}return points;}/*** 將每一個能走的位置的下一個能走位置個數進行非遞減排序,減少回溯的次數* @param points 能走的位置集合*/public void sortNext(ArrayList<Point> points) {points.sort(new Comparator<Point>() {@Overridepublic int compare(Point o1, Point o2) {// 獲取到o1的下一步的所有位置個數int count1 = next(o1).size();int count2 = next(o2).size();if (count1 < count2) {return -1;} else if (count1 == count2) {return 0;} else {return 1;}}});}public void knightTour(int row, int column, int step) {this.chessBoard[row][column] = step;// 標記該位置已訪問this.visited[row*X+column] = true;// 獲取當前位置下一步可以走哪些位置ArrayList<Point> next = next(new Point(column, row));// 對next進行排序,貪心優化sortNext(next);// 遍歷nextwhile (!next.isEmpty()) {// 取出下一個可以走的位置Point p = next.remove(0);// 判斷該節點是否訪問過if (!visited[p.y*X + p.x]) {// 沒有訪問過則繼續knightTour(p.y, p.x, step+1);}}// 判斷馬兒是否完成任務,如果沒有,則將整個棋盤置為0// step < X*Y//1. 棋盤到目前位置,仍然沒有走完//2. 棋盤處于回溯狀態if (step < X*Y && !finished) {chessBoard[row][column] = 0;visited[row*X + column] = false;} else {finished = true;}}}

    總結

    以上是生活随笔為你收集整理的DSA_常用10种算法(java数据结构与算法)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    午夜精品一区二区三区在线观看 | 成人精品一区二区三区中文字幕 | 成人av无码一区二区三区 | 欧美第一黄网免费网站 | 亚洲中文字幕无码中文字在线 | 中文字幕无线码 | 日韩视频 中文字幕 视频一区 | 性生交片免费无码看人 | 99久久久国产精品无码免费 | 老熟妇乱子伦牲交视频 | 欧美日韩综合一区二区三区 | 人妻尝试又大又粗久久 | 精品国精品国产自在久国产87 | 国产suv精品一区二区五 | 婷婷丁香六月激情综合啪 | 国产内射爽爽大片视频社区在线 | 日韩精品无码一区二区中文字幕 | 波多野结衣av在线观看 | 免费中文字幕日韩欧美 | 亚洲日本va中文字幕 | 成人欧美一区二区三区黑人 | 丰满少妇弄高潮了www | 日本大乳高潮视频在线观看 | 精品无人国产偷自产在线 | 日本爽爽爽爽爽爽在线观看免 | 成人欧美一区二区三区黑人免费 | 欧美日韩综合一区二区三区 | 欧美日韩精品 | 成人欧美一区二区三区黑人 | 国产成人精品视频ⅴa片软件竹菊 | 国产亚洲欧美在线专区 | 精品水蜜桃久久久久久久 | 一个人看的视频www在线 | 亚洲综合无码一区二区三区 | 免费国产成人高清在线观看网站 | 无码精品人妻一区二区三区av | 在线观看国产一区二区三区 | 亚洲综合在线一区二区三区 | 国内精品一区二区三区不卡 | 国产人妻久久精品二区三区老狼 | 东京热无码av男人的天堂 | 亚洲中文字幕无码中字 | 极品尤物被啪到呻吟喷水 | 久久国产精品二国产精品 | 伊人久久大香线蕉亚洲 | 成人欧美一区二区三区黑人免费 | 国产极品视觉盛宴 | 一本久久伊人热热精品中文字幕 | 亚洲精品午夜国产va久久成人 | 欧美日韩在线亚洲综合国产人 | 国产亚洲精品久久久ai换 | 成年女人永久免费看片 | 在线天堂新版最新版在线8 | 人妻少妇精品无码专区二区 | 国产成人精品无码播放 | 人妻与老人中文字幕 | 国内少妇偷人精品视频免费 | 天天躁日日躁狠狠躁免费麻豆 | 国产精品无码一区二区三区不卡 | 野狼第一精品社区 | 欧美丰满老熟妇xxxxx性 | 99麻豆久久久国产精品免费 | 国产精品无码一区二区三区不卡 | 国产免费观看黄av片 | 久久精品一区二区三区四区 | 亚洲爆乳大丰满无码专区 | 人妻无码αv中文字幕久久琪琪布 | 7777奇米四色成人眼影 | 日韩视频 中文字幕 视频一区 | 四虎4hu永久免费 | 2019nv天堂香蕉在线观看 | 在线精品国产一区二区三区 | 欧美阿v高清资源不卡在线播放 | 国产极品美女高潮无套在线观看 | 成人女人看片免费视频放人 | 好男人www社区 | 亚洲日韩精品欧美一区二区 | 久久国内精品自在自线 | 狠狠色噜噜狠狠狠狠7777米奇 | 久久精品国产99久久6动漫 | 国产精品无码一区二区桃花视频 | 日韩精品乱码av一区二区 | 日韩av无码一区二区三区 | 国内精品一区二区三区不卡 | 国产亚洲日韩欧美另类第八页 | 亚洲精品午夜无码电影网 | 久久久久亚洲精品男人的天堂 | 成人影院yy111111在线观看 | 人人妻人人澡人人爽欧美一区 | 日韩av无码一区二区三区不卡 | 日韩亚洲欧美中文高清在线 | 精品一二三区久久aaa片 | 暴力强奷在线播放无码 | 性欧美牲交在线视频 | 欧美自拍另类欧美综合图片区 | 亚洲 a v无 码免 费 成 人 a v | 日韩av无码中文无码电影 | 成熟妇人a片免费看网站 | 国产亚洲精品久久久久久久久动漫 | 乱码av麻豆丝袜熟女系列 | 欧美人妻一区二区三区 | 欧洲vodafone精品性 | 国产成人亚洲综合无码 | 鲁鲁鲁爽爽爽在线视频观看 | 黑人粗大猛烈进出高潮视频 | 国产超碰人人爽人人做人人添 | 婷婷六月久久综合丁香 | 偷窥村妇洗澡毛毛多 | 牲欲强的熟妇农村老妇女视频 | 红桃av一区二区三区在线无码av | 三上悠亚人妻中文字幕在线 | a片在线免费观看 | 性做久久久久久久免费看 | 性色av无码免费一区二区三区 | 无码精品人妻一区二区三区av | 中文字幕乱码人妻无码久久 | 国产香蕉尹人视频在线 | 亚洲国产精品一区二区第一页 | 日本成熟视频免费视频 | 精品亚洲成av人在线观看 | 久久久久99精品成人片 | 日韩人妻无码一区二区三区久久99 | 日本乱人伦片中文三区 | 无套内射视频囯产 | 人人爽人人爽人人片av亚洲 | 国产国产精品人在线视 | 伊在人天堂亚洲香蕉精品区 | 精品无人区无码乱码毛片国产 | 老司机亚洲精品影院无码 | 人妻体内射精一区二区三四 | 欧美35页视频在线观看 | 熟妇人妻激情偷爽文 | 久久精品一区二区三区四区 | 强伦人妻一区二区三区视频18 | 日韩亚洲欧美精品综合 | 色婷婷av一区二区三区之红樱桃 | 女人高潮内射99精品 | 大地资源网第二页免费观看 | av在线亚洲欧洲日产一区二区 | 夜精品a片一区二区三区无码白浆 | 熟妇人妻无码xxx视频 | 日日天日日夜日日摸 | 成人影院yy111111在线观看 | 丰腴饱满的极品熟妇 | 国产精品久久久久久久影院 | 久久久久免费精品国产 | 人妻无码αv中文字幕久久琪琪布 | 久久久国产精品无码免费专区 | 精品乱码久久久久久久 | 亚洲国产精品美女久久久久 | 老太婆性杂交欧美肥老太 | aⅴ亚洲 日韩 色 图网站 播放 | 国产午夜亚洲精品不卡下载 | 综合激情五月综合激情五月激情1 | 久久久精品人妻久久影视 | 国产精品对白交换视频 | 国产人妻久久精品二区三区老狼 | 午夜肉伦伦影院 | a在线亚洲男人的天堂 | 亚洲一区二区三区偷拍女厕 | 国产乡下妇女做爰 | 国产做国产爱免费视频 | 波多野结衣乳巨码无在线观看 | 欧美亚洲日韩国产人成在线播放 | 一二三四在线观看免费视频 | 亚洲熟妇色xxxxx亚洲 | 国产又爽又猛又粗的视频a片 | 成人女人看片免费视频放人 | 性做久久久久久久久 | 奇米影视7777久久精品人人爽 | 亚洲色欲久久久综合网东京热 | 人妻互换免费中文字幕 | 无码精品国产va在线观看dvd | 熟妇人妻激情偷爽文 | 在线精品国产一区二区三区 | 国产成人无码区免费内射一片色欲 | 丰满人妻翻云覆雨呻吟视频 | 国产精品久久久久久无码 | 久久亚洲精品中文字幕无男同 | 亚洲爆乳精品无码一区二区三区 | 丰满人妻翻云覆雨呻吟视频 | 国产精品99久久精品爆乳 | 一本加勒比波多野结衣 | 无码播放一区二区三区 | 日韩精品无码一本二本三本色 | 亚洲日韩av一区二区三区中文 | 亚洲人成影院在线无码按摩店 | 18黄暴禁片在线观看 | 男女爱爱好爽视频免费看 | 欧美日本日韩 | 日本免费一区二区三区最新 | 欧美人与动性行为视频 | 中文字幕精品av一区二区五区 | 精品乱子伦一区二区三区 | 天堂а√在线中文在线 | 性生交大片免费看l | 娇妻被黑人粗大高潮白浆 | 婷婷五月综合激情中文字幕 | 亚洲男人av天堂午夜在 | 久久精品国产99精品亚洲 | 色狠狠av一区二区三区 | 免费国产成人高清在线观看网站 | 国产精品国产自线拍免费软件 | 国产亚洲视频中文字幕97精品 | 日韩人妻无码一区二区三区久久99 | 九九久久精品国产免费看小说 | 成人一区二区免费视频 | 久久无码中文字幕免费影院蜜桃 | 国产av人人夜夜澡人人爽麻豆 | 永久免费观看国产裸体美女 | 亚洲精品国偷拍自产在线观看蜜桃 | 天天燥日日燥 | 日韩av无码一区二区三区不卡 | 2020最新国产自产精品 | 天天av天天av天天透 | 初尝人妻少妇中文字幕 | 中文字幕无码免费久久9一区9 | 国产乱人偷精品人妻a片 | 久久99热只有频精品8 | 青青草原综合久久大伊人精品 | 国产欧美熟妇另类久久久 | 亚洲午夜福利在线观看 | 国语精品一区二区三区 | 亚洲自偷自偷在线制服 | 欧美xxxx黑人又粗又长 | 香港三级日本三级妇三级 | 人妻有码中文字幕在线 | 狂野欧美性猛交免费视频 | 国产精品亚洲а∨无码播放麻豆 | 国产美女精品一区二区三区 | 牲欲强的熟妇农村老妇女 | 日本va欧美va欧美va精品 | 亚洲一区二区三区无码久久 | 狠狠色噜噜狠狠狠7777奇米 | 国产精品人人爽人人做我的可爱 | 成熟妇人a片免费看网站 | 久久99精品国产麻豆蜜芽 | 2019午夜福利不卡片在线 | 人人妻人人澡人人爽欧美一区 | 久久97精品久久久久久久不卡 | 成人精品天堂一区二区三区 | 真人与拘做受免费视频 | 又大又黄又粗又爽的免费视频 | 两性色午夜视频免费播放 | 久久久久99精品国产片 | 中文字幕亚洲情99在线 | 国产国产精品人在线视 | 久久久精品人妻久久影视 | 永久免费精品精品永久-夜色 | 精品国产精品久久一区免费式 | 人人妻在人人 | 久青草影院在线观看国产 | 久久午夜无码鲁丝片午夜精品 | 日本熟妇人妻xxxxx人hd | 久久人妻内射无码一区三区 | 捆绑白丝粉色jk震动捧喷白浆 | 精品无码av一区二区三区 | 久久精品人妻少妇一区二区三区 | 免费中文字幕日韩欧美 | 日本一卡2卡3卡四卡精品网站 | 日日摸日日碰夜夜爽av | 性色欲情网站iwww九文堂 | 天天爽夜夜爽夜夜爽 | 婷婷五月综合缴情在线视频 | 桃花色综合影院 | 国产一区二区三区影院 | 国产乱码精品一品二品 | 又大又硬又黄的免费视频 | 狂野欧美性猛xxxx乱大交 | 国产av剧情md精品麻豆 | 国产卡一卡二卡三 | 人人澡人人透人人爽 | 欧美肥老太牲交大战 | 亚洲日本va午夜在线电影 | www国产亚洲精品久久网站 | 黑人巨大精品欧美一区二区 | 荫蒂添的好舒服视频囗交 | 亚洲综合久久一区二区 | 天天综合网天天综合色 | 日韩av无码一区二区三区不卡 | 国产免费观看黄av片 | 精品久久久久久亚洲精品 | av在线亚洲欧洲日产一区二区 | 丰满岳乱妇在线观看中字无码 | 亚洲 激情 小说 另类 欧美 | 久久国产劲爆∧v内射 | 精品人妻人人做人人爽夜夜爽 | 精品欧美一区二区三区久久久 | 国产艳妇av在线观看果冻传媒 | 久久人人97超碰a片精品 | 国产网红无码精品视频 | 男人的天堂2018无码 | 无码国产色欲xxxxx视频 | 欧美黑人巨大xxxxx | 亚洲一区二区三区含羞草 | 窝窝午夜理论片影院 | 亚洲成a人片在线观看无码 | 免费观看激色视频网站 | 亚洲国产精品一区二区第一页 | 亚洲日韩中文字幕在线播放 | 亚洲精品国偷拍自产在线观看蜜桃 | 天天燥日日燥 | 国产亚洲日韩欧美另类第八页 | 99久久久无码国产aaa精品 | аⅴ资源天堂资源库在线 | 无码午夜成人1000部免费视频 | 中文字幕av日韩精品一区二区 | 日本大乳高潮视频在线观看 | 国产精品人妻一区二区三区四 | 国产莉萝无码av在线播放 | 99久久精品无码一区二区毛片 | 亚洲色偷偷男人的天堂 | 日韩av无码中文无码电影 | 秋霞成人午夜鲁丝一区二区三区 | 亚洲色偷偷男人的天堂 | 亲嘴扒胸摸屁股激烈网站 | 精品少妇爆乳无码av无码专区 | 97精品人妻一区二区三区香蕉 | 成熟妇人a片免费看网站 | 亚洲成av人片在线观看无码不卡 | 99久久婷婷国产综合精品青草免费 | 亚洲国产一区二区三区在线观看 | 亚洲日韩一区二区 | 精品无码成人片一区二区98 | 少妇的肉体aa片免费 | 波多野结衣一区二区三区av免费 | 国产精品va在线播放 | 一个人看的视频www在线 | 性做久久久久久久久 | 国产麻豆精品精东影业av网站 | 国精品人妻无码一区二区三区蜜柚 | 亚洲а∨天堂久久精品2021 | 国产真实乱对白精彩久久 | 午夜性刺激在线视频免费 | 永久免费精品精品永久-夜色 | 亚洲欧美精品伊人久久 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 欧美老熟妇乱xxxxx | 国产福利视频一区二区 | 玩弄中年熟妇正在播放 | 久久99久久99精品中文字幕 | 国产高清不卡无码视频 | 国产亚洲精品精品国产亚洲综合 | 免费男性肉肉影院 | 影音先锋中文字幕无码 | 色综合久久久久综合一本到桃花网 | 国产亲子乱弄免费视频 | 日本乱人伦片中文三区 | 日韩精品无码一区二区中文字幕 | 日本肉体xxxx裸交 | 国产一区二区不卡老阿姨 | 久久这里只有精品视频9 | 伊在人天堂亚洲香蕉精品区 | 在线 国产 欧美 亚洲 天堂 | 亚洲自偷自拍另类第1页 | av人摸人人人澡人人超碰下载 | 特级做a爰片毛片免费69 | 在线a亚洲视频播放在线观看 | 成人精品视频一区二区三区尤物 | 国产精品久久国产精品99 | 欧美猛少妇色xxxxx | 女人被男人爽到呻吟的视频 | 久久亚洲中文字幕精品一区 | 国产suv精品一区二区五 | av人摸人人人澡人人超碰下载 | 欧美日韩在线亚洲综合国产人 | 大肉大捧一进一出视频出来呀 | 丰满人妻翻云覆雨呻吟视频 | 成人性做爰aaa片免费看不忠 | 97资源共享在线视频 | 乱人伦人妻中文字幕无码久久网 | 精品人妻人人做人人爽 | 人妻尝试又大又粗久久 | 伦伦影院午夜理论片 | 精品国产一区二区三区四区在线看 | 中文字幕乱码人妻无码久久 | 性生交大片免费看女人按摩摩 | 国产精品-区区久久久狼 | 欧美猛少妇色xxxxx | 亚洲人亚洲人成电影网站色 | 好爽又高潮了毛片免费下载 | 国产香蕉尹人综合在线观看 | 清纯唯美经典一区二区 | 日本肉体xxxx裸交 | 美女黄网站人色视频免费国产 | 亚洲精品一区二区三区大桥未久 | 久久久久久久人妻无码中文字幕爆 | 国产在线精品一区二区三区直播 | 色噜噜亚洲男人的天堂 | 欧美人与动性行为视频 | 漂亮人妻洗澡被公强 日日躁 | 国产精品沙发午睡系列 | 激情人妻另类人妻伦 | 亚洲大尺度无码无码专区 | 精品无码一区二区三区爱欲 | 奇米影视7777久久精品人人爽 | 国产精品对白交换视频 | 99久久精品日本一区二区免费 | 国产麻豆精品精东影业av网站 | 久久综合给久久狠狠97色 | 国产无遮挡又黄又爽免费视频 | 日韩欧美成人免费观看 | 一本久久a久久精品亚洲 | 欧美精品国产综合久久 | 欧美人与禽zoz0性伦交 | 一个人看的视频www在线 | 日韩精品无码免费一区二区三区 | 少妇太爽了在线观看 | 国内少妇偷人精品视频免费 | 国产日产欧产精品精品app | 六月丁香婷婷色狠狠久久 | 狠狠色色综合网站 | 国产亚洲精品久久久久久 | 亚洲综合久久一区二区 | 国产97色在线 | 免 | 老熟妇乱子伦牲交视频 | 久久精品99久久香蕉国产色戒 | 色情久久久av熟女人妻网站 | 亚洲区小说区激情区图片区 | 人妻与老人中文字幕 | 一本大道久久东京热无码av | 亚洲成a人片在线观看无码3d | 久久精品国产日本波多野结衣 | 亚洲精品久久久久avwww潮水 | 亚洲一区二区三区四区 | 高清国产亚洲精品自在久久 | √天堂资源地址中文在线 | 中文久久乱码一区二区 | 日韩欧美中文字幕公布 | 亚洲精品综合一区二区三区在线 | 中文字幕日韩精品一区二区三区 | www国产精品内射老师 | 性欧美videos高清精品 | 日本大乳高潮视频在线观看 | 色综合久久中文娱乐网 | 国产精品爱久久久久久久 | 国产精品资源一区二区 | 国产精品无码一区二区桃花视频 | 欧美老熟妇乱xxxxx | 久久99精品国产麻豆 | 久久zyz资源站无码中文动漫 | 伦伦影院午夜理论片 | 亚洲人成人无码网www国产 | 日韩欧美群交p片內射中文 | 日韩精品成人一区二区三区 | 日日麻批免费40分钟无码 | 欧美成人家庭影院 | 久久99精品国产.久久久久 | 曰韩无码二三区中文字幕 | 伊人色综合久久天天小片 | 免费国产成人高清在线观看网站 | 亚洲色偷偷偷综合网 | 无码av免费一区二区三区试看 | 亚洲日韩av片在线观看 | 性欧美videos高清精品 | 国产人妻人伦精品1国产丝袜 | 久久久久亚洲精品中文字幕 | 婷婷综合久久中文字幕蜜桃三电影 | 色一情一乱一伦一区二区三欧美 | 一二三四社区在线中文视频 | 女高中生第一次破苞av | 欧美 亚洲 国产 另类 | 国产人成高清在线视频99最全资源 | 无遮挡啪啪摇乳动态图 | 国产成人综合在线女婷五月99播放 | 久久精品国产亚洲精品 | 成人性做爰aaa片免费看 | 欧美丰满熟妇xxxx性ppx人交 | 夫妻免费无码v看片 | 国产精品对白交换视频 | 少妇被粗大的猛进出69影院 | 无码人妻出轨黑人中文字幕 | 中文亚洲成a人片在线观看 | 国产精品久久久久久亚洲影视内衣 | 夜夜高潮次次欢爽av女 | 美女黄网站人色视频免费国产 | 内射欧美老妇wbb | 性生交大片免费看女人按摩摩 | 国产情侣作爱视频免费观看 | 国产精品亚洲五月天高清 | 人人妻人人澡人人爽人人精品 | 日本护士xxxxhd少妇 | www国产亚洲精品久久久日本 | 性色欲网站人妻丰满中文久久不卡 | www国产精品内射老师 | 精品人妻av区 | 无码人妻av免费一区二区三区 | 欧美刺激性大交 | 色综合久久久无码中文字幕 | 大肉大捧一进一出好爽视频 | 一个人看的视频www在线 | 日本www一道久久久免费榴莲 | 夜夜影院未满十八勿进 | 永久免费观看美女裸体的网站 | 一本久久伊人热热精品中文字幕 | 日日鲁鲁鲁夜夜爽爽狠狠 | 高潮毛片无遮挡高清免费视频 | 欧美喷潮久久久xxxxx | 高中生自慰www网站 | 一本色道久久综合亚洲精品不卡 | 国产偷自视频区视频 | 免费无码一区二区三区蜜桃大 | 在线精品亚洲一区二区 | 中文字幕av无码一区二区三区电影 | aⅴ亚洲 日韩 色 图网站 播放 | 日韩av激情在线观看 | 精品 日韩 国产 欧美 视频 | 亚洲一区二区三区在线观看网站 | 国内精品久久毛片一区二区 | 激情亚洲一区国产精品 | 亚洲中文字幕在线观看 | 国产国语老龄妇女a片 | 亚洲伊人久久精品影院 | 无码任你躁久久久久久久 | 国产高潮视频在线观看 | 丰满人妻被黑人猛烈进入 | 国产一区二区三区日韩精品 | 我要看www免费看插插视频 | 国产精品无码成人午夜电影 | 无人区乱码一区二区三区 | 97se亚洲精品一区 | 黑人巨大精品欧美一区二区 | 熟女少妇在线视频播放 | 性欧美牲交xxxxx视频 | 老司机亚洲精品影院无码 | 久久午夜无码鲁丝片午夜精品 | 国内老熟妇对白xxxxhd | 日韩精品久久久肉伦网站 | 精品国产青草久久久久福利 | 色五月五月丁香亚洲综合网 | 少妇人妻av毛片在线看 | 无码人中文字幕 | 美女毛片一区二区三区四区 | 无码免费一区二区三区 | 亚洲欧美国产精品久久 | 中文字幕av日韩精品一区二区 | 成人一区二区免费视频 | 国产真人无遮挡作爱免费视频 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国内丰满熟女出轨videos | 国产精品无码一区二区三区不卡 | 国产精品免费大片 | 亚洲成av人影院在线观看 | 国产亲子乱弄免费视频 | 国产午夜亚洲精品不卡下载 | 亚洲人成人无码网www国产 | 亚洲成色www久久网站 | 国产极品视觉盛宴 | 欧美丰满熟妇xxxx性ppx人交 | 欧美人与物videos另类 | 亚洲日本va午夜在线电影 | 国产内射老熟女aaaa | 樱花草在线播放免费中文 | 日日摸天天摸爽爽狠狠97 | 日本精品久久久久中文字幕 | 无码人妻久久一区二区三区不卡 | 无码一区二区三区在线观看 | 天天躁日日躁狠狠躁免费麻豆 | 久久久久免费精品国产 | 久久久中文久久久无码 | 人人妻人人澡人人爽欧美一区 | 婷婷五月综合缴情在线视频 | 日日鲁鲁鲁夜夜爽爽狠狠 | 国産精品久久久久久久 | 天堂亚洲2017在线观看 | 99精品视频在线观看免费 | 精品国产青草久久久久福利 | 又紧又大又爽精品一区二区 | 午夜熟女插插xx免费视频 | 国产精品丝袜黑色高跟鞋 | 欧美老熟妇乱xxxxx | 日日夜夜撸啊撸 | 真人与拘做受免费视频 | 欧美性黑人极品hd | 亚洲理论电影在线观看 | 扒开双腿疯狂进出爽爽爽视频 | 领导边摸边吃奶边做爽在线观看 | 色欲久久久天天天综合网精品 | 给我免费的视频在线观看 | 扒开双腿疯狂进出爽爽爽视频 | 人妻无码αv中文字幕久久琪琪布 | 综合激情五月综合激情五月激情1 | 无遮挡啪啪摇乳动态图 | 久久99精品国产.久久久久 | 国产人成高清在线视频99最全资源 | 亚洲精品成人福利网站 | 中文字幕乱码亚洲无线三区 | 国产综合久久久久鬼色 | 亚洲国产一区二区三区在线观看 | 亚洲精品中文字幕 | 香蕉久久久久久av成人 | 午夜无码人妻av大片色欲 | 久热国产vs视频在线观看 | 亚洲国产一区二区三区在线观看 | 综合激情五月综合激情五月激情1 | 欧美阿v高清资源不卡在线播放 | 日日麻批免费40分钟无码 | 亚洲精品久久久久久一区二区 | 日本一区二区三区免费播放 | 亚洲国产欧美日韩精品一区二区三区 | 一本大道伊人av久久综合 | а√天堂www在线天堂小说 | 成人精品一区二区三区中文字幕 | 无码中文字幕色专区 | 在线观看免费人成视频 | 国产精品二区一区二区aⅴ污介绍 | 国产精品久久久久久久9999 | 国产免费观看黄av片 | 性色欲网站人妻丰满中文久久不卡 | 成人无码精品一区二区三区 | 乱码av麻豆丝袜熟女系列 | 在线精品国产一区二区三区 | 色综合久久88色综合天天 | 国产精品igao视频网 | 国产精品久久国产精品99 | 女人被爽到呻吟gif动态图视看 | 黑人玩弄人妻中文在线 | 又紧又大又爽精品一区二区 | 亚洲毛片av日韩av无码 | 亚洲熟妇色xxxxx欧美老妇 | 扒开双腿吃奶呻吟做受视频 | 精品亚洲韩国一区二区三区 | 夜精品a片一区二区三区无码白浆 | 精品无码av一区二区三区 | 亚洲色大成网站www国产 | 偷窥日本少妇撒尿chinese | 无码国产色欲xxxxx视频 | 水蜜桃色314在线观看 | 精品成在人线av无码免费看 | 成 人 免费观看网站 | 樱花草在线社区www | 国产精品无码成人午夜电影 | 超碰97人人做人人爱少妇 | 荫蒂添的好舒服视频囗交 | 性色欲网站人妻丰满中文久久不卡 | 中文字幕无码日韩专区 | 中文字幕人妻无码一夲道 | yw尤物av无码国产在线观看 | 国产三级久久久精品麻豆三级 | 狠狠躁日日躁夜夜躁2020 | 欧美老熟妇乱xxxxx | 免费无码肉片在线观看 | 精品久久久久久人妻无码中文字幕 | 国产色xx群视频射精 | 亚洲国产精品一区二区美利坚 | 国产乱码精品一品二品 | 高潮毛片无遮挡高清免费视频 | 国产人妻人伦精品1国产丝袜 | 婷婷综合久久中文字幕蜜桃三电影 | 99久久久无码国产aaa精品 | 在线播放免费人成毛片乱码 | 免费无码的av片在线观看 | 丰满少妇弄高潮了www | 亚洲の无码国产の无码步美 | 丰满人妻精品国产99aⅴ | 亚洲国产精品毛片av不卡在线 | 国产精品永久免费视频 | 久久久久成人片免费观看蜜芽 | 久久久久久a亚洲欧洲av冫 | 无码一区二区三区在线观看 | 麻豆av传媒蜜桃天美传媒 | 国产成人精品三级麻豆 | 国产亚av手机在线观看 | 狠狠综合久久久久综合网 | www成人国产高清内射 | 久久99国产综合精品 | 国内揄拍国内精品少妇国语 | 亚洲色欲久久久综合网东京热 | 欧美日本精品一区二区三区 | 国产精品丝袜黑色高跟鞋 | 亚洲欧美精品aaaaaa片 | 狠狠色色综合网站 | 巨爆乳无码视频在线观看 | 人妻尝试又大又粗久久 | 乱码av麻豆丝袜熟女系列 | 人妻插b视频一区二区三区 | 国产内射爽爽大片视频社区在线 | 男女爱爱好爽视频免费看 | 久久午夜无码鲁丝片秋霞 | 久久精品国产99精品亚洲 | 久久zyz资源站无码中文动漫 | 精品少妇爆乳无码av无码专区 | 国产9 9在线 | 中文 | 性做久久久久久久久 | 两性色午夜免费视频 | 成人综合网亚洲伊人 | 无码人妻丰满熟妇区毛片18 | 国产极品视觉盛宴 | 国产成人精品三级麻豆 | 漂亮人妻洗澡被公强 日日躁 | 丰满少妇人妻久久久久久 | 国产亚洲欧美日韩亚洲中文色 | 无码精品国产va在线观看dvd | 久久久精品欧美一区二区免费 | 真人与拘做受免费视频一 | 欧美 亚洲 国产 另类 | 全黄性性激高免费视频 | 女人被男人爽到呻吟的视频 | 成人亚洲精品久久久久软件 | 亚洲欧美精品aaaaaa片 | 日本精品久久久久中文字幕 | 无遮挡啪啪摇乳动态图 | 在线观看国产一区二区三区 | 十八禁视频网站在线观看 | 欧美日韩精品 | 欧洲精品码一区二区三区免费看 | 国产真实伦对白全集 | 亚洲 a v无 码免 费 成 人 a v | 国产成人无码午夜视频在线观看 | 国产又爽又猛又粗的视频a片 | 欧美刺激性大交 | 国产在线无码精品电影网 | 亚洲中文字幕久久无码 | 中文无码精品a∨在线观看不卡 | 亚洲色成人中文字幕网站 | 人人妻人人澡人人爽人人精品浪潮 | 亚洲aⅴ无码成人网站国产app | 激情爆乳一区二区三区 | 国产精品成人av在线观看 | 99精品国产综合久久久久五月天 | 精品国产一区av天美传媒 | 97精品人妻一区二区三区香蕉 | 青草青草久热国产精品 | 97精品人妻一区二区三区香蕉 | 波多野结衣aⅴ在线 | 久久成人a毛片免费观看网站 | 欧美日韩亚洲国产精品 | 亚洲国产成人a精品不卡在线 | 狠狠躁日日躁夜夜躁2020 | 丰满护士巨好爽好大乳 | 男女性色大片免费网站 | 亚洲乱码中文字幕在线 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 国产成人无码一二三区视频 | 少妇无码吹潮 | 亚洲欧美国产精品专区久久 | 丝袜 中出 制服 人妻 美腿 | 中文字幕乱码人妻无码久久 | 国产精品理论片在线观看 | 日本免费一区二区三区最新 | 免费无码的av片在线观看 | 成 人 网 站国产免费观看 | 波多野结衣乳巨码无在线观看 | 国内老熟妇对白xxxxhd | 天天爽夜夜爽夜夜爽 | 久久精品国产99精品亚洲 | 国产精品va在线播放 | 欧美猛少妇色xxxxx | 国产精品亚洲а∨无码播放麻豆 | 国产av无码专区亚洲a∨毛片 | 色老头在线一区二区三区 | 精品夜夜澡人妻无码av蜜桃 | 高潮毛片无遮挡高清免费视频 | 国产一精品一av一免费 | 午夜无码区在线观看 | 男人扒开女人内裤强吻桶进去 | 欧美老熟妇乱xxxxx | 国产九九九九九九九a片 | 日日噜噜噜噜夜夜爽亚洲精品 | 亚洲精品午夜无码电影网 | 亚洲爆乳精品无码一区二区三区 | 正在播放东北夫妻内射 | 国产乱人伦av在线无码 | 性色av无码免费一区二区三区 | 婷婷六月久久综合丁香 | 国产成人一区二区三区别 | 好爽又高潮了毛片免费下载 | 久久精品中文字幕一区 | 欧美第一黄网免费网站 | 亚洲国产精品一区二区美利坚 | 水蜜桃av无码 | 亚洲欧美日韩国产精品一区二区 | 国产成人一区二区三区在线观看 | 97精品人妻一区二区三区香蕉 | 国产精品怡红院永久免费 | 国产激情艳情在线看视频 | 日日干夜夜干 | 在线观看欧美一区二区三区 | 亚洲人成网站在线播放942 | 国产激情无码一区二区app | 奇米影视7777久久精品人人爽 | 亚洲日本一区二区三区在线 | 成人性做爰aaa片免费看 | 午夜无码人妻av大片色欲 | 久久久www成人免费毛片 | 老子影院午夜精品无码 | 亚洲色成人中文字幕网站 | 精品无码av一区二区三区 | 亚洲国产精品久久久天堂 | 国产口爆吞精在线视频 | 99精品视频在线观看免费 | 色窝窝无码一区二区三区色欲 | 亚洲一区二区三区 | 国产精品手机免费 | 国产av剧情md精品麻豆 | 国产在线无码精品电影网 | 成人性做爰aaa片免费看不忠 | 久久综合九色综合97网 | 国产成人无码一二三区视频 | 色欲av亚洲一区无码少妇 | 国产福利视频一区二区 | 国产成人精品视频ⅴa片软件竹菊 | 人妻熟女一区 | 亚洲自偷自偷在线制服 | 国产舌乚八伦偷品w中 | 又大又硬又黄的免费视频 | 亚洲人成影院在线观看 | 亚洲熟女一区二区三区 | 色婷婷综合激情综在线播放 | 人人爽人人澡人人高潮 | 成在人线av无码免费 | 中文字幕无码乱人伦 | 精品夜夜澡人妻无码av蜜桃 | 无码精品人妻一区二区三区av | 老熟妇乱子伦牲交视频 | 亚洲欧美日韩成人高清在线一区 | 国产明星裸体无码xxxx视频 | 国产日产欧产精品精品app | 亚洲 欧美 激情 小说 另类 | 中文精品久久久久人妻不卡 | 精品无人区无码乱码毛片国产 | 奇米影视7777久久精品人人爽 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 色婷婷av一区二区三区之红樱桃 | 亚洲精品一区二区三区四区五区 | 精品人妻人人做人人爽夜夜爽 | av无码不卡在线观看免费 | 东京热男人av天堂 | 自拍偷自拍亚洲精品被多人伦好爽 | 久久99热只有频精品8 | 99国产精品白浆在线观看免费 | 亚洲精品综合一区二区三区在线 | 免费人成在线观看网站 | 中文字幕av日韩精品一区二区 | 午夜福利不卡在线视频 | √8天堂资源地址中文在线 | 日韩精品a片一区二区三区妖精 | 国产亚洲人成a在线v网站 | 青青青手机频在线观看 | 成人精品视频一区二区 | 国产色xx群视频射精 | 九九在线中文字幕无码 | 在线观看免费人成视频 | 全黄性性激高免费视频 | 国产精品无码成人午夜电影 | 亚洲码国产精品高潮在线 | 久久无码中文字幕免费影院蜜桃 | 天堂а√在线中文在线 | 国产精品丝袜黑色高跟鞋 | 精品国偷自产在线 | 老熟女重囗味hdxx69 | 色欲av亚洲一区无码少妇 | 亚洲中文无码av永久不收费 | 男女爱爱好爽视频免费看 | 久久久久久亚洲精品a片成人 | 日日噜噜噜噜夜夜爽亚洲精品 | 亚洲成av人影院在线观看 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 国产精品va在线播放 | 一区二区三区高清视频一 | 色婷婷久久一区二区三区麻豆 | 丰满人妻一区二区三区免费视频 | 日本精品人妻无码77777 天堂一区人妻无码 | 无码帝国www无码专区色综合 | 荫蒂被男人添的好舒服爽免费视频 | 中文字幕精品av一区二区五区 | 国产在线无码精品电影网 | 人妻熟女一区 | 亚洲精品国产第一综合99久久 | 国产亚洲欧美日韩亚洲中文色 | 亚洲色大成网站www国产 | 久久久国产精品无码免费专区 | 成人亚洲精品久久久久 | 亚洲精品成人福利网站 | 亚洲欧洲日本无在线码 | 亚洲第一无码av无码专区 | 精品无码国产一区二区三区av | 国产又粗又硬又大爽黄老大爷视 | 最近中文2019字幕第二页 | 国产又粗又硬又大爽黄老大爷视 | 国产三级久久久精品麻豆三级 | 免费视频欧美无人区码 | 色婷婷综合中文久久一本 | 图片区 小说区 区 亚洲五月 | 欧美日韩一区二区三区自拍 | 最新国产麻豆aⅴ精品无码 | 日本丰满护士爆乳xxxx | 兔费看少妇性l交大片免费 | 丰满少妇弄高潮了www | 国内精品久久毛片一区二区 | 无码纯肉视频在线观看 | 欧美国产日韩久久mv | 99视频精品全部免费免费观看 | 男人的天堂av网站 | 精品一区二区三区波多野结衣 | a在线观看免费网站大全 | 人人妻人人澡人人爽精品欧美 | 欧美三级不卡在线观看 | 亚洲精品一区二区三区婷婷月 | 亚洲精品www久久久 | 欧美日韩综合一区二区三区 | 婷婷五月综合激情中文字幕 | 精品久久久无码中文字幕 | 亚洲欧美日韩成人高清在线一区 | 人人妻人人澡人人爽精品欧美 | 久久久av男人的天堂 | 国产尤物精品视频 | 精品国产青草久久久久福利 | 亚洲a无码综合a国产av中文 | 欧美三级a做爰在线观看 | 欧美性黑人极品hd | 色综合久久网 | 日本一卡二卡不卡视频查询 | 亚洲中文字幕乱码av波多ji | 精品厕所偷拍各类美女tp嘘嘘 | 动漫av网站免费观看 | 色 综合 欧美 亚洲 国产 | 亚洲综合另类小说色区 | 精品国精品国产自在久国产87 | 麻豆蜜桃av蜜臀av色欲av | 99久久亚洲精品无码毛片 | 无码纯肉视频在线观看 | 亚洲爆乳精品无码一区二区三区 | 波多野结衣aⅴ在线 | 免费人成在线观看网站 | 欧美日韩人成综合在线播放 | 永久免费精品精品永久-夜色 | 日韩人妻系列无码专区 | 亚洲大尺度无码无码专区 | 久久天天躁狠狠躁夜夜免费观看 | 久久国产自偷自偷免费一区调 | 国产成人精品视频ⅴa片软件竹菊 | 日韩欧美成人免费观看 | 又大又硬又爽免费视频 | 中文字幕无码免费久久9一区9 | 欧美三级a做爰在线观看 | 成人欧美一区二区三区黑人免费 | 国产麻豆精品精东影业av网站 | www成人国产高清内射 | 狂野欧美性猛xxxx乱大交 | 亚洲欧美精品伊人久久 | 在线成人www免费观看视频 | 一二三四在线观看免费视频 | 中文久久乱码一区二区 | 十八禁视频网站在线观看 | 精品日本一区二区三区在线观看 | 日日碰狠狠躁久久躁蜜桃 | 欧美xxxxx精品 | 国产成人无码av一区二区 | 久久五月精品中文字幕 | 无码一区二区三区在线 | 国产午夜无码精品免费看 | 少妇被粗大的猛进出69影院 | 久久综合给合久久狠狠狠97色 | 国内精品一区二区三区不卡 | 六月丁香婷婷色狠狠久久 | 国产无av码在线观看 | 国产无遮挡吃胸膜奶免费看 | 国产莉萝无码av在线播放 | 精品无人区无码乱码毛片国产 | 国产精品久久久久久无码 | 在线播放亚洲第一字幕 | 亚洲熟妇色xxxxx欧美老妇 | 精品亚洲成av人在线观看 | 国产99久久精品一区二区 | 思思久久99热只有频精品66 | 给我免费的视频在线观看 | 亚洲另类伦春色综合小说 | 婷婷丁香五月天综合东京热 | 任你躁国产自任一区二区三区 | 在教室伦流澡到高潮hnp视频 | 日产精品高潮呻吟av久久 | 日日躁夜夜躁狠狠躁 | 精品午夜福利在线观看 | 久久久久久av无码免费看大片 | 欧美喷潮久久久xxxxx | 亚洲综合在线一区二区三区 | 久久久精品国产sm最大网站 | 精品人人妻人人澡人人爽人人 | 日韩av无码中文无码电影 | 色综合久久久无码中文字幕 | 少妇被粗大的猛进出69影院 | 久久午夜夜伦鲁鲁片无码免费 | 蜜臀av在线播放 久久综合激激的五月天 | 激情内射亚州一区二区三区爱妻 | 国产三级久久久精品麻豆三级 | 青草视频在线播放 | 最新版天堂资源中文官网 | 天堂а√在线地址中文在线 | 国产内射爽爽大片视频社区在线 | 国产色精品久久人妻 | 欧美三级a做爰在线观看 | 国产国语老龄妇女a片 | 综合网日日天干夜夜久久 | 国产成人无码专区 | 3d动漫精品啪啪一区二区中 | 300部国产真实乱 | 日韩欧美群交p片內射中文 | 熟女体下毛毛黑森林 | 色综合天天综合狠狠爱 | 日本免费一区二区三区最新 | 欧美性黑人极品hd | 欧美人与物videos另类 | 欧美性猛交xxxx富婆 | 骚片av蜜桃精品一区 | 99久久人妻精品免费一区 | 一个人看的视频www在线 | 激情五月综合色婷婷一区二区 | 麻豆人妻少妇精品无码专区 | 久久无码中文字幕免费影院蜜桃 | 中文字幕无码免费久久9一区9 | 午夜理论片yy44880影院 | 亚洲日韩一区二区三区 | 国产成人午夜福利在线播放 | а√资源新版在线天堂 | 少妇性l交大片欧洲热妇乱xxx | 欧美性黑人极品hd | 久久亚洲中文字幕精品一区 | 久久精品中文闷骚内射 | 少女韩国电视剧在线观看完整 | 亚洲欧美综合区丁香五月小说 | 女人被男人躁得好爽免费视频 | 99久久久无码国产精品免费 | 亚洲 另类 在线 欧美 制服 | 久久天天躁狠狠躁夜夜免费观看 | 国产精品久久久久久无码 | 国产精品久久久久久无码 | 国产猛烈高潮尖叫视频免费 | 亚洲精品中文字幕乱码 | 丰满少妇高潮惨叫视频 | 日本一本二本三区免费 | 久久国产精品二国产精品 | 好屌草这里只有精品 | 国产综合久久久久鬼色 | 成人精品视频一区二区 | 国产精品无套呻吟在线 | 欧美日韩久久久精品a片 | 色欲综合久久中文字幕网 | 久久久www成人免费毛片 | 国产精品a成v人在线播放 | 亚洲 激情 小说 另类 欧美 | 高潮毛片无遮挡高清免费视频 | 亚洲日韩一区二区三区 | 天天拍夜夜添久久精品 | 波多野结衣 黑人 | 亚洲欧洲日本综合aⅴ在线 | 午夜丰满少妇性开放视频 | 在线成人www免费观看视频 | 欧美xxxx黑人又粗又长 | 高清国产亚洲精品自在久久 | 4hu四虎永久在线观看 | 国产舌乚八伦偷品w中 | 少妇被粗大的猛进出69影院 | 2020久久香蕉国产线看观看 | 精品aⅴ一区二区三区 | 国产精品视频免费播放 | 水蜜桃亚洲一二三四在线 | 亚洲国产精华液网站w | 双乳奶水饱满少妇呻吟 | 精品无码成人片一区二区98 | 中文无码精品a∨在线观看不卡 | 狠狠躁日日躁夜夜躁2020 | 日韩无码专区 | 亚洲人成网站在线播放942 | 妺妺窝人体色www婷婷 | 波多野42部无码喷潮在线 | 啦啦啦www在线观看免费视频 | 97人妻精品一区二区三区 | 国内少妇偷人精品视频免费 | 亚洲另类伦春色综合小说 | 国产亚洲精品久久久久久大师 | 麻豆国产丝袜白领秘书在线观看 | 精品无人国产偷自产在线 | 亚洲国产精品久久久天堂 | 亚洲欧美色中文字幕在线 | www一区二区www免费 | 2020久久香蕉国产线看观看 | 午夜熟女插插xx免费视频 | av无码久久久久不卡免费网站 | 学生妹亚洲一区二区 | 樱花草在线社区www | 俺去俺来也在线www色官网 | 风流少妇按摩来高潮 | 麻豆果冻传媒2021精品传媒一区下载 | 精品一二三区久久aaa片 | 国产综合色产在线精品 | 午夜免费福利小电影 | 久久99精品国产麻豆 | 亚洲经典千人经典日产 | 少妇性荡欲午夜性开放视频剧场 | 国产区女主播在线观看 | 国产精华av午夜在线观看 | 无码精品人妻一区二区三区av | 久久久久久a亚洲欧洲av冫 | 午夜精品久久久内射近拍高清 | 中文字幕色婷婷在线视频 | 久久久久久久人妻无码中文字幕爆 | 中文亚洲成a人片在线观看 | 国产精品高潮呻吟av久久4虎 | 少妇人妻大乳在线视频 | 男女下面进入的视频免费午夜 | 国产av一区二区三区最新精品 | 久久久无码中文字幕久... | 99久久婷婷国产综合精品青草免费 | 少妇的肉体aa片免费 | 牛和人交xxxx欧美 | 扒开双腿吃奶呻吟做受视频 | 国产人妻人伦精品 | 亚洲日韩av一区二区三区中文 | 国产麻豆精品精东影业av网站 | 久久久久久久久888 | 日本护士xxxxhd少妇 | 久激情内射婷内射蜜桃人妖 | 欧美乱妇无乱码大黄a片 | 亚洲自偷精品视频自拍 | 国产精品久久久久影院嫩草 | 亚洲一区二区观看播放 | 欧美 日韩 亚洲 在线 | 在线观看国产午夜福利片 | 欧美熟妇另类久久久久久不卡 | 久久精品国产日本波多野结衣 | 台湾无码一区二区 | 欧美喷潮久久久xxxxx | 中文字幕无码av激情不卡 | 无码吃奶揉捏奶头高潮视频 | 六十路熟妇乱子伦 | 亚洲乱码中文字幕在线 | 成人试看120秒体验区 | 人人妻在人人 | 亚洲日韩精品欧美一区二区 | 亚洲一区二区三区国产精华液 | 少妇被粗大的猛进出69影院 | 人妻夜夜爽天天爽三区 | 少妇人妻偷人精品无码视频 | 丰满妇女强制高潮18xxxx | 永久免费观看国产裸体美女 | 影音先锋中文字幕无码 | 性生交片免费无码看人 | 国产成人精品无码播放 | 国产精品亚洲а∨无码播放麻豆 | 无码纯肉视频在线观看 | 午夜无码人妻av大片色欲 | 好男人www社区 | 国产免费久久久久久无码 | 国产精品第一国产精品 | 亚洲国产av美女网站 | 亚洲一区二区三区偷拍女厕 | 精品无码一区二区三区爱欲 | 亚洲欧美综合区丁香五月小说 | 又大又黄又粗又爽的免费视频 | 亚洲色无码一区二区三区 | 国产精品二区一区二区aⅴ污介绍 | 无码播放一区二区三区 | 精品国偷自产在线视频 | 亚洲一区二区三区在线观看网站 | 日韩av无码中文无码电影 | 亚洲 高清 成人 动漫 | 麻豆果冻传媒2021精品传媒一区下载 | 精品人妻人人做人人爽夜夜爽 | 久激情内射婷内射蜜桃人妖 | 日日摸夜夜摸狠狠摸婷婷 | 国内精品人妻无码久久久影院 | 婷婷丁香六月激情综合啪 | 亚洲大尺度无码无码专区 | 高潮毛片无遮挡高清免费视频 | 天天拍夜夜添久久精品 | 中文字幕无码免费久久9一区9 | 又色又爽又黄的美女裸体网站 | 天天拍夜夜添久久精品大 | 天天躁夜夜躁狠狠是什么心态 | 人人妻人人澡人人爽人人精品浪潮 | 天天摸天天碰天天添 | 国产97人人超碰caoprom | 日韩亚洲欧美中文高清在线 | 久久精品视频在线看15 | 国产精品欧美成人 | 国产无遮挡又黄又爽又色 | 中文字幕人妻无码一区二区三区 | 亚洲 欧美 激情 小说 另类 | 亚洲狠狠婷婷综合久久 | 国产精品久久福利网站 | 国产无遮挡吃胸膜奶免费看 | 内射后入在线观看一区 | 日本精品久久久久中文字幕 | 性开放的女人aaa片 | аⅴ资源天堂资源库在线 | 日本一卡二卡不卡视频查询 | 狂野欧美性猛xxxx乱大交 | 99在线 | 亚洲 | 亚洲精品久久久久久一区二区 | 成人精品视频一区二区三区尤物 | 久久精品女人的天堂av | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 成人一区二区免费视频 | 99久久精品国产一区二区蜜芽 | 人妻aⅴ无码一区二区三区 | 中文字幕无码日韩专区 | 极品尤物被啪到呻吟喷水 | 成熟女人特级毛片www免费 | 久久人人爽人人人人片 | 国产av一区二区三区最新精品 | 无遮无挡爽爽免费视频 | 天堂无码人妻精品一区二区三区 | 午夜精品一区二区三区在线观看 | 青春草在线视频免费观看 | 国内揄拍国内精品人妻 | 18无码粉嫩小泬无套在线观看 | 色婷婷综合中文久久一本 | 狠狠色噜噜狠狠狠狠7777米奇 | 午夜精品久久久久久久 | 国产亚洲视频中文字幕97精品 | 亚洲自偷精品视频自拍 | 国产成人精品优优av | 无码人妻精品一区二区三区不卡 | 蜜桃av抽搐高潮一区二区 | 2020最新国产自产精品 | 18精品久久久无码午夜福利 | av小次郎收藏 | 精品亚洲韩国一区二区三区 | 久久久久se色偷偷亚洲精品av | 欧美 日韩 人妻 高清 中文 | 国产色在线 | 国产 | 久久国产精品偷任你爽任你 | 奇米影视888欧美在线观看 | 亚洲色欲色欲欲www在线 | 人人妻人人澡人人爽欧美精品 | 国产成人久久精品流白浆 | 中国女人内谢69xxxx | 色一情一乱一伦一视频免费看 | 欧美第一黄网免费网站 | 免费观看又污又黄的网站 | 久久成人a毛片免费观看网站 | 国产精品怡红院永久免费 | 无码一区二区三区在线 | 奇米影视7777久久精品 | 扒开双腿吃奶呻吟做受视频 | 极品尤物被啪到呻吟喷水 | 亚洲中文字幕av在天堂 | 色情久久久av熟女人妻网站 | 色一情一乱一伦一区二区三欧美 | 亚洲午夜无码久久 | 免费无码av一区二区 | 精品无码一区二区三区的天堂 | 亚洲国产精品一区二区第一页 | 成人无码视频免费播放 | 久久久精品人妻久久影视 | 成人欧美一区二区三区黑人 | 高潮毛片无遮挡高清免费 | 51国偷自产一区二区三区 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产内射老熟女aaaa | 国精品人妻无码一区二区三区蜜柚 | 1000部啪啪未满十八勿入下载 | 日本精品人妻无码免费大全 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 一个人看的视频www在线 | 少妇的肉体aa片免费 | 欧美喷潮久久久xxxxx | 久久精品中文字幕一区 | 欧洲vodafone精品性 | а√天堂www在线天堂小说 | 性生交大片免费看女人按摩摩 | 无码一区二区三区在线观看 | 久久天天躁狠狠躁夜夜免费观看 | 国产国语老龄妇女a片 | 成人三级无码视频在线观看 | 狠狠噜狠狠狠狠丁香五月 | 人人妻人人藻人人爽欧美一区 | 国产精品亚洲а∨无码播放麻豆 | 熟妇人妻中文av无码 | 亚洲自偷自偷在线制服 | 亚洲成色在线综合网站 | 精品成人av一区二区三区 | 久久久久成人片免费观看蜜芽 | 我要看www免费看插插视频 | 国产成人精品久久亚洲高清不卡 | 国产猛烈高潮尖叫视频免费 | 日本乱偷人妻中文字幕 | 国产熟女一区二区三区四区五区 | 久久久www成人免费毛片 | 男人扒开女人内裤强吻桶进去 | 内射爽无广熟女亚洲 | 亚洲国产午夜精品理论片 | 日韩无套无码精品 | 巨爆乳无码视频在线观看 | 国产成人精品视频ⅴa片软件竹菊 | 国产精品亚洲一区二区三区喷水 | 亚洲精品成人av在线 | 少妇被粗大的猛进出69影院 | 欧美精品一区二区精品久久 | 婷婷综合久久中文字幕蜜桃三电影 | 久久久成人毛片无码 | 欧洲vodafone精品性 | 国产艳妇av在线观看果冻传媒 | 久久无码人妻影院 | av在线亚洲欧洲日产一区二区 | 99久久精品午夜一区二区 | 四虎国产精品一区二区 | 日韩欧美群交p片內射中文 | 精品午夜福利在线观看 | 成熟女人特级毛片www免费 | 亚洲色欲色欲欲www在线 | 久久久久av无码免费网 | 国产午夜亚洲精品不卡 | 欧美成人免费全部网站 | 日本乱偷人妻中文字幕 | 蜜臀aⅴ国产精品久久久国产老师 | 大地资源中文第3页 | 欧洲精品码一区二区三区免费看 | 国产精品亚洲综合色区韩国 | 99久久久国产精品无码免费 | 牲欲强的熟妇农村老妇女视频 | 男人扒开女人内裤强吻桶进去 | 久久五月精品中文字幕 | 国内揄拍国内精品少妇国语 | 久久99久久99精品中文字幕 | 一区二区三区高清视频一 | 国产真人无遮挡作爱免费视频 | 色婷婷久久一区二区三区麻豆 | 国产黑色丝袜在线播放 | 丝袜美腿亚洲一区二区 | 精品夜夜澡人妻无码av蜜桃 | 永久免费观看美女裸体的网站 | 国产av久久久久精东av | 丰满少妇女裸体bbw | 美女黄网站人色视频免费国产 | 无码纯肉视频在线观看 | 精品厕所偷拍各类美女tp嘘嘘 | 学生妹亚洲一区二区 | 偷窥日本少妇撒尿chinese | 久久久久成人片免费观看蜜芽 | 精品一区二区不卡无码av | 无码人妻少妇伦在线电影 | 国产成人综合美国十次 | 国精品人妻无码一区二区三区蜜柚 | 樱花草在线播放免费中文 | 免费国产黄网站在线观看 | 免费观看又污又黄的网站 | 中文字幕av日韩精品一区二区 | 国产suv精品一区二区五 | 成人一在线视频日韩国产 | 久9re热视频这里只有精品 | 99精品视频在线观看免费 | 成人无码影片精品久久久 | 日日橹狠狠爱欧美视频 | 亚洲熟妇色xxxxx欧美老妇y | 亚洲色在线无码国产精品不卡 | 无码国产色欲xxxxx视频 | 国产精品久久国产精品99 | 国产成人无码午夜视频在线观看 | 国产一区二区三区四区五区加勒比 | 国产美女极度色诱视频www | 国精品人妻无码一区二区三区蜜柚 | 88国产精品欧美一区二区三区 | 色综合久久久久综合一本到桃花网 | 日本成熟视频免费视频 | 97资源共享在线视频 | 任你躁在线精品免费 | 国产亚洲精品久久久久久国模美 | 精品 日韩 国产 欧美 视频 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 无码国产色欲xxxxx视频 | 激情亚洲一区国产精品 | 日韩av无码一区二区三区 | 狂野欧美性猛xxxx乱大交 | 国产精品igao视频网 | 国产超级va在线观看视频 | 日日鲁鲁鲁夜夜爽爽狠狠 | 人妻少妇精品久久 | 亚洲阿v天堂在线 | 中文字幕人妻丝袜二区 | 狠狠噜狠狠狠狠丁香五月 | 国产激情艳情在线看视频 | 免费国产成人高清在线观看网站 | 无码av中文字幕免费放 | 久久zyz资源站无码中文动漫 | 亚洲欧洲中文日韩av乱码 | 久久综合久久自在自线精品自 | 西西人体www44rt大胆高清 | 一本久久a久久精品亚洲 | 久久国内精品自在自线 | 亚洲爆乳大丰满无码专区 | 午夜福利试看120秒体验区 | 国产人妻久久精品二区三区老狼 | 国产农村乱对白刺激视频 | 成人片黄网站色大片免费观看 | 亚洲人成网站在线播放942 | 久久久久99精品成人片 | 欧洲欧美人成视频在线 | 图片区 小说区 区 亚洲五月 | 国内精品人妻无码久久久影院蜜桃 | 欧美老妇与禽交 | 国产亚洲精品久久久久久久久动漫 | 亚洲一区二区三区含羞草 | 最新国产乱人伦偷精品免费网站 | 国产香蕉尹人综合在线观看 | 国产农村乱对白刺激视频 | 99久久精品国产一区二区蜜芽 | 久久久久久av无码免费看大片 | 特级做a爰片毛片免费69 | 亚洲熟妇色xxxxx欧美老妇 | 人人澡人人透人人爽 | 国内少妇偷人精品视频 | 国产一区二区不卡老阿姨 | 日本熟妇大屁股人妻 | 国产亚洲精品久久久ai换 | 国产乱人伦av在线无码 | 97人妻精品一区二区三区 | 成人精品一区二区三区中文字幕 | 国产精品久久久一区二区三区 | 精品无码国产自产拍在线观看蜜 | 丰满少妇高潮惨叫视频 | 蜜桃臀无码内射一区二区三区 | 波多野结衣aⅴ在线 | 色五月丁香五月综合五月 | 天下第一社区视频www日本 | 精品无人国产偷自产在线 | 荫蒂添的好舒服视频囗交 | 国产精品va在线观看无码 | 无码人妻黑人中文字幕 | 无码吃奶揉捏奶头高潮视频 | 日本精品少妇一区二区三区 | 亚洲第一网站男人都懂 | 毛片内射-百度 | 久久亚洲中文字幕精品一区 | 国精品人妻无码一区二区三区蜜柚 | 蜜桃臀无码内射一区二区三区 | 国产亚av手机在线观看 | 一个人看的www免费视频在线观看 | 无码中文字幕色专区 | 久久伊人色av天堂九九小黄鸭 | 国产亚洲精品久久久久久久久动漫 | 久久久久av无码免费网 | 亚洲国产综合无码一区 | 一个人看的视频www在线 | 成人无码影片精品久久久 | 欧美丰满熟妇xxxx | 免费国产成人高清在线观看网站 | 丰满岳乱妇在线观看中字无码 | 国产又爽又猛又粗的视频a片 | 日韩少妇白浆无码系列 | 国产亚洲欧美在线专区 | 麻豆果冻传媒2021精品传媒一区下载 | 久久国产自偷自偷免费一区调 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 国产精品美女久久久 | 丰满少妇弄高潮了www | 乱人伦人妻中文字幕无码 | 欧美日韩色另类综合 | 人妻体内射精一区二区三四 | 十八禁视频网站在线观看 | 亚洲成av人在线观看网址 | 日本熟妇大屁股人妻 | 久久这里只有精品视频9 | 国产国语老龄妇女a片 | 国产极品视觉盛宴 | 久久久久成人精品免费播放动漫 | 国产精品美女久久久网av | www国产精品内射老师 | 国产精品福利视频导航 | 国产网红无码精品视频 | 欧美野外疯狂做受xxxx高潮 | www国产亚洲精品久久网站 | 99久久久国产精品无码免费 | 性欧美熟妇videofreesex | 亚洲 欧美 激情 小说 另类 | 久久久精品人妻久久影视 | 久久97精品久久久久久久不卡 | 在线а√天堂中文官网 | 狠狠色噜噜狠狠狠7777奇米 | 黑人大群体交免费视频 | 高潮毛片无遮挡高清免费视频 | 亚洲gv猛男gv无码男同 | 国产成人一区二区三区在线观看 | 亚洲成在人网站无码天堂 | 日本www一道久久久免费榴莲 | 国产在线一区二区三区四区五区 | 欧美乱妇无乱码大黄a片 | 国产成人综合美国十次 | 国产亚洲日韩欧美另类第八页 | 精品久久久久香蕉网 | 18精品久久久无码午夜福利 | 欧美国产日产一区二区 | 亚洲日本一区二区三区在线 | 天堂无码人妻精品一区二区三区 | 黑人粗大猛烈进出高潮视频 | 久久99精品国产麻豆蜜芽 | 精品日本一区二区三区在线观看 | 大肉大捧一进一出好爽视频 | 少妇无码一区二区二三区 | 99久久99久久免费精品蜜桃 | 国产精品美女久久久网av | 国产精品久久久久久亚洲影视内衣 | 久久国产精品偷任你爽任你 | 国产成人一区二区三区在线观看 | 1000部啪啪未满十八勿入下载 | 中文字幕无码日韩专区 | 欧美激情综合亚洲一二区 | 妺妺窝人体色www在线小说 | 欧美阿v高清资源不卡在线播放 | 在线观看国产一区二区三区 | 欧美一区二区三区视频在线观看 | 国精品人妻无码一区二区三区蜜柚 | 麻豆果冻传媒2021精品传媒一区下载 | 久久久亚洲欧洲日产国码αv | 成人无码精品1区2区3区免费看 | 麻豆国产人妻欲求不满谁演的 | 人妻中文无码久热丝袜 | 扒开双腿疯狂进出爽爽爽视频 | 亚洲国产成人a精品不卡在线 | 综合激情五月综合激情五月激情1 | 欧美人与禽zoz0性伦交 | 欧美日韩视频无码一区二区三 | 乱人伦人妻中文字幕无码久久网 | 无人区乱码一区二区三区 | 丰满人妻翻云覆雨呻吟视频 | 天海翼激烈高潮到腰振不止 | 欧洲极品少妇 | 亚洲精品久久久久久久久久久 | 亚洲成a人一区二区三区 | aⅴ在线视频男人的天堂 | 乱人伦人妻中文字幕无码 | av无码不卡在线观看免费 | 中文字幕无码av激情不卡 | 大色综合色综合网站 | 欧美精品国产综合久久 | 纯爱无遮挡h肉动漫在线播放 | 国产一区二区三区四区五区加勒比 | 亚洲熟女一区二区三区 | 99久久人妻精品免费二区 | 日韩精品无码免费一区二区三区 | 久久99久久99精品中文字幕 | 野狼第一精品社区 | 少妇无码吹潮 | 日本乱人伦片中文三区 | 秋霞特色aa大片 | 免费人成网站视频在线观看 | 欧美一区二区三区视频在线观看 | 欧美性生交活xxxxxdddd | 午夜福利一区二区三区在线观看 | 国产成人综合美国十次 | 亚洲国产一区二区三区在线观看 | 国产精品第一区揄拍无码 | 亚洲伊人久久精品影院 | 精品欧洲av无码一区二区三区 | 国精产品一品二品国精品69xx | 亚洲日韩精品欧美一区二区 | 精品熟女少妇av免费观看 | 男女作爱免费网站 | 欧美精品无码一区二区三区 | 男女猛烈xx00免费视频试看 | 亚洲精品久久久久久一区二区 | 动漫av网站免费观看 | 夜先锋av资源网站 | 国产精品亚洲а∨无码播放麻豆 | 人人妻人人澡人人爽精品欧美 | 午夜成人1000部免费视频 | 欧美性猛交xxxx富婆 | 久久久www成人免费毛片 | 欧美老人巨大xxxx做受 | 久激情内射婷内射蜜桃人妖 | 国产欧美熟妇另类久久久 | 亚洲成色在线综合网站 | 亚洲热妇无码av在线播放 | 日本一区二区三区免费高清 | 日韩av无码一区二区三区 | 中文字幕无码免费久久9一区9 | 亚洲s码欧洲m码国产av | 亚洲人亚洲人成电影网站色 | 国内揄拍国内精品人妻 | 日本护士毛茸茸高潮 | 在线视频网站www色 | 少妇性l交大片欧洲热妇乱xxx | 成 人 免费观看网站 | 久久综合网欧美色妞网 | 国产电影无码午夜在线播放 | 老太婆性杂交欧美肥老太 | аⅴ资源天堂资源库在线 | 日本高清一区免费中文视频 | 狠狠亚洲超碰狼人久久 | 久久99国产综合精品 | 无遮挡啪啪摇乳动态图 | 精品少妇爆乳无码av无码专区 | 成年美女黄网站色大免费视频 | 亚洲人成影院在线观看 | 麻豆国产丝袜白领秘书在线观看 | 日韩精品a片一区二区三区妖精 | 国产av久久久久精东av | 午夜理论片yy44880影院 | 99久久婷婷国产综合精品青草免费 | 18无码粉嫩小泬无套在线观看 | 麻花豆传媒剧国产免费mv在线 | 亚洲の无码国产の无码步美 | 成人欧美一区二区三区黑人 | 国产精品亚洲lv粉色 | 1000部啪啪未满十八勿入下载 | 国产乱码精品一品二品 | 妺妺窝人体色www婷婷 | 亚洲欧美精品aaaaaa片 | 午夜免费福利小电影 | 精品国产一区二区三区四区在线看 | 日本一区二区三区免费播放 | 国产97色在线 | 免 | 300部国产真实乱 | 国产激情艳情在线看视频 | www成人国产高清内射 | 窝窝午夜理论片影院 | 少妇无码一区二区二三区 | 超碰97人人做人人爱少妇 | 久久精品中文闷骚内射 | 又大又硬又黄的免费视频 | 亚洲一区二区三区香蕉 | 亚洲无人区午夜福利码高清完整版 | 中文精品无码中文字幕无码专区 | 亚洲欧美国产精品专区久久 | 99国产欧美久久久精品 | 久久久久免费精品国产 | 伊人久久婷婷五月综合97色 | 国产精品亚洲专区无码不卡 | 精品久久久中文字幕人妻 | 国产成人无码av一区二区 | 欧美丰满熟妇xxxx性ppx人交 | 国产一精品一av一免费 | 成人影院yy111111在线观看 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 午夜时刻免费入口 | 欧美 丝袜 自拍 制服 另类 | 国产亚洲精品久久久久久 | 最新国产乱人伦偷精品免费网站 | 一个人免费观看的www视频 | 免费人成在线观看网站 | 亚洲国产成人av在线观看 | 一本无码人妻在中文字幕免费 | 国产成人无码午夜视频在线观看 | 欧美性生交活xxxxxdddd | 免费播放一区二区三区 | 亚洲中文字幕成人无码 | 美女极度色诱视频国产 | 欧美性生交活xxxxxdddd | 人人澡人人妻人人爽人人蜜桃 | 小sao货水好多真紧h无码视频 | 在线观看国产午夜福利片 | 亚洲阿v天堂在线 | 久久精品成人欧美大片 | 国产香蕉97碰碰久久人人 | 福利一区二区三区视频在线观看 | 精品国精品国产自在久国产87 | 中文字幕无线码免费人妻 | 久久久无码中文字幕久... | 国内精品人妻无码久久久影院蜜桃 | 乌克兰少妇xxxx做受 | 老熟女重囗味hdxx69 | 亚洲 高清 成人 动漫 | 国产特级毛片aaaaaaa高清 | 六月丁香婷婷色狠狠久久 | 日本xxxx色视频在线观看免费 | 亚洲va欧美va天堂v国产综合 | 51国偷自产一区二区三区 | 日韩精品a片一区二区三区妖精 | 色一情一乱一伦一区二区三欧美 | 亚洲欧美日韩成人高清在线一区 | 美女极度色诱视频国产 | 欧美日本日韩 | 无码乱肉视频免费大全合集 | 精品国偷自产在线视频 | 久久久久久av无码免费看大片 | 亚洲色大成网站www | 国产精品第一区揄拍无码 | 少妇无码一区二区二三区 | 特大黑人娇小亚洲女 | 亚洲人成无码网www | 无码av最新清无码专区吞精 | 久久精品国产99久久6动漫 | 午夜肉伦伦影院 | 女人被爽到呻吟gif动态图视看 | 99er热精品视频 |