日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

算法分析股票类型的相关题型

發(fā)布時(shí)間:2025/3/20 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法分析股票类型的相关题型 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近在看算法時(shí)看到股票類的題目覺(jué)得很有意思,在這里對(duì)于比較好的方法做一下總結(jié),盡量讓大家看一遍就可以記住這個(gè)問(wèn)題該怎么解決。其實(shí)學(xué)習(xí)算法是一個(gè)痛苦的過(guò)程,但不管怎樣最終提升的是自己的能力,所以希望讀到文章的小伙伴如果也是同樣對(duì)算法感興趣或者沒(méi)有興趣但想學(xué)習(xí)算法的同學(xué),努力堅(jiān)持,在某一天你就會(huì)突然發(fā)現(xiàn),我怎么這么牛哈哈!
不扯閑話了。最近看到有股票相關(guān)的算法題目,于是把相關(guān)類型的題目做了總結(jié)記錄在這里,大家在看到一個(gè)問(wèn)題的同時(shí)也可以看一下其他的類型的題目。大家可以先不要看后面的解析自己做一下,我在這里的解法也只是給大家提供一個(gè)解題的思路和方法,如果大家有更好的解體思路和方式,可以留言,我們大家一起探討。
對(duì)于股票類型的題目,都是求如何獲取最大的利益,大致整理如下:

1.買賣股票的最佳時(shí)機(jī)-最多只允許完成一筆交易(即買入和賣出一支股票一次) 2.買賣股票的最佳時(shí)機(jī)-最多可以完成 兩筆 交易 3.買賣股票的最佳時(shí)機(jī)-最多可以完成 k 筆交易 4.買賣股票的最佳時(shí)機(jī)-盡可能地完成更多的交易(多次買賣一支股票) 5.買賣股票的最佳時(shí)機(jī)-盡可能地完成更多的交易(多次買賣一支股票),賣出股票后,你無(wú)法在第二天買入股票 (即冷凍期為 1 天) 6.買賣股票的最佳時(shí)機(jī)-可以無(wú)限次地完成交易,但是你每筆交易都需要付手續(xù)費(fèi)

可能有的同學(xué)對(duì)于股票買賣不是很清楚,我在這里大致說(shuō)一下,一只股票在每一天的價(jià)格可能都不一樣,你需要選擇低價(jià)的時(shí)候買入,高價(jià)的時(shí)候賣出才能盡可能獲得較高的利益,題目中還有一個(gè)要求就是你在買入以后只有賣出之后才能繼續(xù)進(jìn)行買賣。例如某個(gè)股票五天的價(jià)格分別為7,1,5,3,6,4,在第 2 天(股票價(jià)格 = 1)的時(shí)候買入,在第 5 天(股票價(jià)格 = 6)的時(shí)候賣出,最大利潤(rùn) = 6-1 = 5,同時(shí),你不能在買入前賣出股票。其他不懂得地方大家可以自行百度。接下來(lái)我們由簡(jiǎn)單到復(fù)雜來(lái)分析一下。
這里我們給定一個(gè)整數(shù)數(shù)組 prices,其中第 i 個(gè)元素代表了第 i 天的股票價(jià)格。

買賣股票的最佳時(shí)機(jī)-最多只允許完成一筆交易(即買入和賣出一支股票一次)

我們先來(lái)看最多只允許完成一筆交易的情況。我們來(lái)假設(shè)自己來(lái)購(gòu)買股票。隨著時(shí)間的推移,每天我們都可以選擇出售股票與否。那么,假設(shè)在第 i 天,如果我們要在今天賣股票,那么我們能賺多少錢(qián)呢?顯然,如果我們真的在買賣股票,我們肯定會(huì)想:如果我是在歷史最低點(diǎn)買的股票就好了。這里采用動(dòng)態(tài)規(guī)劃的思想進(jìn)行解決。通常采用動(dòng)態(tài)規(guī)劃解決問(wèn)題主要步驟分為三步:

1.定義狀態(tài) 2.找出狀態(tài)轉(zhuǎn)移方程 3.初始狀態(tài)確定

那么這里的這三個(gè)步驟分別應(yīng)該怎么定義呢?我們假設(shè)動(dòng)態(tài)規(guī)劃表為dp[i],表示以 prices[i]為結(jié)尾的子數(shù)組的最大利潤(rùn),這就定義好了狀態(tài);假如計(jì)劃在第 i 天賣出股票,那么第i日最大利潤(rùn)dp[i] 應(yīng)該等于前 i - 1 日最大利潤(rùn) dp[i-1] 和第 i日賣出的最大利潤(rùn)中的最大值,用數(shù)學(xué)公式表示即:

dp[i]=max(dp[i?1],prices[i]?min(prices[0:i]))

以上就是狀態(tài)轉(zhuǎn)移的方程;
接下來(lái)需要定義初始狀態(tài)dp[0],即首日的收益,顯然dp[0]=0,依據(jù)以上公式遍歷,最后得到的dp[n-1]即為最后的最大利益,其中n為dp列表的長(zhǎng)度。
下面是代碼:

// 最多只允許完成一筆交易 /*** @Author likangmin* @create 2020/10/27 19:16*/ public int maxProfit(int[] prices) {if(prices==null||prices.length==0){return 0;}int[] dp=new int[prices.length];dp[0]=0;int minPrice=Integer.MAX_VALUE;for(int i=1;i<prices.length;i++){minProce=Math.min(minPrice,prices[i]);dp[i]=Math.max(dp[i-1],prices[i]-minPrice);}return dp[prices.length-1];}

由于 dp[i] 只與 dp[i - 1] , prices[i] , minPrice相關(guān),因此可使用一個(gè)變量profit代替 dp列表。優(yōu)化后的轉(zhuǎn)移方程為:

profit=max(profit,prices[i]?min(minPrice,prices[i])

則代碼可以優(yōu)化為:

// 最多只允許完成一筆交易 /*** @Author likangmin* @create 2020/10/27 19:27*/public static int maxProfit(int[] prices) {int minprice=Integer.MAX_VALUE,profit=0;for(int price:prices){minprice=Math.min(minprice,price);profit=Math.max(profit,price-minprice);}return profit;}

看起來(lái)更加簡(jiǎn)潔,這就解決了最多只允許完成一筆交易的情況。大家對(duì)于這類問(wèn)題有沒(méi)有了初步的一個(gè)解題思路了呢?相信對(duì)這個(gè)有了一定的了解之后對(duì)于后面的幾類問(wèn)題會(huì)相對(duì)比較容易理解一些。

買賣股票的最佳時(shí)機(jī)-盡可能地完成更多的交易(多次買賣一支股票)

接下來(lái)看一個(gè)比較簡(jiǎn)單的問(wèn)題:盡可能地完成更多的交易(多次買賣一支股票)。為什么說(shuō)簡(jiǎn)單呢?其實(shí)只要把題目的意思翻譯成大家都通俗易懂的意思,那就會(huì)恍然大悟。大家看完以下的解釋就會(huì)知道,同樣你也會(huì)覺(jué)得非常簡(jiǎn)單。對(duì)于多次買賣沒(méi)有限定次數(shù)的情況,在這里給大家分為三個(gè)場(chǎng)景:

單獨(dú)交易日:假設(shè)今天的價(jià)格是p1,明天的價(jià)格是p2,則今天買入明天賣出可以賺取的利益為p2-p1(負(fù)值代表虧損) 連續(xù)上漲交易日:設(shè)此上漲交易日股票價(jià)格分別為p1,p2......pn,則第一天買最后一天賣最大為pn-p1,很多同學(xué)可能就是在這里不知道則呢忙處理,其實(shí)這個(gè)可以等價(jià)成每天都買賣,即pn-p1=(p2-p1)+(p3-p2)+......+(pn-pn-1)。 連續(xù)下降交易日:不進(jìn)行買賣的話收益最大。

則依據(jù)以上分析,我們可以按照下main的操作進(jìn)行獲取不限次數(shù)交易的最大利益:遍歷整個(gè)股票交易日價(jià)格列表,所有上漲交易日都買賣(賺到所有利潤(rùn)),所有下降交易日都不買賣(永不虧錢(qián)),具體定義流程如下:

1.設(shè) res為第 i-1 日買入與第 i 日賣出賺取的利潤(rùn),即 res= prices[i] - prices[i - 1] ; 2.當(dāng)該天利潤(rùn)為正 res> 0,則將利潤(rùn)加入總利潤(rùn) profit;當(dāng)利潤(rùn)為 0 或?yàn)樨?fù),則直接跳過(guò); 3.遍歷完成后,返回總利潤(rùn) profit即為最大的利潤(rùn)

以下是代碼:

// 多次買賣 /*** @Author likangmin* @create 2020/10/27 20:00*/ public int maxProfit(int[] prices) {int profit=0;for(int i=1;i<prices.length;i++){int res=prices[i]-prices[i-1];if(res>0){profit+=res;}}return profit;}

是不是很簡(jiǎn)單?其實(shí)只要你理解了題目的真正意思,那基本都可以按照思路自己寫(xiě)出來(lái)。

買賣股票的最佳時(shí)機(jī)-最多可以完成 兩筆 交易

接下里讓我們看最多交易兩次的問(wèn)題。
在一定的天數(shù)內(nèi),我們最多可以進(jìn)行兩次交易,分為 買-賣-買-賣,所以問(wèn)題的關(guān)鍵就是找到這4個(gè)點(diǎn)的最優(yōu)分布。而第一次買入 / 第一次賣出 / 第二次買入 / 第二次賣出 這四個(gè)過(guò)程都可能發(fā)生在今天。為了更好的說(shuō)明,在這里我們舉一個(gè)例子:

我現(xiàn)在要進(jìn)行股票交易 第一次買入花了2元, 利潤(rùn)為 -2 元 第一次賣出,買了4元,利潤(rùn)為 4-2 = 2 元 第二次買入,花了3元,利潤(rùn)為 2-3 = -1 元 第二次賣出,賣了5元,利潤(rùn)為 -1 + 5 = 4 元

基于以上的一個(gè)狀態(tài),定義了4個(gè)變量與上述4個(gè)過(guò)程對(duì)應(yīng):

第一次買入后的狀態(tài): minPrice1: 第一次買入后的利潤(rùn) 第一次賣出后的狀態(tài): maxProfit1: 第一次賣出后的利潤(rùn) 第二次買入后的狀態(tài): maxProfitAtferBuy第二次買入后的利潤(rùn) 第二次賣出后的狀態(tài): maxProfit2:第二次賣出后的利潤(rùn)

然后遍歷每一天,在每一天我們都作 4個(gè)假設(shè),并更新上面4個(gè)狀態(tài):

假設(shè)今天第一次買入:更新 最低價(jià)格 假設(shè)今天第一次賣出:更新 第一次最大利潤(rùn) 假設(shè)今天第二次買入:更新 第二次買后的最大剩余利潤(rùn) 假設(shè)今天第二次賣出:更新 當(dāng)天能獲得的最大利潤(rùn)

有了以上的一個(gè)分析,那就很容易的將代碼寫(xiě)出來(lái)了:

// 最多交易兩次 /*** @Author likangmin* @create 2020/10/27 20:10*/ public static int maxProfit2(int[] prices) {int minPrice1 = Integer.MAX_VALUE;int maxProfit1 = 0;int maxProfitAfterBuy = Integer.MIN_VALUE;int maxProfit2 = 0;for(int price : prices) {// 1.第一次最小購(gòu)買價(jià)格minPrice1 = Math.min(minPrice1, price);// 2.第一次賣出的最大利潤(rùn)maxProfit1 = Math.max(maxProfit1, price - minPrice1);// 3.第二次購(gòu)買后的剩余凈利潤(rùn)maxProfitAfterBuy = Math.max(maxProfitAfterBuy, maxProfit1 - price );// 4.第二次賣出后,總共獲得的最大利潤(rùn)(第3步的凈利潤(rùn) + 第4步賣出的股票錢(qián))maxProfit2 = Math.max(maxProfit2, price + maxProfitAfterBuy);}return maxProfit2;}

買賣股票的最佳時(shí)機(jī)-最多可以完成 k 筆交易

接下來(lái)看交易K次的問(wèn)題,這個(gè)題和兩次交易 基本就可以歸為一個(gè)類型。我們?cè)跊](méi)進(jìn)行交易的時(shí)候,利潤(rùn)是為 0 的;每次買入,手上的錢(qián)會(huì)減少,即:利潤(rùn)減少 --;每次賣出,手上的前會(huì)增多,即:利潤(rùn)增加 ++。每次的買入狀態(tài)跟上次的賣出狀態(tài)相關(guān),每次的賣出狀態(tài)跟上次的買入狀態(tài)相關(guān)。有的同學(xué)可能不太理解,這里做一下簡(jiǎn)單的例子介紹:

第 1 次買入的時(shí)候,上次的狀態(tài): 利潤(rùn)為 0 的時(shí)候 第 1 次賣出的時(shí)候,上次的狀態(tài):第 1 次買入 第 3 次買入的時(shí)候,上次的狀態(tài):第 2 次賣出 ...

當(dāng)然狀態(tài)都是指操作完成后的利潤(rùn)。這樣的我們就很自然地會(huì)想到動(dòng)態(tài)規(guī)劃表來(lái)記錄這樣一個(gè)狀態(tài)變化的過(guò)程;我們?cè)诿恳惶於及堰@ k 次交易都模擬一遍,記錄這一天的 k 次交易的狀態(tài),并在后續(xù)不停的更新。所以先要定義好各個(gè)步驟需要的信息:

狀態(tài)定義:dp[i][j]表示第 i次交易, 行為是「買 | 賣」的狀態(tài),其中 j=0 表示買;j = 1 表示賣 狀態(tài)轉(zhuǎn)移: 第 i 次交易的買入: dp[i][0] = dp[i - 1][1] - price 第 i 次交易的賣出: dp[i][1] = dp[i][0] + price 其中 priceprice 表示當(dāng)天的價(jià)格 初始化:dp[i][0]=?∞ (方便比較)

我們需要注意的是,一次交易比較特殊,單獨(dú)計(jì)算一下 dp[0][0] 和dp[0][1],后面 k-1k?1 次都是基于第一次交易,另外交易數(shù) k>length/2 的時(shí)候,k 就沒(méi)有意義了,因?yàn)樘鞌?shù)限制了交易次數(shù)必須小于 length/2,所以這種情況也就相當(dāng)于無(wú)限次交易。有了上面的分析,接下來(lái)我們就很自然的寫(xiě)出代碼:

// 交易K次 /*** @Author likangmin* @create 2020/10/27 20:20*/ public int maxProfit(int k, int[] prices) {if (k < 1 ) { return 0; }// k 超過(guò)了上限,也就變成了 無(wú)限次交易問(wèn)題if (k > prices.length / 2) {return 不限交易次數(shù)(prices);}// 狀態(tài)定義int [][] dp = new int[k][2];// 初始化for (int i = 0; i < k; i++) {dp[i][0] = Integer.MIN_VALUE;}// 遍歷每一天,模擬 k 次交易,計(jì)算并更新?tīng)顟B(tài)for (int p : prices) {dp[0][0] = Math.max(dp[0][0], 0 - p); // 第 1 次買dp[0][1] = Math.max(dp[0][1], dp[0][0] + p); // 第 1 次賣for (int i = 1; i < k; i++) {dp[i][0] = Math.max(dp[i][0], dp[i - 1][1] - p); // 第 i 次買dp[i][1] = Math.max(dp[i][1], dp[i][0] + p); // 第 i 次賣}}return dp[k - 1][1];}

買賣股票的最佳時(shí)機(jī)-可以無(wú)限次地完成交易,但是你每筆交易都需要付手續(xù)費(fèi)

接下來(lái)分析不限交易次數(shù)但是卻會(huì)收取手續(xù)費(fèi)的問(wèn)題。當(dāng)我們不持有股票時(shí)假設(shè)最大利潤(rùn)為profit1,當(dāng)我們持有股票時(shí)的最大利潤(rùn)profit2,則在第 i 天時(shí),我們需要根據(jù)第 i - 1天的狀態(tài)來(lái)更新 profit1 和 profit2 的值。對(duì)于profit1,我們可以保持不變,或者將手上的股票賣出,狀態(tài)轉(zhuǎn)移方程為:

profit1 = max(profit1 , profit2 + prices[i] - fee)

對(duì)于 profit2,我們可以保持不變,或者買入這一天的股票,狀態(tài)轉(zhuǎn)移方程為:

profit2 = max(profit2 , cash - prices[i]) // 不限次數(shù)但收取手續(xù)費(fèi) /*** @Author likangmin* @create 2020/10/27 20:30*/ public int maxProfit(int[] prices, int fee) {int profit1 = 0, profit2 = -prices[0];for (int i = 1; i < prices.length; i++) {profit1 = Math.max(profit1, profit2 + prices[i] - fee);profit2 = Math.max(profit2, profit1 - prices[i]);}return profit1;}

買賣股票的最佳時(shí)機(jī)-盡可能地完成更多的交易(多次買賣一支股票),賣出股票后,你無(wú)法在第二天買入股票 (即冷凍期為 1 天)

接下來(lái)看最后一個(gè)問(wèn)題:不限交易次數(shù)但是有冷凍期。我們用 f[i] 表示第 i 天結(jié)束之后的「累計(jì)最大收益」。根據(jù)題目描述,由于我們最多只能同時(shí)買入(持有)一支股票,并且賣出股票后有冷凍期的限制,因此我們會(huì)有三種不同的狀態(tài):

我們目前持有一支股票,對(duì)應(yīng)的「累計(jì)最大收益」記為f[i][0]; 我們目前不持有任何股票,并且處于冷凍期中,對(duì)應(yīng)的「累計(jì)最大收益」記為f[i][1]; 我們目前不持有任何股票,并且不處于冷凍期中,對(duì)應(yīng)的「累計(jì)最大收益」記為 f[i][2]。

如何進(jìn)行狀態(tài)轉(zhuǎn)移呢?在第 i 天時(shí),我們可以在不違反規(guī)則的前提下進(jìn)行「買入」或者「賣出」操作,此時(shí)第 ii 天的狀態(tài)會(huì)從第 i-1 天的狀態(tài)轉(zhuǎn)移而來(lái);我們也可以不進(jìn)行任何操作,此時(shí)第 i 天的狀態(tài)就等同于第 i-1 天的狀態(tài)。那么我們分別對(duì)這三種狀態(tài)進(jìn)行分析:

對(duì)于f[i][0],我們目前持有的這一支股票可以是在第i?1 天就已經(jīng)持有的,對(duì)應(yīng)的狀態(tài)為 f[i?1][0]; 或者是第 i 天買入的,那么第i?1 天就不能持有股票并且不處于冷凍期中,對(duì)應(yīng)的狀態(tài)為f[i?1][2] 加上買入股票的負(fù)收益prices[i]。因此狀態(tài)轉(zhuǎn)移方程為: f[i][0]=max(f[i?1][0],f[i?1][2]?prices[i]) 對(duì)于f[i][1],我們?cè)诘?i 天結(jié)束之后處于冷凍期的原因是在當(dāng)天賣出了股票,那么說(shuō)明在第 i?1 天時(shí)我們 必須持有一支股票,對(duì)應(yīng)的狀態(tài)為f[i?1][0] 加上賣出股票的正收益prices[i]。因此狀態(tài)轉(zhuǎn)移方程為: f[i][1]=f[i?1][0]+prices[i] 對(duì)于 f[i][2],我們?cè)诘?i 天結(jié)束之后不持有任何股票并且不處于冷凍期,說(shuō)明當(dāng)天沒(méi)有進(jìn)行任何操作, 即第 i?1 天時(shí)不持有任何股票:如果處于冷凍期,對(duì)應(yīng)的狀態(tài)為 f[i?1][1];如果不處于冷凍期,對(duì)應(yīng)的狀態(tài)為 f[i?1][2]。 因此狀態(tài)轉(zhuǎn)移方程為: f[i][2]=max(f[i?1][1],f[i?1][2])

這樣我們就得到了所有的狀態(tài)轉(zhuǎn)移方程。如果一共有 n 天,那么最終的答案即為:

max(f[n?1][0],f[n?1][1],f[n?1][2])

注意到如果在最后一天(第 n-1n?1 天)結(jié)束之后,手上仍然持有股票,那么顯然是沒(méi)有任何意義的。因此更加精確地,最終的答案實(shí)際上是f[n?1][1] 和 f[n?1][2] 中的較大值,即:

max(f[n?1][1],f[n?1][2])

初始值應(yīng)該怎么定義呢?在第 0 天時(shí),如果持有股票,那么只能是在第 0 天買入的,對(duì)應(yīng)負(fù)收益 ?prices[0];如果不持有股票,那么收益為零,即:

f[0][0]=?prices[0] f[0][1]=0 f[0][2]=0

有了以上條件則可以直接寫(xiě)出代碼:

// 不限次數(shù)但有冷凍期 /*** @Author likangmin* @create 2020/10/27 20:50*/ public int maxProfit4(int[] prices) {if (prices.length == 0) {return 0;}int n = prices.length;// f[i][0]: 手上持有股票的最大收益// f[i][1]: 手上不持有股票,并且處于冷凍期中的累計(jì)最大收益// f[i][2]: 手上不持有股票,并且不在冷凍期中的累計(jì)最大收益int[][] f = new int[n][3];f[0][0] = -prices[0];for (int i = 1; i < n; ++i) {f[i][0] = Math.max(f[i - 1][0], f[i - 1][2] - prices[i]);f[i][1] = f[i - 1][0] + prices[i];f[i][2] = Math.max(f[i - 1][1], f[i - 1][2]);}return Math.max(f[n - 1][1], f[n - 1][2]);}

關(guān)于股票相關(guān)類型已分析完了。同學(xué)們有沒(méi)有豁然開(kāi)朗的感覺(jué)?其實(shí)大部分解題的思想都是基于動(dòng)態(tài)規(guī)劃,對(duì)動(dòng)態(tài)規(guī)劃還不是很熟的同學(xué)可以自己找資料找資料學(xué)習(xí)一下。只要搞懂了其中的原理,寫(xiě)出狀態(tài)轉(zhuǎn)移方程,那么問(wèn)題基本上就可以迎刃而解了。我這里只是提供一個(gè)解體的大概思路,并不代表是最好的解法,如果有更好解法且更讓人一看就懂的大家可以提出來(lái)一起學(xué)習(xí)。
注:如轉(zhuǎn)載,請(qǐng)注明原始地址。

總結(jié)

以上是生活随笔為你收集整理的算法分析股票类型的相关题型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

主站蜘蛛池模板: 婷婷狠狠操 | 久一区二区三区 | 亚洲精品在线一区二区 | 亚洲美女屁股眼交 | 国产剧情在线视频 | 少妇脚交调教玩男人的视频 | 欧美激情在线狂野欧美精品 | 久久久久麻豆 | 男人插女人下面视频 | 免费看成人av | 久久久久久免费精品 | 五月天中文字幕在线 | 深夜影院深a | 日本日韩欧美 | 国产femdom调教7777 | 久久国产亚洲 | 在线观看日本一区二区 | 日本一区二区三区电影在线观看 | 亚洲美女久久 | 啪啪无遮挡 | 欧美成人高潮一二区在线看 | 在线免费观看不卡av | 久久亚洲AV成人无码一二三 | 黄网站免费入口 | 午夜综合网 | 高清国产在线观看 | 久久久久久久久亚洲 | 丰满人妻熟女aⅴ一区 | 91宅男| 亚洲一区二区三区网站 | 国产综合视频一区 | 男人插女人免费视频 | 日本熟妇成熟毛茸茸 | 色欲亚洲Av无码精品天堂 | 免费av入口 | 欧美亚洲一二三区 | av网站在线免费 | 国产一级二级在线 | 91av欧美| www.av小说| 天天爽视频| 一本一道久久综合狠狠老精东影业 | 亚洲a v网站 | 瑟瑟网站免费 | 久草精品视频 | 国产乱子伦视频一区二区三区 | 香蕉911| 日本三级视频在线观看 | 800av凹凸 | 5级黄色片| 放荡闺蜜高h季红豆h | jizzzxxxx| 欧美激情在线狂野欧美精品 | 美女18网站 | 亚洲成熟女性毛茸茸 | 红桃视频网站 | 亚洲国产成人精品久久久 | 欧美大片在线观看 | 亚洲国产一区二区三区四区 | 中文字幕无线精品亚洲乱码一区 | 91一二区| 国产又爽又黄又嫩又猛又粗 | 97成网| 一级生活毛片 | 欧美成人猛片aaaaaaa | 99热这里只有精品18 | 一起草视频在线播放 | h部分肌肉警猛淫文 | 国产乱子伦一区二区 | 欧美 日韩 国产 一区 | 就爱啪啪网 | 成人免费毛片男人用品 | 日韩久久精品 | 老师张开让我了一夜av | 亚洲国产乱 | 黄色片中文字幕 | 免费看黄色片的网站 | av一区二区在线观看 | 久久成人a毛片免费观看网站 | 欧美黄色图片 | 国产色视频在线 | 青娱乐福利视频 | 伊人久久大香网 | 中文av在线播放 | 天天干夜夜爱 | 伊人久色| 91亚洲精品久久久蜜桃 | 黄色网址中文字幕 | 国产精品扒开腿做爽爽 | 亚洲性生活视频 | 91av俱乐部 | 91中文字幕视频 | 亚洲成av人在线观看 | 欧美黑人一级爽快片淫片高清 | 国产精品成人免费精品自在线观看 | 色屁屁www影院免费观看入口 | 国产不卡一二三 | 久免费一级suv好看的国产 | 色欲AV无码精品一区二区久久 |