日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第四章——蛮力法

發(fā)布時(shí)間:2023/12/8 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第四章——蛮力法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

蠻力法概述

蠻力法也稱窮舉法(枚舉法)或暴力法,是一種簡(jiǎn)單的直接解決問題的方法,通常根據(jù)問題的描述和所涉及的概念定義,對(duì)問題所有可能的狀態(tài)(結(jié)果)一一進(jìn)行測(cè)試,直到找到解或?qū)⑷靠赡艿臓顟B(tài)都測(cè)試一遍為止。

蠻力法的“力”指的是計(jì)算機(jī)的運(yùn)算能力,蠻力法是基于計(jì)算機(jī)運(yùn)算速度快的特性,減少人的思考而把工作都交給計(jì)算機(jī)的“懶惰”策略(這里的懶惰指的是人懶,不是算法中的懶惰方法),一般而言是最容易實(shí)現(xiàn)的方法。

蠻力法的優(yōu)點(diǎn)如下:

1.邏輯簡(jiǎn)單清晰,根據(jù)邏輯編寫的程序簡(jiǎn)單清晰。
2.對(duì)于一些需要高正確性的重要問題,它產(chǎn)生的算法一般而言是復(fù)雜度高但合理的。
3.解決問題的領(lǐng)域廣。
4.適用于一些規(guī)模較小,時(shí)間復(fù)雜度要求不高的問題。
5.可以作為其他高校算法的衡量標(biāo)準(zhǔn),即作為被比較的例子。

主要缺點(diǎn)就是因?yàn)槿鄙偃说乃伎?#xff0c;算法往往設(shè)計(jì)的簡(jiǎn)單而缺乏高的效率。

蠻力法依賴的是將每個(gè)元素(狀態(tài))處理一次的掃描技術(shù),通常在以下幾種情況使用蠻力法:

搜索所有的解空間:問題的解存在于規(guī)模不大的解空間中。

搜索所有的路徑:這類問題中不同的路徑對(duì)應(yīng)不同的解。

直接計(jì)算:按照基于問題的描述和所涉及的概念定義,直接進(jìn)行計(jì)算。往往是一些簡(jiǎn)單的題,不需要算法技巧的。

模擬和仿真:按照求解問題的要求直接模擬或仿真問題的過程即可。

作為算法的設(shè)計(jì)者,不要被這些人為設(shè)計(jì)的概念框住自己的手腳,通過自己的認(rèn)識(shí)合理的利用資源高效地處理問題才是我們需要做到的。


蠻力法的直接應(yīng)用

介紹一些直接采用蠻力法解決問題的例子。

直接采用蠻力法的一般格式

在直接采用蠻力法設(shè)計(jì)算法中,主要是使用循環(huán)語句和選擇語句:循環(huán)語句用于窮舉所有可能的情況,而選擇語句判定當(dāng)前的條件是否為所求的解。

模型比較簡(jiǎn)單就不看了(不要拘泥于模型,去體會(huì)思想)。

例題 4.1

編寫一個(gè)程序,輸出2到1000之間的所有完全數(shù)。完全數(shù)就是指該數(shù)的各因子(除該數(shù)本身外)之和正好等于該數(shù)本身。

直接采用蠻力法的方式就是將2到1000的所有數(shù)窮舉一遍,對(duì)每個(gè)可能是完全數(shù)的數(shù),求解他們除本身之外的各因子之和與原數(shù)進(jìn)行比較。

for (m=2;m<=1000;m++){  //求出m的所有因子之和s;if (m==s) 輸出s; }

求解所有因子的過程依舊是一個(gè)窮舉的過程,除本身之外的因子大小不會(huì)超過本身的一半,窮舉1到本身的一半判斷能夠整除即可,結(jié)合起來對(duì)應(yīng)的蠻力法如下:

void main(){ int m,i,s;//窮舉2-1000的所有整數(shù) for (m=2;m<=1000;m++){s=0;//s為因子的和//窮舉1到m/2的所有可能為因子的整數(shù) for (i=1;i<=m/2;i++) if (m%i==0) s+=i;//i是m的一個(gè)因子 if (m==s) printf("%d ",m);} }

例 4.2

編寫一個(gè)程序,求這樣的四位數(shù):這個(gè)四位數(shù)的十位是1,個(gè)位是2,這個(gè)四位數(shù)減去7就能被7整除,減去8就能被8整除,減去9就能被9整除。

設(shè)這個(gè)數(shù)的十進(jìn)制表示為ab12,則數(shù)值n=1000*\a+100*b+12,采用窮舉法窮舉a和b:

int n,a,b; //窮舉a和b,即窮舉最后兩位為12的四位數(shù) for (a=1;a<=9;a++) for (b=0;b<=9;b++){n=1000*a+100*b+12;//判斷n是否滿足題中的給定條件//輸出n }

減去7被7整除,減去8被8整除,減去9被9整除就是簡(jiǎn)單的基本運(yùn)算的組合,完整的蠻力法如下:

int n,a,b; //窮舉a和b,即窮舉最后兩位為12的四位數(shù) for (a=1;a<=9;a++) for (b=0;b<=9;b++){n=1000*a+100*b+12;//判斷n是否滿足題中的給定條件if ((n-7)%7==0&&(n-8)%8==0&&(n-9)%9==0) printf("n=%d\n",n); }

例 4.3

在象棋算式里,不同的棋子代表不同的數(shù),有以下算式,設(shè)計(jì)一個(gè)算法求這些棋子各代表哪些數(shù)字。


直接采用窮舉法的思想就是,對(duì)于五個(gè)棋子的取值分別進(jìn)行枚舉,然后判斷對(duì)于一套取值是否能在不重復(fù)的前提下,滿足豎式的要求。

對(duì)應(yīng)的蠻力法如下:

void fun(){ int a,b,c,d,e,m,n,s;//分別窮舉兵,炮,馬,卒,車的各種可能 for (a=1;a<=9;a++) for (b=0;b<=9;b++) for (c=0;c<=9;c++) for (d=0;d<=9;d++) for (e=0;e<=9;e++)//避免取值的重復(fù) if (a==b||a==c||a==d||a==e||b==c||b==d||b==e||c==d||c==e||d==e) continue;//判斷是否滿足豎式的條件 else{ m=a*1000+b*100+c*10+d;n=a*1000+b*100+e*10+d;s=e*10000+d*1000+c*100+a*10+d;if (m+n==s)printf("兵:%d 炮:%d 馬:%d卒:%d 車:%d\n",a,b,c,d,e);} }

例 4.4

有n個(gè)整數(shù),存放在數(shù)組a中,設(shè)計(jì)一個(gè)算法從中選出3個(gè)正整數(shù)組成周長(zhǎng)最長(zhǎng)的三角形,并輸出該三角形的周長(zhǎng),若無法組成三角形就輸出0。

窮舉出n個(gè)整數(shù)中選擇三條邊的所有可能,然后對(duì)于每一種可能判斷能否組成三角形,在能夠組成三角形的前提下,更新最大的周長(zhǎng)值。

對(duì)應(yīng)的蠻力法如下:

void solve(int a[],int n){int i,j,k,len,ma,maxlen=0;for (i=0;i<n;i++) for (j=i+1;j<n;j++) for (k=j+1;k<n;k++){len=a[i]+a[j]+a[k];ma=max3(a[i],a[j],a[k]);//判斷能夠窮舉出來的一種可能的三條邊能否組成一個(gè)三角形 if (ma<len-ma){//更新最大周長(zhǎng) if (len>maxlen) maxlen=len; } }printf("最長(zhǎng)三角形的周長(zhǎng)=%d\n",maxlen); }

簡(jiǎn)單選擇排序和冒泡排序

遞歸那里介紹過了,這里不再做贅述(蠻力法本身是最簡(jiǎn)單的方法,以蠻力法的模型再去解析簡(jiǎn)單選擇
排序和冒泡排序不會(huì)有更好的收獲)。

字符串匹配

對(duì)于字符串s和t,若t是s子串,返回t在s中的位置(t的首字符在s中對(duì)應(yīng)的下標(biāo)),否則返回-1。

蠻力法的策略就是找到字符串s中所有長(zhǎng)度為t的字符串的長(zhǎng)度的連續(xù)子串,然后將連續(xù)子串與t進(jìn)行比較,判斷t是否為s的子串,這個(gè)字符串匹配的算法稱為BF算法(Brute-Force算法)也就是暴力算法的意思。

程序的while循環(huán)是一位一位匹配的,實(shí)際上存在回退的過程,就是將一個(gè)一個(gè)的連續(xù)子串與t進(jìn)行比較的過程。

//Brute-Force算法,字符串匹配 int BF(string s,string t){ int i=0,j=0;while (i<s.length()&&j<t.length()){ //匹配當(dāng)前的連續(xù)子串 if (s[i]==t[j]){i++; j++;}//當(dāng)前的連續(xù)子串匹配失敗,對(duì)s串進(jìn)行回退,實(shí)際上就是匹配下一個(gè)字母開頭的連續(xù)子串 else{i=i-j+1; j=0;}}//t的字符比較完畢if (j==t.length()) return i-j;//t是s的子串,返回位置//t不是s的子串,返回-1else return -1; }

例 4.5

有兩個(gè)字符串s和t,設(shè)計(jì)一個(gè)算法求t在s中出現(xiàn)的次數(shù)。

用蠻力法處理這個(gè)問題的策略和BF算法是一致的,將字符串s中所有與字符串t長(zhǎng)度相等的連續(xù)子串拿出來進(jìn)行比較,區(qū)別就在于BF算法中完成匹配后直接退出循環(huán),而這里的問題需要計(jì)算出t在s中出現(xiàn)的次數(shù),所以t字符串匹配到最后一位后還是要回退直到s字符串匹配完全。

對(duì)應(yīng)的蠻力法算法如下:

//用蠻力法求t在s中出現(xiàn)的次數(shù) int Count(string s,string t){ int num=0;//計(jì)數(shù)器累計(jì)出現(xiàn)次數(shù)int i=0,j=0;while (i<s.length()&&j<t.length()){//匹配當(dāng)前的連續(xù)子串 if (s[i]==t[j]){i++; j++;}//當(dāng)前的連續(xù)子串匹配失敗,對(duì)s串進(jìn)行回退,實(shí)際上就是匹配下一個(gè)字母開頭的連續(xù)子串 else{i=i-j+1; j=0;}//匹配成功時(shí),仍然進(jìn)行回退,計(jì)時(shí)器+1 if(j==t.length()){num++; j=0; }}return num; }

求解最大連續(xù)子序列和問題

就是分治法中求解連續(xù)最大子序列和的問題。

用蠻力法就是枚舉出所有連續(xù)的子序列的和,然后找到里面最大的那個(gè)子序列,書上的前兩種蠻力法都是基于的這種思路,解法二計(jì)算從第i個(gè)元素開始的連續(xù)子序列的和時(shí),計(jì)算長(zhǎng)度長(zhǎng)的連續(xù)子序列的和繼承前面長(zhǎng)度較短的連續(xù)子序列的計(jì)算結(jié)果,相當(dāng)于減少了重復(fù)計(jì)算的內(nèi)容,解法二從某種角度而言其實(shí)已經(jīng)很傾向于動(dòng)態(tài)規(guī)劃算法了。

蠻力法的兩個(gè)解法如下:

//蠻力法求解最大連續(xù)子序列和問題的解法一 int maxSubSum1(int a[],int n){ int i,j,k; int maxSum=a[0],thisSum;//窮舉所有的連續(xù)子序列 for (i=0;i<n;i++) for (j=i;j<n;j++){ //計(jì)算連續(xù)的子序列的和 thisSum=0;for (k=i;k<=j;k++) thisSum+=a[k];//通過比較求最大連續(xù)子序列之和if (thisSum>maxSum) maxSum=thisSum;}return maxSum; } //蠻力法求解最大連續(xù)子序列和問題的解法二 int maxSubSum2(int a[],int n){ int i,j;int maxSum=a[0],thisSum;//窮舉所有的連續(xù)子序列//thisSum記錄以i為首的連續(xù)子序列的和,有點(diǎn)滾動(dòng)數(shù)組的意思 for (i=0;i<n;i++){thisSum=0;for (j=i;j<n;j++){thisSum+=a[j];//通過比較求最大連續(xù)子序列之和if (thisSum>maxSum) maxSum=thisSum;}}return maxSum; }

前一種的復(fù)雜度為O(n3),后一種的復(fù)雜度為O(n2)。

解法3基于的一個(gè)事實(shí)就是最大的連續(xù)子序列一定不可能由一段和為負(fù)的連續(xù)子序列后面拼上別的連續(xù)子序列,因?yàn)樯釛壛饲懊婧螢樨?fù)的連續(xù)子序列,連續(xù)子序列的和變得更大就產(chǎn)生了矛盾。

于是在我們計(jì)算從第i個(gè)元素開始的連續(xù)子序列的和時(shí),我們只需要計(jì)算到連續(xù)子序列的和小于0之前即可。

我們假設(shè)上面過程枚舉第i個(gè)元素開始的連續(xù)子序列的最后一個(gè)元素,枚舉到第j個(gè)元素為止,也就是說對(duì)于k(i≤k≤j),都有第i個(gè)元素到第k個(gè)元素的連續(xù)子序列的和非負(fù),當(dāng)我們考察第k個(gè)元素開始的連續(xù)子序列時(shí),由于第i個(gè)元素到第k-1個(gè)元素的連續(xù)子序列的和非負(fù),那么第k個(gè)元素到第j個(gè)元素的連續(xù)子序列的和一定小于等于第i個(gè)元素到第j個(gè)元素的連續(xù)子序列和。

也就是說我們枚舉第k個(gè)元素開始的連續(xù)子序列的最后一個(gè)元素,做多枚舉的不會(huì)超過第j個(gè)元素,且由于第i個(gè)元素到第k-1個(gè)元素的連續(xù)子序列的和非負(fù),我們枚舉的第k個(gè)元素開始的連續(xù)子序列的值不會(huì)超過枚舉的第i個(gè)元素開始的連續(xù)子序列的值。

所以我們枚舉完第i個(gè)元素開始的連續(xù)子序列的最后一個(gè)元素,枚舉到第j個(gè)元素為止后,下一個(gè)枚舉的元素從第j+1個(gè)元素開始,也就是說只需要從前往后的遍歷一遍。

對(duì)應(yīng)的算法如下:

//蠻力法求解最大連續(xù)子序列和問題的解法三 int maxSubSum3(int a[],int n){ int i,maxSum=0,thisSum=0;for (i=0;i<n;i++){thisSum+=a[i];//若當(dāng)前以第i個(gè)元素開頭枚舉的子序列和為負(fù)數(shù),重新開始枚舉下一元素開頭的連續(xù)子序列if (thisSum<0) thisSum=0;//比較求最大連續(xù)子序列和if (maxSum<thisSum) maxSum=thisSum;}return maxSum; }

解法三相比解法二傾向于與貪心思想的結(jié)合,解法二和解法三嚴(yán)格意義上說都不能稱為傳統(tǒng)意義上的蠻力法了。

三個(gè)解法的合集如下:

//蠻力法求解最大連續(xù)子序列和問題的解法一 int maxSubSum1(int a[],int n){ int i,j,k; int maxSum=a[0],thisSum;//窮舉所有的連續(xù)子序列 for (i=0;i<n;i++) for (j=i;j<n;j++){ //計(jì)算連續(xù)的子序列的和 thisSum=0;for (k=i;k<=j;k++) thisSum+=a[k];//通過比較求最大連續(xù)子序列之和if (thisSum>maxSum) maxSum=thisSum;}return maxSum; } //蠻力法求解最大連續(xù)子序列和問題的解法二 int maxSubSum2(int a[],int n){ int i,j;int maxSum=a[0],thisSum;//窮舉所有的連續(xù)子序列//thisSum記錄以i為首的連續(xù)子序列的和,有點(diǎn)滾動(dòng)數(shù)組的意思 for (i=0;i<n;i++){thisSum=0;for (j=i;j<n;j++){thisSum+=a[j];//通過比較求最大連續(xù)子序列之和if (thisSum>maxSum) maxSum=thisSum;}}return maxSum; } //蠻力法求解最大連續(xù)子序列和問題的解法三 int maxSubSum3(int a[],int n){ int i,maxSum=0,thisSum=0;for (i=0;i<n;i++){thisSum+=a[i];//若當(dāng)前以第i個(gè)元素開頭枚舉的子序列和為負(fù)數(shù),重新開始枚舉下一元素開頭的連續(xù)子序列if (thisSum<0) thisSum=0;//比較求最大連續(xù)子序列和if (maxSum<thisSum) maxSum=thisSum;}return maxSum; }

求解冪集問題

對(duì)于給定的正整數(shù)n,求1到n構(gòu)成的集合的所有子集(冪集)。例如n=3時(shí),1到n構(gòu)成的集合的所有子集為:{},{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}。

這個(gè)問題用窮舉法解決的策略就是對(duì)每個(gè)元素考慮選取與不選取的兩個(gè)情況,即從全不選擇,到全都選擇窮舉所有的可能。

第i個(gè)數(shù)選擇為1不選擇為0,于是對(duì)于任意一個(gè)子集我們可以得到一個(gè)長(zhǎng)度為n的二進(jìn)制編碼,這些二進(jìn)制編碼對(duì)應(yīng)的十進(jìn)制數(shù)為0到2n-1,例如n=3時(shí)對(duì)應(yīng)的二進(jìn)制編碼和十進(jìn)制數(shù)如下:

這種窮舉法的思路就是將0到2n-1的十進(jìn)制數(shù)全部轉(zhuǎn)化為二進(jìn)制數(shù),然后根據(jù)二進(jìn)制數(shù)得到對(duì)應(yīng)的子集,時(shí)間復(fù)雜度為2n*n(這種方法稱為二進(jìn)制法,比較簡(jiǎn)單,書上的寫法很糟糕這里就不多贅述了)。

另一種實(shí)現(xiàn)方法,設(shè)置n層循環(huán),前i層循環(huán)得到前i個(gè)元素能夠構(gòu)成的2i個(gè)冪集,然后根據(jù)第i+1個(gè)元素選擇和不選擇得到前i+1個(gè)元素能夠構(gòu)成的2i+1個(gè)冪集。

vector<vector<int> >ps;//存放冪集 //求1~n的冪集ps void PSet(int n){ vector<vector<int> >ps1//子冪集vector<vector<int> >::iterator it;//冪集迭代器vector<int> s;ps.push_back(s);//添加{}空集合元素//i層循環(huán)考慮是否添加元素i進(jìn)入現(xiàn)有的子集,從1~i-1的冪集得到1~i的冪集 for (int i=1;i<=n;i++){ ps1=ps;//ps存放上一層循環(huán)得到從1~i-1的冪集,ps1復(fù)制1~i-1的冪集//然后通過1~i-1的冪集后面擴(kuò)展一個(gè)元素i,得到1~i的冪集比起1~i-1的冪集多出來的部分 for (it=ps1.begin();it!=ps1.end();++it) (*it).push_back(i); for (it=ps1.begin();it!=ps1.end();++it) ps.push_back(*it); } }

這個(gè)復(fù)雜度相對(duì)前一種實(shí)現(xiàn)方法低,為O(2n),也是用了類似動(dòng)態(tài)規(guī)劃的思想。

求解0/1背包問題

n個(gè)重量分別為w1,w2,…,wn的物品,它們的價(jià)值分別為v1,v2,…,vn,給定一個(gè)容量為W的背包。

設(shè)計(jì)從這些物品中選取一部分物品放入該背包的方案,每個(gè)物品要么選中要么不選中,要求選中的物品不僅能夠放到背包中,而且具有最大的價(jià)值。

使用蠻力法的策略就是枚舉出所有可能的方案,然后根據(jù)選擇物品的方案得到它們的重量和價(jià)值,然后再用蠻力法將每種方案排查一遍得到滿足容量條件中,價(jià)值最大的方案。

窮舉所有可能選取物品方案的方法和窮舉冪集的策略是一樣的,對(duì)應(yīng)的蠻力法算法如下:

ector<vector<int> >ps;//存放冪集 //求1~n的冪集ps void PSet(int n){ vector<vector<int> >ps1//子冪集vector<vector<int> >::iterator it;//冪集迭代器vector<int> s;ps.push_back(s);//添加{}空集合元素//i層循環(huán)考慮是否添加元素i進(jìn)入現(xiàn)有的子集,從1~i-1的冪集得到1~i的冪集 for (int i=1;i<=n;i++){ ps1=ps;//ps存放上一層循環(huán)得到從1~i-1的冪集,ps1復(fù)制1~i-1的冪集//然后通過1~i-1的冪集后面擴(kuò)展一個(gè)元素i,得到1~i的冪集比起1~i-1的冪集多出來的部分 for (it=ps1.begin();it!=ps1.end();++it) (*it).push_back(i); for (it=ps1.begin();it!=ps1.end();++it) ps.push_back(*it); } } //用蠻力法求所有的方案和最佳方案 void Knap(int w[],int v[],int W){//用求解冪集的方法窮舉出所有的方案 PSet(n); int count=0;//窮舉過程中窮舉的方案的編號(hào)int sumw,sumv;//當(dāng)前窮舉的方案的總重量和總價(jià)值int maxi,maxsumw=0,maxsumv=0;//最佳方案的編號(hào),總重量和總價(jià)值vector<vector<int> >::iterator it;//訪問冪集中每個(gè)子集的迭代器vector<int>::iterator sit;//訪問冪集子集元素的迭代器 //冪集的每一個(gè)子集對(duì)應(yīng)一套方案 for (it=ps.begin();it!=ps.end();++it){ sumw=sumv=0;for (sit=(*it).begin();sit!=(*it).end();++sit){ sumw+=w[*sit-1];//計(jì)算該套方案的重量 sumv+=v[*sit-1];//計(jì)算該套方案的價(jià)值 }//比較求滿足條件的最優(yōu)方案if (sumw<=W&&sumv>maxsumv){ maxsumw=sumw;maxsumv=sumv;maxi=count; }count++; } }

求解全排列問題

對(duì)于給定的正整數(shù)n,求1~n的所有全排列。

例如n=3,1~n的全排列為:123,132,213,231,312,321。

用蠻力法求解全排列問題是個(gè)比較經(jīng)典的問題,一種思路是窮舉全排列中每一個(gè)排列每一位出現(xiàn)的數(shù)字,從第一位窮舉到最后一位。

另一種思路就是書上的思路:窮舉數(shù)字i可能出現(xiàn)的位置,從1窮舉到n。和求解冪集問題一樣,前i層窮舉數(shù)字1到i出現(xiàn)的位置,相當(dāng)于窮舉出1到i的全排列,然后在第i+1層循環(huán)中窮舉數(shù)字i+1可能出現(xiàn)的位置,從1到i的全排列擴(kuò)展到1到i+1的全排列(從思想上近似于動(dòng)態(tài)規(guī)劃的思想)。

對(duì)應(yīng)的蠻力法的算法如下:

vector<vector<int> >ps;//存放1到n的全排列 //在排列s中尋找能夠插入i的位置,將得到的新的s1插入到ps1中 vvoid Insert(vector<int> s,int i,vector<vector<int> > &ps1){ vector<int> s1;vector<int>::iterator it;//窮舉將i插入到排列s的位置 for (int j=0;j<i;j++){ s1=s;it=s1.begin()+j;//插入的位置 s1.insert(it,i);//插入整數(shù)ips1.push_back(s1);//將得到的新的排列加入ps1中 } } //求1~n的所有全排列 void Perm(int n){ vector<vector<int> >ps1;//存放1到i-1的全排列 vector<vector<int> >::iterator it;//全排列迭代器vector<int>s,s1;s.push_back(1); ps.push_back(s);//在ps中添加{1}集合元素,得到1到1的全排列 //從2開始窮舉每一個(gè)數(shù)字可能出現(xiàn)的位置 for (int i=2;i<=n;i++){ps1.clear();//ps存放1到i-1的全排列,在1到i-1的每個(gè)排列中尋找i能夠插入的位置//將得到的1到i的全排列中的排列插入到ps1中 for (it=ps.begin();it!=ps.end();++it) Insert(*it,i,ps1); ps=ps1;} }

時(shí)間復(fù)雜度為O(n*n!)。

求解任務(wù)分配問題

有n個(gè)任務(wù)需要分配給n個(gè)人執(zhí)行,每個(gè)任務(wù)只能分配給一個(gè)人,每個(gè)人只能執(zhí)行一個(gè)任務(wù)。第i個(gè)人執(zhí)行第j個(gè)任務(wù)的成本是c[i][j],求出總成本最小的分配方案。

蠻力法的策略就是窮舉出所有任務(wù)分配的方案,然后計(jì)算出每個(gè)任務(wù)分配的方案的成本,然后比較求解出總成本最小的分配方案。

窮舉出所有任務(wù)分配的方案,我們將第1個(gè)人到第n個(gè)人做的任務(wù)的編號(hào)連在一起得到一個(gè)n位的數(shù)字序列,所有任務(wù)分配的方案對(duì)應(yīng)的n位數(shù)字序列的總集就是1~n的全排列,求解任務(wù)分配問題蠻力法解決實(shí)際上就是求解全排列問題(代碼就不做贅述了)。

上面介紹了用蠻力法求解找到滿足條件的數(shù)的簡(jiǎn)單數(shù)學(xué)問題,排序問題,字符串匹配問題,最大連續(xù)子序列和問題,冪集問題,0/1背包問題,全排列問題,任務(wù)分配問題。

其中蠻力法求解0/1背包問題和任務(wù)分配問題分別屬于蠻力法求解冪集問題和全排列問題的衍生應(yīng)用,分別成為子集問題和排列問題。蠻力法求解冪集問題和全排列問題的解法存在比較高的相似性,包括第二種優(yōu)化的解法(提供給我們動(dòng)態(tài)規(guī)劃在什么地方使用和框架設(shè)計(jì)的思路)。


遞歸在蠻力法中的應(yīng)用

蠻力法是一種處理問題的算法思想,遞歸是一種算法的實(shí)現(xiàn)方式,很多用蠻力法求解問題的過程都可以采用遞歸方式來實(shí)現(xiàn),遞歸算法的分解規(guī)模較小的問題(階段)的框架也給最基礎(chǔ)的蠻力法帶來一定優(yōu)化方向上的啟發(fā)。

用遞歸方法求解冪集問題,全排列問題

求解冪集問題和全排列問題的第二種解法,都是將問題從最小的規(guī)模(空集,1到1的全排列)一步一步擴(kuò)展(從前i個(gè)元素的冪集擴(kuò)展到前i+1個(gè)元素的冪集,從1到i的全排列擴(kuò)展到1到i+1的全排列),擴(kuò)展到規(guī)模最大的原問題的解(n個(gè)元素的冪集,1到n的全排列),本身就是符合遞歸算法設(shè)計(jì)的一般步驟的。

我們前面是用循環(huán)去實(shí)現(xiàn)的,就相當(dāng)于用循環(huán)結(jié)構(gòu)替代遞歸過程的結(jié)果。替換回遞歸過程的策略是給函數(shù)添加一個(gè)·屬性,然后通過屬性值的遞減或遞增進(jìn)行一個(gè)狀態(tài)是順序結(jié)構(gòu)的遞歸,效果和循環(huán)結(jié)構(gòu)是一樣的,這里不做贅述。

用遞歸方法求解組合問題

求從1~n的正整數(shù)中取k個(gè)不重復(fù)整數(shù)的所有組合。

因?yàn)橹蝗個(gè)不重復(fù)整數(shù),而不是將n個(gè)整數(shù)全部不重復(fù)地取出,前面子問題為求1到i放置位置的可能(全排列)的設(shè)計(jì)在這里就不是很好用。

但我們前面還提到另外一種窮舉法的思路:窮舉每一個(gè)排列每一位出現(xiàn)的數(shù)字,從第一位窮舉到最后一位。

于是我們可以設(shè)規(guī)模最大的原問題為1到n中選取k個(gè)不重復(fù)的數(shù)字,規(guī)模較小的子問題為1到n中選取i個(gè)不重復(fù)的數(shù)字。但是這么設(shè)計(jì)需要注意一個(gè)問題,就是當(dāng)我們從規(guī)模較小的問題的解去求解規(guī)模較大的問題時(shí),選取的i個(gè)數(shù)字不能在規(guī)模較大的問題中進(jìn)行選取,就是說實(shí)際上取數(shù)的范圍不是1到n,而是1到n中不包括前面選取過的i個(gè)數(shù)字,我們可以用標(biāo)記的方法來解決這個(gè)問題。

但是不同于全排列1,2,3和1,3,2屬于兩種不同的排列,不重復(fù)數(shù)字的組合中的數(shù)字不存在次序關(guān)系,就是說1,4,7,8和4,8,7,1是一種組合,于是我們可以默認(rèn)每一種組合中數(shù)字都是從小到大排列的。

有一種不使用標(biāo)記的更好的設(shè)計(jì)方案:設(shè)規(guī)模最大的原問題為從1到n中從小到大的選取k個(gè)不重復(fù)的數(shù)字,選取的最大數(shù)為max_n。規(guī)模較小的子問題為1到n中從小到大的選取i個(gè)不重復(fù)的數(shù)字,選區(qū)的最大數(shù)為max_i,因?yàn)閷⒔M合中的元素從小到大的排序且添加了一個(gè)max_i的屬性,從規(guī)模為i的子問題擴(kuò)展到規(guī)模為i+1的子問題,第i+1個(gè)數(shù)字的選取可以在max_i到n中選取,不用再通過標(biāo)記的方法來判斷是否出現(xiàn)重復(fù),第i+1次選取的數(shù)字為max_(i+1)。

前面提到“蠻力法是一種處理問題的算法思想,遞歸是一種算法的實(shí)現(xiàn)方式”,蠻力法算法指的是算法思想,遞歸算法指的是算法思想,兩者并不沖突,我們遞歸那一章中很多遞歸算法采用的算法思想也是蠻力法。

我們?cè)谑褂眠f歸去實(shí)現(xiàn)蠻力法算法時(shí),會(huì)發(fā)現(xiàn)很多子問題(階段)是重復(fù)求解的,我們將子問題的解保存下來,重復(fù)求解時(shí)直接返回子問題的解能夠提高效率(求解全排列問題和冪集問題用到過這個(gè)方法),這是我們之后章節(jié)要介紹的內(nèi)容。


圖的深度優(yōu)先和廣度優(yōu)先遍歷

圖的存儲(chǔ)結(jié)構(gòu)

圖的存儲(chǔ)結(jié)構(gòu)主要就是鄰接矩陣存儲(chǔ)方式和鄰接表存儲(chǔ)方式,這主要是數(shù)據(jù)結(jié)構(gòu)篇章的內(nèi)容,我們只做略過,不多做贅述。

鄰接矩陣存儲(chǔ)方法

鄰接矩陣作為一個(gè)矩陣,第行第j列的值表示結(jié)點(diǎn)i到結(jié)點(diǎn)是否存在邊(或者是帶權(quán)圖中邊的權(quán))。



結(jié)構(gòu)體定義如下:

#define MAXV <最大頂點(diǎn)個(gè)數(shù)> typedef struct{ int no;//頂點(diǎn)編號(hào)char data[MAXL];//頂點(diǎn)其他信息 }VertexType;//頂點(diǎn)類型 typedef struct{ int edges[MAXV][MAXV];//鄰接矩陣,edges[i][j]表示點(diǎn)i到點(diǎn)j是否存在邊(邊的權(quán)) int n,e;//頂點(diǎn)數(shù),邊數(shù)VertexType vexs[MAXV];//頂點(diǎn)信息 }MGraph;//完整的圖鄰接矩陣存儲(chǔ)結(jié)構(gòu)

鄰接表存儲(chǔ)方法

圖的鄰接表存儲(chǔ)方法是一種鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。

我們對(duì)圖的每個(gè)頂點(diǎn)建立一個(gè)單鏈表,第i個(gè)單鏈表中存儲(chǔ)與頂點(diǎn)i鄰接的頂點(diǎn)。n個(gè)單鏈表的表頭結(jié)點(diǎn)再通過數(shù)組的方式存儲(chǔ)起來構(gòu)成一個(gè)表頭結(jié)點(diǎn)數(shù)組。

typedef struct ANode{ int adjvex;//鄰接頂點(diǎn)的頂點(diǎn)編號(hào) int weight;//結(jié)點(diǎn)i到鄰接頂點(diǎn)構(gòu)成的邊的權(quán)值 struct ANode *nextarc;//指向下一鄰接頂點(diǎn)的指針 }ArcNode; //頂點(diǎn)結(jié)構(gòu)體,存儲(chǔ)頂點(diǎn)信息和頂點(diǎn)對(duì)應(yīng)單鏈表的表頭結(jié)點(diǎn) typedef struct Vnode{ char data[MAXL];//頂點(diǎn)信息ArcNode *firstarc;//firstarc為頂點(diǎn)對(duì)應(yīng)單鏈表的表頭結(jié)點(diǎn) }VNode; typedef VNode AdjList[MAXV];//AdjList是鄰接表類型,存儲(chǔ)n個(gè)單鏈表的表頭結(jié)點(diǎn) typedef struct{ AdjList adjlist;//鄰接表int n,e;//圖中頂點(diǎn)數(shù)n和邊數(shù)e }ALGraph;

圖遍歷算法

從給定(連通)圖中任意指定的頂點(diǎn)(起始點(diǎn))出發(fā),按照某種順序沿著圖的邊訪問圖中的所有頂點(diǎn),使每個(gè)頂點(diǎn)僅被訪問一次的過程稱為圖的遍歷,對(duì)應(yīng)算法為圖遍歷算法。

圖遍歷算法是圖算法的設(shè)計(jì)基礎(chǔ),根據(jù)不同的遍歷順序,最經(jīng)典的兩種遍歷方式有深度優(yōu)先遍歷和廣度優(yōu)先遍歷,他們本質(zhì)的算法思想都是蠻力法思路(作為搜索算法的算法思想是蠻力法思路,通過窮舉每個(gè)結(jié)點(diǎn)的可能來找到我們需要搜索的目標(biāo))。

深度優(yōu)先遍歷

深度優(yōu)先遍歷的策略,簡(jiǎn)單來說就是在一條分支上將該分支的結(jié)點(diǎn)先遍歷完,再回溯(這是一個(gè)概念上的回溯,不需要進(jìn)行另外的操作)到前面的祖先結(jié)點(diǎn)遍歷別的分支,直到所有的結(jié)點(diǎn)遍歷完全(見上科大課件的lecture 10)。

算法的過程如下:

1.從圖中某個(gè)初始頂點(diǎn)v出發(fā),首先訪問初始頂點(diǎn)v。
2.選擇一個(gè)與當(dāng)前正在訪問的結(jié)點(diǎn)相鄰且沒被訪問過的頂點(diǎn)為下一次訪問的當(dāng)前結(jié)點(diǎn)(屬性),以該結(jié)點(diǎn)進(jìn)行2的操作;當(dāng)某個(gè)結(jié)點(diǎn)無法向下進(jìn)行2的操作,回到上次訪問的結(jié)點(diǎn)選擇另外一個(gè)相鄰且沒有訪問過的頂點(diǎn)進(jìn)行2的操作(就是遞歸堆頂元素求解成功,退棧之后代入回新的棧頂元素進(jìn)行處理的過程),直到圖中與頂點(diǎn)v連通的所有頂點(diǎn)都被訪問過為止。

顯然,這個(gè)算法過程是個(gè)遞歸過程(算法正確性的證明過程略)。

以鄰接矩陣為存儲(chǔ)結(jié)構(gòu)的深度優(yōu)先遍歷算法如下:

//鄰接矩陣的DFS算法 void DFS(MGraph g,int v){ visited[v]=1;//標(biāo)記當(dāng)前正在訪問的結(jié)點(diǎn)v已經(jīng)被訪問//找當(dāng)前正在訪問v的所有相鄰點(diǎn)(矩陣值部不為0,不為INF) for (int w=0;w<g.n;w++)//且相鄰點(diǎn)不能在前面遍歷的過程中被訪問過 if (g.edges[v][w]!=0&&g.edges[v][w]!=INF&&visited[w]==0) DFS(g,w); }

時(shí)間復(fù)雜度為O(n2)。

以鄰接表為存儲(chǔ)結(jié)構(gòu)的深度優(yōu)先遍歷算法如下(其實(shí)單鏈表也可以用for循環(huán)進(jìn)行遍歷):

//鄰接表的DFS算法 void DFS(ALGraph *G,int v){ ArcNode *p;visited[v]=1; p=G->adjlist[v].firstarc;//p指向頂點(diǎn)v的第一個(gè)鄰接點(diǎn)while (p!=NULL){ //若頂點(diǎn)未訪問,以該頂點(diǎn)作為下一個(gè)訪問頂點(diǎn) if (visited[p->adjvex]==0) DFS(G,p->adjvex);p=p->nextarc; } }

時(shí)間復(fù)雜度為O(n+e)。

這里visited數(shù)組進(jìn)行標(biāo)記來避免圖的遍歷過程中結(jié)點(diǎn)被重復(fù)遍歷。而樹作為圖的一個(gè)特殊大類,樹遍歷算法不需要進(jìn)行標(biāo)記,所以我們往往會(huì)先介紹樹的遍歷算法再從樹的概念來解釋圖遍歷算法中為什么需要對(duì)結(jié)點(diǎn)進(jìn)行標(biāo)記的原因。

事實(shí)上,通過我們這里圖遍歷算法的遞歸過程對(duì)應(yīng)的遞歸樹,也可以從這個(gè)遞歸樹的角度來解釋為什么樹遍歷算法不需要進(jìn)行標(biāo)記。

例 4.6

假設(shè)圖G采用鄰接表存儲(chǔ),設(shè)計(jì)一個(gè)算法判斷圖G中從頂點(diǎn)u到v是否存在簡(jiǎn)單路徑。

判斷點(diǎn)u到點(diǎn)v是否存在簡(jiǎn)單路徑,就是判斷點(diǎn)u與點(diǎn)v是否連通。前面提到圖遍歷算法可以通過一個(gè)頂點(diǎn)訪問連通圖所有的頂點(diǎn),就是訪問所有與該頂點(diǎn)連通的頂點(diǎn)。

對(duì)于這個(gè)問題,我們采用圖遍歷算法,如果存在簡(jiǎn)單路徑,也就是連通,那么通過圖遍歷算法就能夠訪問到,否則不能。

對(duì)應(yīng)的算法如下:

//判斷G中從頂點(diǎn)u到v是否存在簡(jiǎn)單路徑 bool ExistPath(ALGraph *G,int u,int v){ int w; ArcNode *p;visited[u]=1; if (u==v) return true;//當(dāng)前訪問的結(jié)點(diǎn)為v,說明u和v連通,返回true p=G->adjlist[u].firstarc; while (p!=NULL){//遞歸訪問未訪問過的相鄰結(jié)點(diǎn)w=p->adjvex; if (visited[w]==0){ bool flag=ExistPath(G,w,v);if (flag) return true;//當(dāng)前分支連通,就不用回溯到該節(jié)點(diǎn)訪問下一個(gè)相鄰節(jié)點(diǎn) }p=p->nextarc; }return false;//沒有找到v,返回false }

例題4.7不僅需要判斷路徑,還需要輸出路徑,這個(gè)問題我們?cè)谇懊孢f歸法的章節(jié)中討論過二叉樹的版本,前面提到圖遍歷算法和樹遍歷算法只有標(biāo)記的區(qū)別,所以不再做贅述(書上的方法是遞歸章節(jié)介紹的第二種方法)。

廣度優(yōu)先遍歷

廣度優(yōu)先遍歷,就是以到起始結(jié)點(diǎn)的邊的數(shù)量作為優(yōu)先級(jí),每一層訪問同一個(gè)優(yōu)先級(jí)的節(jié)點(diǎn),然后通過該層某優(yōu)先級(jí)的結(jié)點(diǎn)訪問到下一優(yōu)先級(jí)的結(jié)點(diǎn),直到所有的結(jié)點(diǎn)全部被訪問過為止。

由于結(jié)點(diǎn)是按照優(yōu)先級(jí)訪問,優(yōu)先級(jí)低的先訪問,優(yōu)先級(jí)的后訪問,且我們通過優(yōu)先級(jí)擴(kuò)展到的相鄰的結(jié)點(diǎn)一定是緊接著的下一優(yōu)先級(jí)的結(jié)點(diǎn)(這一點(diǎn)保證添加進(jìn)容器后,出容器的次序是按照優(yōu)先級(jí)的次序出的),于是我們可以用隊(duì)列作為寬度優(yōu)先遍歷訪問結(jié)點(diǎn)的容器。

以鄰接矩陣為存儲(chǔ)結(jié)構(gòu)的廣度優(yōu)先遍歷算法如下:

//鄰接矩陣的BFS算法 void BFS(MGraph g,int v){ queue<int>qu;//隊(duì)列存儲(chǔ)需要訪問的結(jié)點(diǎn) int w,i;visited[v]=1;//標(biāo)記初始結(jié)點(diǎn)v已經(jīng)被訪問qu.push(v);//v進(jìn)隊(duì)while (!qu.empty()){//出隊(duì)首結(jié)點(diǎn)進(jìn)行訪問并進(jìn)行標(biāo)記 w=qu.top(); qu.pop(); visited[w]=1;//尋找相鄰且訪問的結(jié)點(diǎn)進(jìn)行擴(kuò)展(進(jìn)隊(duì)),擴(kuò)展到下一優(yōu)先級(jí) for (i=0;i<g.n;i++)if (g.edges[w][i]!=0&&g.edges[w][i]!=INF&&visited[i]==0) qu.push(i);} }

復(fù)雜度為O(n2),鄰接表的廣度優(yōu)先遍歷和鄰接表的深度優(yōu)先遍歷一樣,就是在尋找相鄰結(jié)點(diǎn)時(shí)是遍歷一個(gè)單鏈表,復(fù)雜度為O(n+e)。

對(duì)于鄰接矩陣,每遍歷一個(gè)結(jié)點(diǎn)就需要將n個(gè)結(jié)點(diǎn)檢查一遍尋找相鄰且為訪問過的結(jié)點(diǎn),所以復(fù)雜度為O(n2);而對(duì)于鄰接表,每遍歷一個(gè)結(jié)點(diǎn)也需要將與它相鄰的結(jié)點(diǎn)檢查一遍,但是相鄰的結(jié)點(diǎn)是通過單鏈表存儲(chǔ)起來的,所以復(fù)雜度為所有節(jié)點(diǎn)相鄰結(jié)點(diǎn)的個(gè)數(shù)之和即為O(e)(加上n是因?yàn)檫€要遍歷節(jié)點(diǎn))。

例 4.8

假設(shè)圖G采用鄰接表存儲(chǔ),設(shè)計(jì)一個(gè)算法,求不帶權(quán)無向連通圖G中從頂點(diǎn)u到頂點(diǎn)v的一條最短路徑。

例4.8屬于廣度優(yōu)先遍歷的一個(gè)典型應(yīng)用——無權(quán)圖中求兩個(gè)頂點(diǎn)之間的最短路徑,因?yàn)閺V度優(yōu)先遍歷是按照距離起始結(jié)點(diǎn)的邊數(shù)為優(yōu)先級(jí)遍歷的,當(dāng)遍歷到結(jié)點(diǎn)v時(shí)一定起始節(jié)點(diǎn)u到結(jié)點(diǎn)v經(jīng)過邊數(shù)最少的一條路徑,即最短路徑。

對(duì)應(yīng)的算法如下(這里求路徑的方式不同于前面的兩種方式,而是采用記錄擴(kuò)展過程中前繼節(jié)點(diǎn)的方式,然后通過前繼節(jié)點(diǎn)找到最短路徑):

//求圖G中從頂點(diǎn)u到頂點(diǎn)v的最短路徑path void ShortPath(ALGraph *G,int u,int v,vector<int> &path){ ArcNode *p; int w;queue<int>qu;//存放需要訪問的結(jié)點(diǎn) int pre[MAXV];//pre[i]表示編號(hào)為i的結(jié)點(diǎn)在廣度優(yōu)先遍歷過程中,通過哪個(gè)結(jié)點(diǎn)擴(kuò)展到編號(hào)為i的結(jié)點(diǎn)(前繼結(jié)點(diǎn)編號(hào)) int visited[MAXV];//標(biāo)記結(jié)點(diǎn)是否被訪問過 memset(visited,0,sizeof(visited));//初始化標(biāo)記用的數(shù)組 qu.push(u); visited[u]=1;//標(biāo)記初始結(jié)點(diǎn)v已經(jīng)被訪問pre[u]=-1;//初始結(jié)點(diǎn)作為遞歸樹的根,前繼結(jié)點(diǎn)的編號(hào)為-1while (!qu.empty()){ //出隊(duì)首結(jié)點(diǎn)進(jìn)行訪問并進(jìn)行標(biāo)記w=qu.front(); qu.pop(); visited[w]=1; //當(dāng)前訪問的結(jié)點(diǎn)為目標(biāo)節(jié)點(diǎn)v,通過前繼結(jié)點(diǎn)找到路徑path if (w==v){int d=v;while (d!=-1){path.push_back(d); d=pre[d];} return;}//遍歷結(jié)點(diǎn)對(duì)應(yīng)的單鏈表,尋找未訪問過的相鄰結(jié)點(diǎn)加入隊(duì)列//并且記錄前繼結(jié)點(diǎn)的編號(hào) p=G->adjlist[w].firstarc;while (p!=NULL){if (visited[p->adjvex]==0){qu.push(p->adjvex); pre[p->adjvex]=w;}p=p->nextarc;}} }

保存的路徑是逆序的,輸出路徑時(shí)需要反向輸出。

求解迷宮問題

給定一個(gè)n*n的迷宮圖,例如下面8*8的迷宮圖:

OXXXXXXX
OOOOOXXX
XOXXOOOX
XOXXOXXO
XOXXXXXX
XOXXOOOX
XOOOOXOO
XXXXXXXO

其中O表示可以走的方塊,X表示障礙方塊,我們假設(shè)入口為最左上角方塊,出口為最右下角方塊,設(shè)計(jì)一個(gè)程序求入口到出口的路徑。

我們將每個(gè)可走的方塊看作一個(gè)節(jié)點(diǎn),如果兩個(gè)方塊上下左右相鄰則認(rèn)為他們之間存在邊,于是這個(gè)迷宮就轉(zhuǎn)化成了圖結(jié)構(gòu),問題就轉(zhuǎn)化為了在圖結(jié)構(gòu)中求解左上角方格對(duì)應(yīng)結(jié)點(diǎn)到右下角方格對(duì)應(yīng)結(jié)點(diǎn)的路徑。

求解路徑的方法就是廣度優(yōu)先遍歷和寬度優(yōu)先遍歷,因?yàn)槭菙?shù)據(jù)結(jié)構(gòu)中介紹過的問題這里不再做贅述。

值得一提的是,迷宮問題標(biāo)記策略是將訪問過的O方格修改成星號(hào)方格,然后在回溯時(shí)修改回O方格。
那為什么這里的標(biāo)記需要在回溯時(shí)取消標(biāo)記,而前面的BFS算法,DFS算法都不需要取消標(biāo)記呢?

BFS和DFS的目標(biāo)都是將與起始結(jié)點(diǎn)相通的結(jié)點(diǎn)按照一定的順序進(jìn)行訪問,不會(huì)出現(xiàn)一條分支無法訪問,而另一條分支可以訪問卻被前一條無法訪問的分支“擋路”的情況。

求解迷宮問題用的也是BFS和DFS算法,只是我們這樣直接通過修改進(jìn)行標(biāo)記,就不需要將未標(biāo)記過的結(jié)點(diǎn)存儲(chǔ)起來進(jìn)行標(biāo)記,可以節(jié)省一定的空間開銷。取消標(biāo)記不是為了避免“擋路”情況的出現(xiàn)。

總結(jié)

以上是生活随笔為你收集整理的第四章——蛮力法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

91探花国产综合在线精品 | 在线免费观看av网站 | 青青草视频精品 | 久久www免费人成看片高清 | 亚洲2019精品 | 97超碰人 | 午夜在线观看 | 亚洲色图美腿丝袜 | 99精品视频在线观看免费 | 亚洲精品在线一区二区三区 | 色综合天天色综合 | 在线视频亚洲 | 亚洲一区欧美激情 | 日韩一级理论片 | 欧美看片 | 在线天堂中文在线资源网 | 国产色妞影院wwwxxx | 日本精品一区二区 | 亚洲精品资源在线观看 | 四虎影视精品永久在线观看 | 美女视频网站久久 | 最近中文字幕在线中文高清版 | 精品影院一区二区久久久 | 成人h在线 | 久久理论视频 | 日韩影片在线观看 | 国产一级淫片在线观看 | 日韩精品一区二区三区水蜜桃 | 2019av在线视频 | 中文字幕韩在线第一页 | 久久国产精品一国产精品 | 一区在线播放 | aⅴ视频在线 | 国产精品久久久久久高潮 | 日韩免费视频网站 | 国产精品欧美久久 | 一区二区三区精品久久久 | 国产高清免费观看 | 六月婷婷网 | 精品久久久免费视频 | 天天干夜夜 | 黄色的片子 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 日本在线观看一区二区三区 | 国产精品久久久久久久久免费看 | 亚洲综合小说 | 日本久久久精品视频 | 中文字幕一区二区三区视频 | www看片网站| 亚洲不卡123 | 婷婷国产v亚洲v欧美久久 | 中文字幕一区二区三区在线视频 | 色爱成人网| 成人在线视 | 黄色亚洲在线 | 天天射天天搞 | 中文字幕美女免费在线 | 国产精品欧美久久久久三级 | 亚洲国产小视频在线观看 | 欧美一二三区播放 | 天天鲁天天干天天射 | 久久黄色小说 | 国产视频精品视频 | 国产a国产 | 免费美女av | 国产综合小视频 | 婷婷综合导航 | 欧美精品v国产精品v日韩精品 | 99热这里只有精品在线观看 | 91最新在线 | 九九亚洲精品 | 免费观看黄色12片一级视频 | 日韩精品久久中文字幕 | 中文字幕在线看视频 | 国产精品日韩在线播放 | 国产剧情一区二区 | 麻豆久久久久久久 | 综合网天天射 | 99久久精品国产一区二区三区 | 99视频这里有精品 | 久久婷婷精品视频 | 久久少妇免费视频 | 日韩欧美在线综合网 | 欧美 日韩 国产 中文字幕 | av成人在线网站 | 国产日韩欧美在线观看视频 | 69av网| 成人免费视频视频在线观看 免费 | 日韩亚洲国产中文字幕 | 久久男人免费视频 | 九九在线免费视频 | 黄色高清视频在线观看 | 狠狠操综合 | 色综合天天综合 | 婷婷九月激情 | 亚洲在线精品视频 | 香蕉网在线播放 | 欧美一进一出抽搐大尺度视频 | 在线观看日韩av | 国产在线精品一区 | 最新久久免费视频 | 亚洲黄色在线 | 国产手机av在线 | 超碰在线人人 | 亚洲男男gaygay无套 | 欧美日韩国产色综合一二三四 | av久久在线| 国产三级在线播放 | 成人av在线电影 | 亚洲理论片在线观看 | 国产精品一区二区免费 | 免费看国产a| 人人看人人 | 国产欧美中文字幕 | 国产综合在线视频 | 西西大胆啪啪 | 欧美一区日韩一区 | 久久精品国产第一区二区三区 | 婷婷性综合| 久久久男人的天堂 | 亚洲.www | 成年人黄色免费网站 | 免费视频一二三区 | 欧美日韩精品久久久 | 精品久久亚洲 | www在线观看国产 | 国产专区在线视频 | 91精品久久久久久久99蜜桃 | 精品欧美一区二区三区久久久 | 欧美日韩裸体免费视频 | 国产精品99久久免费黑人 | 色婷婷狠 | 国产五月婷婷 | 天天拍夜夜拍 | 一区二区三区视频在线 | 中文字幕一区二区三区在线观看 | 操操操影院 | 最近高清中文字幕在线国语5 | 九九在线免费视频 | 热久久免费视频 | 欧美日韩综合在线 | 免费三及片 | 高清不卡一区二区在线 | 久久综合色一综合色88 | 天天av资源 | 欧美日韩亚洲在线观看 | 黄色亚洲在线 | 国产成人福利片 | 国产破处在线播放 | 日韩久久精品一区二区三区下载 | 水蜜桃亚洲一二三四在线 | 久久综合色婷婷 | 日韩免费看| 69av视频在线观看 | 精品免费99久久 | 亚洲精品久久久久999中文字幕 | 中文在线a√在线 | 国产日韩在线观看一区 | 亚洲永久精品视频 | 精品亚洲网 | 六月激情久久 | 欧美怡红院| 99成人在线视频 | 色综合国产| 808电影免费观看三年 | 国产色视频一区二区三区qq号 | 午夜视频免费在线观看 | 国产精品黄网站在线观看 | 玖玖视频免费在线 | 欧美一区二区三区激情视频 | 欧美韩日视频 | 黄色亚洲片 | 国产精久久久久久妇女av | 国产免费一区二区三区网站免费 | 久久综合精品国产一区二区三区 | 精品麻豆| 日韩欧美精品在线视频 | 日韩成人精品一区二区三区 | 在线观看中文av | 久久国产热 | 久久视频网| 日韩精品91偷拍在线观看 | 精品国产伦一区二区三区免费 | 久久久久99精品成人片三人毛片 | 粉嫩av一区二区三区免费 | 久久精品视频网站 | 午夜免费视频网站 | 香蕉久草在线 | 久久草网站 | 深爱激情开心 | 在线播放你懂 | 免费中文字幕视频 | 日韩最新av | 激情五月婷婷综合 | 国产免码va在线观看免费 | 久久不卡日韩美女 | av不卡免费在线观看 | 精品亚洲在线 | 91九色视频网站 | 韩日三级av| 99久久精品免费看国产 | 国产人在线成免费视频 | 国产精品久久久久久久久搜平片 | www.97色.com| 五月开心六月伊人色婷婷 | 黄色软件网站在线观看 | 免费人成网ww44kk44 | 三级黄色在线观看 | 久久精品国产成人精品 | 国产精品日韩在线观看 | av看片网| 91伊人影院 | 久久69av | 国产午夜精品一区二区三区在线观看 | 精品一区二区三区四区在线 | 久久久久久久久影院 | 亚洲综合狠狠干 | 天天射天天干天天操 | 精品国产不卡 | 天天操狠狠操网站 | 日韩久久一区 | 粉嫩av一区二区三区四区在线观看 | 在线 国产一区 | 色夜影院| 亚洲精品国产自产拍在线观看 | 女人18精品一区二区三区 | 欧美一区二区在线免费观看 | 91福利在线观看 | 天天摸天天干天天操天天射 | 日韩免费在线 | 婷婷精品在线 | 日韩欧美电影在线观看 | 日本中出在线观看 | 91精品人成在线观看 | 999国内精品永久免费视频 | 久久久免费精品 | av福利网址导航大全 | 伊人永久在线 | 国产中文字幕在线观看 | 亚洲精品国产麻豆 | 午夜天使| 五月婷久 | 久久99国产精品免费网站 | 成人中文字幕在线观看 | 在线视频手机国产 | www.色婷婷.com | 日韩免费视频在线观看 | 国产精品免费人成网站 | 91在线91 | 欧美日产一区 | 国产青春久久久国产毛片 | 国产1区在线观看 | 日本精品xxxx| 又黄又爽又刺激的视频 | 午夜10000| 国产小视频在线免费观看 | 91亚瑟视频 | 91日韩精品一区 | 久久不射电影网 | 亚洲国产理论片 | 国产欧美日韩精品一区二区免费 | 欧美美女视频在线观看 | 久久久免费精品国产一区二区 | 欧美精品久久久久久久久久 | 永久免费精品视频网站 | 黄色a大片 | 亚洲每日更新 | 欧美日韩xx| 精品毛片一区二区免费看 | 久久久免费 | 日韩性xxxx | 日韩成年视频 | 少妇视频在线播放 | 日日夜夜精品免费 | 亚洲精品在线资源 | 亚洲综合欧美激情 | 国产一性一爱一乱一交 | 欧美日韩高清一区二区 国产亚洲免费看 | 最新av电影网站 | 日韩av女优视频 | 99精品欧美一区二区 | 免费av高清 | av中文字幕网址 | 日韩高清精品一区二区 | 成人aaa毛片 | 美女免费av | 国产一级免费视频 | 国产一区二区久久精品 | 91av原创| 欧美黄污视频 | 综合久久婷婷 | 四虎永久免费网站 | 69国产在线观看 | 国产婷婷视频在线 | 久久久久免费精品视频 | 在线播放国产一区二区三区 | 麻豆94tv免费版 | 日韩精品久久久久久 | 日日干日日 | 91在线观看视频 | 色噜噜日韩精品欧美一区二区 | 欧美日韩高清在线一区 | 狠狠干婷婷 | 视频高清 | 一区二区精品视频 | 奇米影视8888在线观看大全免费 | 免费黄a| 国产精品毛片久久久久久 | 亚洲精品视频第一页 | 国产专区精品视频 | 8x成人在线| 友田真希x88av | 成年人免费电影在线观看 | 91av片| 日韩高清久久 | 超碰av在线| 亚洲国产精品视频 | 久久久久久久久久久成人 | 中文字幕久久精品一区 | 久久精品老司机 | 97日日碰人人模人人澡分享吧 | 色吊丝在线永久观看最新版本 | 亚洲成人资源网 | 中文字幕第一页在线视频 | 国产伦精品一区二区三区无广告 | 亚洲乱码中文字幕综合 | www.狠狠插.com | 国产在线观看免费 | 国产资源在线免费观看 | 久爱精品在线 | 日日狠狠 | 国产在线免费 | 国产视频精品久久 | 欧美高清视频不卡网 | 人人干网 | 久久久久久久久精 | 超碰在线公开免费 | 亚洲精品中文在线观看 | 精品不卡视频 | 久久8精品| 国产精品99久久久久久久久久久久 | 日本久久久久久久久久 | 国产色小视频 | 久久精品婷婷 | 欧美另类xxx | 欧美日韩不卡在线 | 成 人 黄 色 视频免费播放 | 久久久久久久久久久久电影 | 中文字幕电影高清在线观看 | 99精品免费 | 日本爱爱免费 | 最新极品jizzhd欧美 | 91日韩精品 | 天天干天天操人体 | 精品久久91 | a视频免费在线观看 | 日黄网站 | 四虎在线免费观看 | 日本免费一二三区 | 日韩在线观看网址 | 97超碰人人澡人人爱学生 | 日韩精品一区二区久久 | 国产一级片网站 | 亚洲专区视频在线观看 | 亚洲国产成人在线观看 | 欧美黄在线 | 二区视频在线 | 国产最新91 | 就色干综合 | 九九国产视频 | 精品影院一区二区久久久 | 天天av在线播放 | 激情五月开心 | 九九在线高清精品视频 | 中文字幕一区二区三区在线播放 | 精品国产乱码久久久久久久 | 永久av免费在线观看 | www久久久久| 国产精品美乳一区二区免费 | 国产日韩精品一区二区三区在线 | 国产高清成人 | 女人18毛片a级毛片一区二区 | 狠狠狠狠狠狠天天爱 | 91网站在线视频 | 五月婷婷综合网 | 国产aa精品 | 久久精品欧美一 | 日韩精品一二三 | 色多多在线观看 | 亚洲国产精品小视频 | av中文天堂在线 | 久久婷婷五月综合色丁香 | 人人玩人人添人人 | 91九色性视频 | 国产99久久久国产精品免费看 | av国产网站| 久久久久黄 | 亚洲精品h | h视频在线看 | 香蕉视频国产在线观看 | 天天操夜夜想 | 亚洲免费一级 | 在线91播放 | 香蕉影视 | 91热视频在线观看 | 97视频在线观看免费 | 亚洲最快最全在线视频 | 五月天六月婷婷 | 国产精品成人一区二区三区 | 日韩欧美视频在线免费观看 | 在线观看黄污 | 在线观看色网 | 天天摸天天舔天天操 | 国产精品乱码久久久久久1区2区 | 色婷av| 亚洲欧美国产视频 | 久久国产精品区 | 日韩欧美视频在线 | 黄色亚洲大片免费在线观看 | 永久免费的啪啪网站免费观看浪潮 | 一区二区 不卡 | av免费网页 | 国产精品永久 | 亚洲精品在线视频播放 | 久久久三级视频 | 天天干夜夜 | 91精品视频免费在线观看 | av不卡网站 | 欧美精品久久久久久久久久白贞 | 综合久久久久久 | 亚洲 欧美 国产 va在线影院 | 国产视频不卡一区 | 午夜的福利 | 在线观看av大片 | 国产成人一区二区三区在线观看 | 亚洲1区在线| 五月婷在线 | 一区免费在线 | 深夜男人影院 | 日韩成人黄色av | 91久久精品一区二区三区 | 国产毛片久久 | 91久久国产自产拍夜夜嗨 | 激情网婷婷 | 久久久久亚洲精品男人的天堂 | 在线91观看 | 婷婷视频导航 | 国产在线精 | 亚洲精品国产精品乱码不99热 | 国产一区二区电影在线观看 | 欧美精品久久99 | 国产高清视频色在线www | 久久黄色网址 | 久久久久久黄色 | 中文在线字幕免 | 亚洲在线视频播放 | 亚洲天天| 91爱爱免费观看 | 国产99久久九九精品免费 | 亚洲五月六月 | 日本精品视频在线观看 | 久久国产美女视频 | 成年人在线视频观看 | 高清视频一区二区三区 | 久久综合电影 | 超碰人人做 | 六月丁香激情综合色啪小说 | 人人玩人人添人人 | 亚洲综合五月 | 91久久久久久国产精品 | 欧美日韩国产综合网 | 视频在线播放国产 | 91免费视频国产 | 日韩高清一区 | 日韩国产欧美在线播放 | 永久黄网站色视频免费观看w | 91av在线看| 久久久久久久久久国产精品 | av资源免费看 | 99这里只有久久精品视频 | 曰本三级在线 | 中文字幕视频网站 | 国产成人久久精品一区二区三区 | 色停停五月天 | 97狠狠操 | 天堂网一区 | 国产高清视频免费在线观看 | 久久久久福利视频 | 97超碰资源总站 | 91精品久久久久久久久久久久久 | 久久久久久蜜av免费网站 | 香蕉视频久久 | 成人精品视频久久久久 | 久色 网| 久久免费播放视频 | 五月婷婷丁香色 | 色偷偷88888欧美精品久久 | 国产一区二区播放 | 爱爱av在线 | 99这里只有久久精品视频 | 婷婷伊人综合亚洲综合网 | 中文字幕色站 | 美女视频黄在线 | 天天躁日日躁狠狠躁 | 国产成人精品一区二三区 | 有码一区二区三区 | 日韩精品一区二区在线观看视频 | 蜜臀av性久久久久av蜜臀妖精 | 丁香婷婷色综合亚洲电影 | 精品uu | 国产免费视频一区二区裸体 | 国产一线二线三线性视频 | 欧美日韩精品影院 | 国产亚洲一级高清 | 中文在线√天堂 | 一区二区三区日韩在线观看 | 日韩av网页 | 亚洲一区视频免费观看 | 国产精品原创av片国产免费 | 国产成人精品一区二区三区免费 | 国产日产高清dvd碟片 | 亚洲国产电影在线观看 | 91免费网站在线观看 | 精品视频免费播放 | 人人草在线视频 | 99久久er热在这里只有精品15 | 久久极品| 久久国产视频网 | 久草a在线 | av在线影片 | 日韩激情中文字幕 | 国产精品免费久久久久久 | 午夜精品久久 | 国产一区二区在线免费观看 | 国产精品精品国产色婷婷 | 99热在线这里只有精品 | 中文字幕在线观 | 中文字幕在线不卡国产视频 | 99在线精品免费视频九九视 | 天天综合天天做 | 欧亚久久 | 天天干国产 | 天天爽天天摸 | 在线亚洲精品 | 亚洲欧洲国产精品 | 日韩特黄一级欧美毛片特黄 | 久久久综合九色合综国产精品 | 国产伦精品一区二区三区… | 成人免费在线播放视频 | 亚洲天天在线日亚洲洲精 | 国产在线免费观看 | 久久这里精品视频 | 色网站黄 | 99色在线观看 | 狠狠的操狠狠的干 | 日日碰狠狠躁久久躁综合网 | 夜色成人av| 久久五月情影视 | 一区中文字幕电影 | 一区二区三区免费网站 | 最新影院 | 国产精品免费成人 | 在线亚洲欧美日韩 | 久久男人中文字幕资源站 | 天天射天天色天天干 | 日韩精品免费一区二区三区 | 五月天久久激情 | 高清av中文在线字幕观看1 | 成年人在线免费看视频 | 黄色软件在线观看 | 日日摸日日碰 | 成人久久 | 一级理论片在线观看 | 成人禁用看黄a在线 | 成人欧美日韩国产 | 韩国av一区 | 五月天视频网 | 国产亚洲精品bv在线观看 | 99久久一区 | 激情偷乱人伦小说视频在线观看 | 国产精品嫩草影院99网站 | 中国精品一区二区 | 国产精品美女毛片真酒店 | 午夜影视av| 国产一区二区久久久久 | 亚洲激情小视频 | 色美女在线 | 黄色av免费看 | 国产黄色片免费观看 | 亚洲一级片在线观看 | www.天天草| 在线看v片成人 | 免费国产亚洲视频 | 亚洲综合日韩在线 | 中文一区在线 | 国产成人精品久久久久 | 亚洲黄色高清 | av在线免费网站 | а天堂中文最新一区二区三区 | 人人干97 | 成人作爱视频 | av在线免费在线观看 | 欧美精品v国产精品v日韩精品 | 国产视频在线看 | 欧美精品一区二区蜜臀亚洲 | 99久热在线精品视频成人一区 | 亚洲最新av在线网址 | 日韩 在线| 国产精品美女久久久久久免费 | 成年人天堂com | 中文字幕日韩在线播放 | 91九色视频国产 | 中文字幕 婷婷 | 久久免费在线视频 | 日韩理论片中文字幕 | 日韩在线视频一区二区三区 | 国产99久久久国产精品免费二区 | 黄色片亚洲 | 午夜久久网站 | www最近高清中文国语在线观看 | 久久国产精品一区二区三区四区 | 成人精品久久久 | 四虎国产视频 | 亚洲欧美国产日韩在线观看 | 日韩激情久久 | 91成人欧美| 国产高清av | 色.www | 久久久久久久久黄色 | www.xxxx欧美| 欧美精品久久久久久 | 日韩激情免费视频 | 99re8这里有精品热视频免费 | 人人爽人人爽人人 | 日本性高潮视频 | 国产成人黄色在线 | 亚洲永久精品国产 | 国产女做a爱免费视频 | 国产精品黑丝在线观看 | 国内精品久久久久影院一蜜桃 | 亚州精品在线视频 | 在线午夜av | 国产a网站 | 国产精品不卡视频 | 久久综合狠狠综合 | 亚洲欧洲xxxx | 在线精品观看 | 久久永久免费视频 | 91人人爱 | 九九在线国产视频 | 日b黄色片 | 欧美一级欧美一级 | 狠狠操狠狠干天天操 | 在线播放国产一区二区三区 | 91成人黄色 | 成人av免费电影 | 制服丝袜一区二区 | 久久久免费播放 | 超碰人人草 | 一级久久精品 | 最新中文字幕在线资源 | 国产精品私人影院 | 国产精品成人免费一区久久羞羞 | 国产大片免费久久 | 国产高清久久久 | 久久精品女人毛片国产 | 久久久99精品免费观看app | 亚洲视屏在线播放 | 国产视频1 | 国产精品18videosex性欧美 | 一区二区不卡视频在线观看 | 探花视频在线版播放免费观看 | 五月婷婷视频 | 日韩免费一级a毛片在线播放一级 | 国产精品久久久久久久久岛 | 四虎国产精品成人免费4hu | 精品久久久影院 | 久久人人爽人人片 | 日本爽妇网 | 天天操天天爽天天干 | 成人h视频在线播放 | 国产精品99免视看9 国产精品毛片一区视频 | 日韩有码在线观看视频 | 国产成人福利在线观看 | 亚洲国产中文字幕在线观看 | 夜夜躁日日躁狠狠久久av | 夜夜操网| 碰超在线观看 | 成人av教育 | 91亚洲网| www日韩视频 | 久久免费视频3 | 久在线| 成人性生交视频 | 国产精品一区二区吃奶在线观看 | 亚洲免费在线看 | av三级在线看 | 日韩精品久久久久 | 天天操天天操天天操天天操天天操 | 麻豆精品视频 | 91污视频在线 | 国产在线观看一 | 国产精品成 | 黄色在线看网站 | 欧美精品小视频 | 日本久久电影 | 女人高潮特级毛片 | 激情综合狠狠 | 久久国产精品免费观看 | 波多野结衣理论片 | 日韩国产精品毛片 | 97免费在线观看视频 | japanesefreesexvideo高潮| 久久九九久久精品 | 人人爽人人爽人人爽人人爽 | 五月婷婷在线观看视频 | 久久精品观看 | 亚洲精品在线免费播放 | 欧美性网站| 欧美 亚洲 另类 激情 另类 | 色黄久久久久久 | 四虎影视欧美 | 亚洲区视频在线 | 国产老太婆免费交性大片 | 午夜精品一区二区三区视频免费看 | 国际精品久久久久 | 欧美日韩在线第一页 | 亚洲黄色在线播放 | 婷婷丁香视频 | 中文字幕在线观看2018 | 成人教育av| 97视频在线观看免费 | 久久午夜精品影院一区 | 91精品视频一区二区三区 | 精品人妖videos欧美人妖 | 成人av电影网址 | 亚洲精品午夜久久久 | 亚洲国产综合在线 | 九七视频在线观看 | 天天干夜夜 | 日韩av黄 | 国产精品久久久久久婷婷天堂 | 午夜精品视频免费在线观看 | 99热 精品在线 | 久久九九国产视频 | 日韩美精品视频 | 亚洲免费精品一区二区 | 日韩网站在线免费观看 | 国产视频不卡 | 91完整版在线观看 | 久草com | 国产成在线观看免费视频 | 亚洲网站在线 | 国产麻豆视频在线观看 | 99久久影院 | 免费观看日韩 | 青草视频在线免费 | 欧美一区二区三区免费看 | 国产在线精品播放 | 狠狠狠色丁香婷婷综合久久88 | 麻豆高清免费国产一区 | 毛片网站免费 | 日韩剧情| 精品视频不卡 | 四川妇女搡bbbb搡bbbb搡 | 亚洲一级国产 | www.com黄| 久久精品系列 | 久久精品爱爱视频 | 五月婷婷综合在线 | 亚洲人成网站精品片在线观看 | 狠狠色丁香婷婷综合视频 | 91福利社在线观看 | 国产精品热视频 | 国产精品 中文在线 | 黄av免费 | 日韩精品一区二区三区中文字幕 | 久久99精品国产91久久来源 | 在线观看完整版免费 | 99精品视频精品精品视频 | 友田真希av | 日韩有码在线观看视频 | 最近在线中文字幕 | 亚洲九九九在线观看 | 日韩一区二区三免费高清在线观看 | 激情五月色播五月 | 成人a在线观看高清电影 | 中文字幕亚洲精品日韩 | 在线午夜电影神马影院 | 国产精选在线观看 | 免费在线观看视频a | 国产精品一区二区62 | 久久午夜影院 | 13日本xxxxxⅹxxx20 | 99精品免费在线观看 | 国产精品九九久久久久久久 | a在线免费观看视频 | 国产丝袜制服在线 | 人人舔人人 | 国产麻豆视频网站 | 二区三区在线 | 九色在线 | 精久久久久 | 亚洲精品大全 | 91精品视频在线播放 | 免费看av在线 | 激情网综合 | 黄色日本免费 | 高清国产午夜精品久久久久久 | 国产三级精品三级在线观看 | 免费高清在线视频一区· | 国产精品美女久久久 | 91精品入口 | 中文字幕永久在线 | 亚洲精品99久久久久中文字幕 | 国产精品一区二区美女视频免费看 | 亚洲专区在线视频 | 久久免费观看视频 | 人成在线免费视频 | 97精品超碰一区二区三区 | 日本黄色大片免费 | 久久精品中文字幕一区二区三区 | 欧美一区成人 | av一区二区在线观看中文字幕 | 亚洲精品综合欧美二区变态 | 亚洲综合在线发布 | 青青河边草免费观看完整版高清 | 免费看的黄色 | 亚洲va欧美va | 免费精品在线视频 | 久久天天操 | 99在线精品视频在线观看 | 在线黄色免费av | 成年人黄色大片在线 | 国产视频资源在线观看 | 一区二区三区视频在线 | 天天曰天天曰 | 精品国产一区二区三区蜜臀 | 人人cao| 在线香蕉视频 | 国产免费亚洲 | 欧美久草在线 | 91九色精品女同系列 | 国产午夜影院 | 91大神精品视频在线观看 | 国产在线无 | 亚洲女欲精品久久久久久久18 | 国产精品国产三级在线专区 | 国产97av | 日日操天天操狠狠操 | 久久久精品日本 | 亚洲精品黄网站 | av一区二区三区在线播放 | 欧美精品做受xxx性少妇 | 成人av片免费看 | 27xxoo无遮挡动态视频 | 操操操日日日 | 黄色大片入口 | 天堂av高清 | 久久99电影 | 日韩高清免费在线 | 96av在线视频 | 婷婷成人亚洲综合国产xv88 | 999视频网| 伊人小视频 | 国产一区二区三区免费观看视频 | 亚洲乱码国产乱码精品天美传媒 | 91成人区| 国产亚洲精品久久久久久电影 | 99精品热视频 | 国产精品久久久久久av | 最近高清中文字幕在线国语5 | 欧美日韩国产二区三区 | 婷婷精品国产欧美精品亚洲人人爽 | 天天激情天天干 | 99视频免费播放 | 国产99久久99热这里精品5 | 干亚洲少妇 | 日本在线h| 精品美女视频 | 伊人色播 | 亚洲一区二区三区精品在线观看 | 免费久久99精品国产婷婷六月 | 最新中文字幕在线播放 | 久久精品视频在线免费观看 | 国产 欧美 日产久久 | 五月天亚洲婷婷 | 韩国av免费观看 | 96久久久 | 国产综合在线观看视频 | 开心色插 | 亚洲精品视频网站在线观看 | 91视频91色 | 777视频在线观看 | 国产成人精品日本亚洲999 | 欧美一区二区三区在线播放 | 二区三区在线 | 精品一区二区在线看 | 草久久久久 | www.天堂av | 在线 影视 一区 | 成人在线观看av | 国产资源精品在线观看 | 国产福利91精品一区二区三区 | 国产精品字幕 | 天天精品视频 | 亚洲一区 影院 | 欧美日韩国产免费视频 | 91丨精品丨蝌蚪丨白丝jk | 精品日韩av| 日韩在线视频免费观看 | 91av免费在线观看 | 超碰在线97观看 | 天堂在线一区二区 | 一区二区三区日韩视频在线观看 | 深夜免费小视频 | 在线观看视频你懂 | 久久人人爽人人人人片 | 欧美久草网 | 少妇bbbb搡bbbb桶 | 黄色影院在线免费观看 | 一级a性色生活片久久毛片波多野 | 亚洲精欧美一区二区精品 | 夜夜操天天 | 日韩xxx视频 | www.国产高清| 天天操天天干天天干 | 久草免费福利在线观看 | 免费三级大片 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 成年人免费看片 | 天天操福利视频 | 人人爱天天操 | 国产精品久久久久久久久软件 | 97在线观视频免费观看 | av电影av在线 | 久久精品1区 | 9ⅰ精品久久久久久久久中文字幕 | 午夜精品婷婷 | 婷婷去俺也去六月色 | 97精品国产91久久久久久久 | 黄色影院在线免费观看 | 欧美福利片在线观看 | 不卡中文字幕av | 亚洲精品久久在线 | 国产精品久久久久久超碰 | 国产精品免费久久久 | 久久午夜精品影院一区 | 久久96 | 久久久久麻豆v国产 | 久久电影国产免费久久电影 | 国产视频一区在线免费观看 | 久久精品影片 | 中文字幕中文字幕在线中文字幕三区 | 国产亚洲精品成人av久久ww | 欧美午夜久久久 | 天天操天天干天天综合网 | av三级av | 久久久视频在线 | 天天干人人干 | 99精品久久久 | 麻豆91精品91久久久 | 国产h片在线观看 | 欧美精品少妇xxxxx喷水 | 国产韩国精品一区二区三区 | 精品国偷自产国产一区 | 99精品免费在线 | 久久一区二区三区国产精品 | 黄色成人av网址 | 2017狠狠干 | 国内视频在线观看 | 亚洲午夜剧场 | 91成人免费观看视频 | 亚洲 欧洲 国产 日本 综合 | 免费观看视频黄 | av一本久道久久波多野结衣 | 国产99久久 | 夜夜澡人模人人添人人看 | 日韩1级片 | 国产精品18videosex性欧美 | 99久久久久久久 | 久久精品久久久久 | 91在线在线观看 | 亚洲一区欧美激情 | 久久久夜色 | 99视频在线精品国自产拍免费观看 | www.黄色网.com | 成人免费中文字幕 | 不卡的一区二区三区 | 日韩电影一区二区在线观看 | 亚洲一区二区91 | 2021av在线 | 在线观看黄网站 | 日韩久久电影 | 免费成人在线网站 | 国产免费观看视频 | 中文字幕a∨在线乱码免费看 | 日韩在线观看不卡 |