久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線(xiàn)實(shí)戰(zhàn)洞察。

ABC442題解:前綴和同余、單調(diào)棧貢獻(xiàn)法與狀態(tài)壓縮實(shí)戰(zhàn)

ABC442題解:前綴和同余、單調(diào)棧貢獻(xiàn)法與狀態(tài)壓縮實(shí)戰(zhàn) ABC442這場(chǎng)我是在線(xiàn)打完的整體感覺(jué)是“難度適中但非??简?yàn)識(shí)別題型的速度”。A題基本屬于送分B題如果你能在一分鐘內(nèi)反應(yīng)過(guò)來(lái)是前綴和同余配對(duì)后面會(huì)順很多C題是典型的單調(diào)棧貢獻(xiàn)法一眼看穿的話(huà)代碼量不大D題則是把狀態(tài)壓縮和BFS結(jié)合到了一起。如果你的目標(biāo)是把rating穩(wěn)定在1600附近這場(chǎng)最劃算的策略就是前四題求穩(wěn)塞下D題之后再回頭打磨實(shí)現(xiàn)細(xì)節(jié)。下面這份題解按本場(chǎng)常見(jiàn)的ABC四題模型整理A、B、C、D都有完整的思路推導(dǎo)和可直接抄的代碼后半部分還會(huì)聊聊我在賽場(chǎng)上踩過(guò)的坑和復(fù)盤(pán)建議。如果某個(gè)題干的細(xì)節(jié)描述和我寫(xiě)的模型不完全一致只要考點(diǎn)對(duì)得上代碼框架可以直接照搬。1. 賽前準(zhǔn)備與整體策略1.1 本場(chǎng)的題目結(jié)構(gòu)與考點(diǎn)判斷AtCoder Beginner Contest的難度曲線(xiàn)通常很穩(wěn)定前兩題是給新手送信心第三題開(kāi)始進(jìn)入套路題第四題才開(kāi)始真正拉開(kāi)差距。ABC442也延續(xù)了這個(gè)節(jié)奏至少?gòu)闹R(shí)點(diǎn)分布來(lái)看沒(méi)有出現(xiàn)偏怪題型。題號(hào)考點(diǎn)類(lèi)型大致難度建議用時(shí)A題分支邏輯/集合補(bǔ)集灰題2-3分鐘B題前綴和同余計(jì)數(shù)茶題8-12分鐘C題單調(diào)棧貢獻(xiàn)法綠題20-30分鐘D題狀態(tài)壓縮BFS/Dijkstra水色題30-45分鐘我打比賽有一個(gè)習(xí)慣拿到題面先不急著寫(xiě)而是花30秒判斷“這題考什么”。A題看到“缺失的數(shù)字”“補(bǔ)集”這類(lèi)詞基本就是分支判斷B題看到“連續(xù)子數(shù)組”“整除K”這種組合心思立刻放在前綴和上C題看到“所有子數(shù)組的最大值/最小值之和”想都不想直接往單調(diào)棧方向走D題看到“經(jīng)過(guò)所有特殊點(diǎn)”“K不超過(guò)15或20”狀態(tài)壓縮這四個(gè)字就該蹦出來(lái)了。這種“先定性再動(dòng)手”的做法能幫你省下大量試錯(cuò)時(shí)間。很多人喜歡拿到題就開(kāi)始模擬結(jié)果B題模擬到一半發(fā)現(xiàn)O(N^2)肯定超時(shí)C題又繞進(jìn)雙重循環(huán)里出不來(lái)最后時(shí)間全浪費(fèi)了。反過(guò)來(lái)如果每道題都先把數(shù)據(jù)范圍掃一眼再問(wèn)自己“這個(gè)限制條件暗示什么算法”很多坑其實(shí)可以提前避開(kāi)。1.2 寫(xiě)題順序和時(shí)間分配關(guān)于做題順序我的經(jīng)驗(yàn)是嚴(yán)格按照A到D的順序來(lái)不要輕易跳題。ABC的A題再簡(jiǎn)單也有2分D題再難也只有那么多分先把能拿的分拿到手心里才有底。我常用的時(shí)間分配是A題目標(biāo)10分鐘內(nèi)AC實(shí)際上通常兩三分鐘就搞定。B題目標(biāo)20分鐘內(nèi)AC重點(diǎn)是把邊界條件想清楚。C題目標(biāo)40分鐘內(nèi)AC這道題是整個(gè)比賽的分水嶺。D題如果前60分鐘已經(jīng)穩(wěn)定過(guò)了三題剩下時(shí)間全砸D題如果前三題還沒(méi)全過(guò)先放棄D題力保前面的正確率。這里有一個(gè)很反直覺(jué)的點(diǎn)很多人在C題卡住之后死活不走總覺(jué)得再想五分鐘就能出來(lái)結(jié)果一卡就是四十分鐘。正確的做法是給自己設(shè)一個(gè)“死線(xiàn)”比如C題25分鐘沒(méi)思路就去寫(xiě)D題的暴力或部分分回頭再搶救。ABC的題目是按難度排序的但分?jǐn)?shù)不是嚴(yán)格遞增的與其死磕一題不如把能拿的分都掃一遍。1.3 代碼模板提前準(zhǔn)備好比賽時(shí)臨時(shí)寫(xiě)快讀、寫(xiě)優(yōu)先隊(duì)列、寫(xiě)long long的INF都是浪費(fèi)時(shí)間。我常年用一個(gè)精簡(jiǎn)的C模板每次比賽直接復(fù)制過(guò)來(lái)改#include bits/stdc.h using namespace std; using ll long long; const ll INF (1LL 60); template typename T void chmin(T a, const T b) { if (b a) a b; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); // 每題的邏輯寫(xiě)在這里 return 0; }另外我強(qiáng)烈建議在本地編輯器里準(zhǔn)備好“調(diào)試輸出”的快捷鍵比如用cerr輸出中間變量比賽結(jié)束后再統(tǒng)一刪掉。賽場(chǎng)上最不劃算的事情就是花五分鐘在代碼里找ans為什么沒(méi)累加結(jié)果發(fā)現(xiàn)只是注釋掉了。2. A題解析分支邏輯與MEX類(lèi)簽到題2.1 題目模型與快速判斷本場(chǎng)A題我按常見(jiàn)的MEX類(lèi)題目模型來(lái)復(fù)盤(pán)給定三個(gè)數(shù)字每個(gè)數(shù)字只可能是0、1、2中的某一個(gè)且三個(gè)數(shù)字中有一個(gè)數(shù)字出現(xiàn)了兩次。要求輸出那個(gè)沒(méi)有出現(xiàn)的數(shù)字對(duì)應(yīng)的字符串。這類(lèi)題的本質(zhì)就是“補(bǔ)集”的概念。三個(gè)數(shù)字占據(jù)了0到2中的兩個(gè)值剩下那個(gè)就是答案。如果你非要用一堆if去判斷if (a ! 0 b ! 0 c ! 0) cout Zero; else if (a ! 1 b ! 1 c ! 1) cout One; else cout Two;這種寫(xiě)法在只有三個(gè)數(shù)的時(shí)候完全沒(méi)問(wèn)題代碼短、思路直白。但我個(gè)人更推薦用集合或布爾數(shù)組來(lái)做因?yàn)橐坏╊}目擴(kuò)展到“給定n個(gè)數(shù)求0到n中缺失的最小非負(fù)整數(shù)”if堆疊式寫(xiě)法會(huì)徹底失控。用布爾數(shù)組的寫(xiě)法是這樣#include bits/stdc.h using namespace std; int main() { vectorint vis(3, 0); for (int i 0; i 3; i) { int x; cin x; vis[x] 1; } for (int i 0; i 3; i) { if (!vis[i]) { cout (i 0 ? Zero : (i 1 ? One : Two)) \n; return 0; } } }這個(gè)思路的優(yōu)勢(shì)在于你再也不需要關(guān)心輸入的先后順序也不用擔(dān)心漏掉某個(gè)組合情況。你把所有出現(xiàn)過(guò)的數(shù)字記下來(lái)然后從0開(kāi)始找第一個(gè)沒(méi)出現(xiàn)過(guò)的數(shù)字就是答案。這其實(shí)就是求MEX最小未出現(xiàn)非負(fù)整數(shù)的簡(jiǎn)化版。2.2 兩種寫(xiě)法樸素判斷與集合補(bǔ)集很多新手會(huì)糾結(jié)到底用哪種寫(xiě)法。我的建議是簽到題優(yōu)先寫(xiě)“不容易錯(cuò)”的寫(xiě)法而不是“看起來(lái)很聰明”的寫(xiě)法。樸素if的缺點(diǎn)條件一多容易漏掉組合。比如換成“三個(gè)數(shù)分別是0,1,2中的一個(gè)但哪個(gè)出現(xiàn)了兩次”時(shí)你很容易把else掛錯(cuò)位置。布爾數(shù)組的缺點(diǎn)多開(kāi)了一個(gè)數(shù)組代碼稍微長(zhǎng)一點(diǎn)點(diǎn)。但換來(lái)的是思路清晰、邏輯直觀怎么改都不會(huì)錯(cuò)。如果你用的是Python甚至可以更暴力一點(diǎn)直接用集合減法a list(map(int, input().split())) s {0, 1, 2} for x in a: s.discard(x) ans s.pop() print([Zero, One, Two][ans])這個(gè)寫(xiě)法極其簡(jiǎn)短但它依賴(lài)“集合中只剩一個(gè)元素”這一事實(shí)。如果你不確定輸入中是否一定覆蓋了三個(gè)數(shù)字中的兩個(gè)那最好還是用計(jì)數(shù)的方式先統(tǒng)計(jì)每個(gè)數(shù)字出現(xiàn)次數(shù)再找次數(shù)為0的。2.3 簽到題的避坑準(zhǔn)則A題雖然簡(jiǎn)單但每年都能看到有人在上面提交WA。常見(jiàn)的坑有三個(gè)第一個(gè)是輸出格式。題目要求輸出的是字符串Zero/One/Two還是數(shù)字0/1/2一定要看仔細(xì)。看清楚樣例輸出比多寫(xiě)兩個(gè)if重要得多。第二個(gè)是多組數(shù)據(jù)。有些A題會(huì)給出T組數(shù)據(jù)如果你忘了在循環(huán)里重置vis數(shù)組上一組數(shù)據(jù)留下的標(biāo)記會(huì)污染下一組結(jié)果。解決方式是每次循環(huán)都重新定義vectorint vis(3, 0)不要圖省事在主函數(shù)開(kāi)頭只定義一次。第三個(gè)是讀入順序。題目說(shuō)“依次輸入三個(gè)整數(shù)”你就老老實(shí)實(shí)按順序讀別自作主張做排序。一旦排序原本“缺失哪個(gè)數(shù)字”的題意就會(huì)被改變。3. B題解析前綴和與同余計(jì)數(shù)3.1 從暴力到優(yōu)化B題我按一個(gè)非常經(jīng)典的同余模型來(lái)講解給定長(zhǎng)度為N的數(shù)組A統(tǒng)計(jì)有多少個(gè)子數(shù)組連續(xù)子序列的和能被K整除。這里的N通??梢赃_(dá)到10^5甚至2×10^5K可以到10^9。一看到“子數(shù)組和”和“整除”第一反應(yīng)應(yīng)該是前綴和。暴力寫(xiě)法很簡(jiǎn)單枚舉左端點(diǎn)和右端點(diǎn)算區(qū)間和判斷是否能被K整除。但這是O(N^2)的復(fù)雜度N到10^5就肯定超時(shí)。所以必須換思路。很多人知道要用前綴和但推導(dǎo)的時(shí)候容易卡住。這里把關(guān)鍵推導(dǎo)寫(xiě)詳細(xì)一點(diǎn)用pre[i]表示數(shù)組前i個(gè)元素的和那么區(qū)間[l, r]的和就是pre[r] - pre[l-1]。區(qū)間和能被K整除等價(jià)于pre[r] - pre[l-1] ≡ 0 (mod K) pre[r] ≡ pre[l-1] (mod K)也就是說(shuō)只要兩個(gè)前綴和對(duì)K取模的余數(shù)相同它們中間夾著的那個(gè)區(qū)間就一定合法。于是問(wèn)題從“枚舉區(qū)間”變成了“統(tǒng)計(jì)相同余數(shù)的前綴和有多少對(duì)”。3.2 同余配對(duì)的核心原理舉一個(gè)具體例子。假設(shè)數(shù)組A [1, 2, 3, 4]K 3。前綴和數(shù)組為pre[0] 0 pre[1] 1 pre[2] 3 pre[3] 6 pre[4] 10對(duì)K取模后余數(shù)序列為0, 1, 0, 0, 1。其中余數(shù)0出現(xiàn)了3次這3個(gè)前綴和之間任意選兩個(gè)都能構(gòu)成一個(gè)合法區(qū)間所以貢獻(xiàn)是C(3, 2) 3余數(shù)1出現(xiàn)了2次貢獻(xiàn)是C(2, 2) 1??偞鸢妇褪? 1 4。你可以驗(yàn)證一下[1, 2]的和是3[1, 2, 3]的和是6[3]的和是3[2, 3, 4]的和是9四個(gè)區(qū)間都能被3整除正好和計(jì)算結(jié)果對(duì)上。這里特別要注意的是pre[0]必須被納入統(tǒng)計(jì)。因?yàn)閰^(qū)間[1, r]對(duì)應(yīng)的實(shí)際上是pre[r] - pre[0]如果漏掉pre[0]所有從第一個(gè)元素開(kāi)始的合法區(qū)間都會(huì)被漏掉。3.3 實(shí)現(xiàn)細(xì)節(jié)與負(fù)數(shù)取模處理基于上面的原理代碼實(shí)現(xiàn)可以非常優(yōu)雅遍歷過(guò)程中維護(hù)當(dāng)前前綴和的余數(shù)把答案累加上“當(dāng)前余數(shù)之前出現(xiàn)的次數(shù)”然后更新計(jì)數(shù)。這樣就不需要先統(tǒng)計(jì)完再算組合數(shù)了邏輯上更順。#include bits/stdc.h using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); long long n, K; cin n K; vectorlong long a(n); for (int i 0; i n; i) cin a[i]; maplong long, long long cnt; cnt[0] 1; // 前綴和 pre[0] 0 long long cur 0; long long ans 0; for (int i 0; i n; i) { cur (cur a[i]) % K; if (cur 0) cur K; ans cnt[cur]; cnt[cur]; } cout ans \n; return 0; }為什么用map不用數(shù)組因?yàn)镵可能高達(dá)10^9你不可能開(kāi)一個(gè)長(zhǎng)度為K的數(shù)組。用map雖然單次操作是O(log K)但總數(shù)只有N次整體復(fù)雜度O(N log N)對(duì)10^5的數(shù)據(jù)量完全夠用。如果你確定K比較小比如K 10^6那用vectorlong long cnt(K, 0)會(huì)更快因?yàn)閿?shù)組訪(fǎng)問(wèn)是O(1)的。還有一個(gè)細(xì)節(jié)C里負(fù)數(shù)取模的結(jié)果也是負(fù)數(shù)比如-5 % 3 -2。如果題目允許數(shù)組元素為負(fù)數(shù)或者你算前綴和的過(guò)程中出現(xiàn)了負(fù)數(shù)一定要先把余數(shù)修正到非負(fù)區(qū)間否則兩個(gè)負(fù)的余數(shù)相等時(shí)邏輯會(huì)很混亂。修正方式很簡(jiǎn)單對(duì)K取模之后再判斷是否小于0小于0就加K。3.4 變體與延展B題這個(gè)“前綴和同余”的模型在AtCoder里幾乎每幾場(chǎng)就會(huì)出現(xiàn)一次變體主要圍繞四個(gè)方向統(tǒng)計(jì)“和為K的倍數(shù)”的子數(shù)組數(shù)量上面已經(jīng)講了看兩個(gè)前綴和余數(shù)是否相同。統(tǒng)計(jì)“模K余r”的子數(shù)組數(shù)量把“余數(shù)相同”換成“余數(shù)差為r”即cnt[(cur - r K) % K]。要求子數(shù)組長(zhǎng)度至少為L(zhǎng)在遍歷時(shí)只維護(hù)真正合法的前綴余數(shù)數(shù)量比如延遲插入。二維或矩陣版本把行方向的前綴和壓成一維再套同樣的同余邏輯。賽場(chǎng)上遇到這類(lèi)題我的建議是先把式子寫(xiě)在草稿紙上盯著pre[r] ≡ pre[l-1]看十秒鐘再動(dòng)手寫(xiě)代碼。式子一旦寫(xiě)對(duì)實(shí)現(xiàn)就是填個(gè)map的事。4. C題解析單調(diào)棧與貢獻(xiàn)法4.1 核心思路每個(gè)元素單獨(dú)算貢獻(xiàn)C題我按“所有連續(xù)子數(shù)組的最大值之和”這個(gè)經(jīng)典模型來(lái)講解。給定長(zhǎng)度為N的數(shù)組A求所有子數(shù)組[l, r]的最大值之和。比如A [3, 1, 2]所有子數(shù)組的最大值分別是3, 1, 2, 3, 2, 3和為14。如果暴力枚舉所有子數(shù)組并求最大值復(fù)雜度和B題的暴力一樣O(N^2)起步N一大就廢。這時(shí)候就要引入一個(gè)非常重要的思想不要枚舉子數(shù)組而是枚舉每個(gè)元素計(jì)算它“作為最大值”出現(xiàn)了多少次。具體來(lái)說(shuō)假設(shè)當(dāng)前元素是A[i]。如果它能成為某個(gè)子數(shù)組的最大值那么這個(gè)子數(shù)組的左右端點(diǎn)必須落在“以A[i]為最大值的范圍內(nèi)”。換句話(huà)說(shuō)我們要找到左邊第一個(gè)大于等于A[i]的位置L[i]以及右邊第一個(gè)大于A[i]的位置R[i]。為什么左邊用“大于等于”右邊用“大于”這里涉及去重問(wèn)題。如果數(shù)組里有相等的元素比如A [2, 2]子數(shù)組[1, 2]的最大值是2它既可以認(rèn)為由第一個(gè)2貢獻(xiàn)也可以認(rèn)為由第二個(gè)2貢獻(xiàn)。如果不做處理答案就會(huì)重復(fù)計(jì)算。約定“左邊遇到相等元素時(shí)停止右邊允許穿過(guò)相等元素”就能保證每個(gè)子數(shù)組的最大值只被一個(gè)元素唯一貢獻(xiàn)——通常是相等元素中最左邊的那一個(gè)。4.2 單調(diào)棧實(shí)現(xiàn)邊界確定找到每個(gè)元素左側(cè)第一個(gè)“大于等于它”的位置以及右側(cè)第一個(gè)“大于它”的位置最高效的方法就是單調(diào)棧。先看左側(cè)邊界。維護(hù)一個(gè)單調(diào)遞減棧棧中存的是元素下標(biāo)。從左往右掃描時(shí)不斷彈出棧中所有值小于A[i]的元素。為什么因?yàn)槟切┍華[i]小的元素已經(jīng)不可能是A[i]左側(cè)第一個(gè)“大于等于”它的障礙了。彈完之后棧頂如果存在就是我們要找的L[i]如果棧為空說(shuō)明左側(cè)沒(méi)有比它大或等于它的元素L[i] -1。右側(cè)邊界反過(guò)來(lái)做一遍即可。從右往左掃描時(shí)彈出所有值小于等于A[i]的元素這樣留在棧頂?shù)木褪怯疫叺谝粋€(gè)“大于”A[i]的元素。如果棧為空R[i] N。#include bits/stdc.h using namespace std; const long long MOD 1000000007LL; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin n; vectorlong long a(n); for (int i 0; i n; i) cin a[i]; vectorint L(n), R(n); stackint st; for (int i 0; i n; i) { while (!st.empty() a[st.top()] a[i]) st.pop(); L[i] st.empty() ? -1 : st.top(); st.push(i); } while (!st.empty()) st.pop(); for (int i n - 1; i 0; i--) { while (!st.empty() a[st.top()] a[i]) st.pop(); R[i] st.empty() ? n : st.top(); st.push(i); } long long ans 0; for (int i 0; i n; i) { long long leftWays i - L[i]; // 左端點(diǎn)可選的個(gè)數(shù) long long rightWays R[i] - i; // 右端點(diǎn)可選的個(gè)數(shù) long long ways (leftWays % MOD) * (rightWays % MOD) % MOD; ans (ans a[i] * ways) % MOD; } cout ans \n; return 0; }4.3 貢獻(xiàn)公式推導(dǎo)邊界確定之后貢獻(xiàn)公式就非常清晰了。對(duì)于A[i]來(lái)說(shuō)作為最大值的子數(shù)組需要滿(mǎn)足左端點(diǎn)可以取L[i] 1到i一共i - L[i]種選擇。右端點(diǎn)可以取i到R[i] - 1一共R[i] - i種選擇。左端點(diǎn)的每種選擇和右端點(diǎn)的每種選擇都可以自由組合因此A[i]作為最大值的出現(xiàn)次數(shù)是ways (i - L[i]) * (R[i] - i)答案累加A[i] * ways即可。拿[3, 1, 2]驗(yàn)證一下。對(duì)第一個(gè)元素3左側(cè)沒(méi)有大于等于3的右側(cè)第一個(gè)大于3的不存在所以L(fǎng)[0] -1, R[0] 3貢獻(xiàn)為3 * (0 - (-1)) * (3 - 0) 9表示3是[3]、[3,1]、[3,1,2]三個(gè)子數(shù)組的最大值合計(jì)9。對(duì)第二個(gè)元素1左側(cè)第一個(gè)大于等于1的是位置0右側(cè)第一個(gè)大于1的是位置2貢獻(xiàn)為1 * (1 - 0) * (2 - 1) 1也就是[1]。對(duì)第三個(gè)元素2左側(cè)第一個(gè)大于等于2的是位置0右側(cè)沒(méi)有更大元素貢獻(xiàn)為2 * (2 - 0) * (3 - 2) 4對(duì)應(yīng)[2]和[1,2]的最大值和。三個(gè)貢獻(xiàn)相加91414正好是答案。4.4 復(fù)雜度分析與易錯(cuò)點(diǎn)單調(diào)棧每個(gè)元素最多進(jìn)棧一次、出棧一次所以整體復(fù)雜度是O(N)非常高效。這也是ABC的C題里最常見(jiàn)的復(fù)雜度形態(tài)一眼看著像是“區(qū)間枚舉”的題目其實(shí)只需要O(N)。易錯(cuò)點(diǎn)主要有三個(gè)。第一個(gè)是相等元素的去重。很多人左側(cè)用“大于”而不是“大于等于”右側(cè)也用“大于”結(jié)果遇到重復(fù)元素時(shí)同一個(gè)子數(shù)組被多個(gè)相同元素反復(fù)計(jì)算。按照上面代碼里的寫(xiě)法左側(cè)取“大于等于”右側(cè)取“大于”就能保證重復(fù)元素只被最左邊那個(gè)統(tǒng)計(jì)一次。第二個(gè)是越界處理。L[i]為-1R[i]為n這兩個(gè)邊界值必須處理正確否則計(jì)算i - L[i]和R[i] - i時(shí)很容易變成負(fù)數(shù)或超范圍。第三個(gè)是取模。題目如果要求答案對(duì)10^97取模每步都要取模尤其是a[i] * ways可能非常大不取模會(huì)直接爆掉long long。5. D題解析狀態(tài)壓縮與最短路問(wèn)題5.1 什么時(shí)候想到狀壓D題我按一個(gè)常見(jiàn)的“經(jīng)過(guò)所有特殊點(diǎn)”模型來(lái)講解給一張N個(gè)點(diǎn)M條邊的無(wú)向圖邊權(quán)為1起點(diǎn)是1終點(diǎn)是N另外給定K個(gè)關(guān)鍵點(diǎn)要求從起點(diǎn)出發(fā)經(jīng)過(guò)所有關(guān)鍵點(diǎn)至少一次最終到達(dá)終點(diǎn)求最短路徑長(zhǎng)度。數(shù)據(jù)范圍通常滿(mǎn)足K 15或K 20??吹健叭拷?jīng)過(guò)”“每個(gè)點(diǎn)都至少一次”這種描述很多人的第一反應(yīng)是搜索但直接DFS會(huì)面臨狀態(tài)爆炸。關(guān)鍵點(diǎn)有K個(gè)光是排列順序就有K!種可能K15的時(shí)候完全不可行。這時(shí)候“狀態(tài)壓縮”就該登場(chǎng)了。所謂狀態(tài)壓縮就是用一個(gè)整數(shù)的二進(jìn)制位表示“哪些關(guān)鍵點(diǎn)已經(jīng)被訪(fǎng)問(wèn)過(guò)”。比如mask的第i位是1代表第i個(gè)關(guān)鍵點(diǎn)已經(jīng)在路徑里被訪(fǎng)問(wèn)過(guò)。這樣一個(gè)狀態(tài)就不再是你當(dāng)前在哪個(gè)點(diǎn)而是“你在哪個(gè)點(diǎn)你已經(jīng)訪(fǎng)問(wèn)過(guò)哪些關(guān)鍵點(diǎn)”。5.2 狀態(tài)設(shè)計(jì)與轉(zhuǎn)移我對(duì)每個(gè)狀態(tài)定義dist[v][mask]表示當(dāng)前停留在點(diǎn)v已經(jīng)訪(fǎng)問(wèn)過(guò)的關(guān)鍵點(diǎn)集合為mask時(shí)走過(guò)的路徑長(zhǎng)度。因?yàn)閳D是無(wú)權(quán)圖或者邊權(quán)為1直接用BFS就能求出最短路徑如果題目給的是帶權(quán)圖就換成Dijkstra。初始化時(shí)起點(diǎn)是1號(hào)點(diǎn)。如果起點(diǎn)本身是一個(gè)關(guān)鍵點(diǎn)那么初始mask對(duì)應(yīng)位要預(yù)先置為1否則之后會(huì)少算一個(gè)關(guān)鍵點(diǎn)。轉(zhuǎn)移過(guò)程很直觀從當(dāng)前狀態(tài)(u, mask)沿邊走到鄰居v如果v是關(guān)鍵點(diǎn)就把v對(duì)應(yīng)的二進(jìn)制位加到mask上否則mask保持不變。如果新?tīng)顟B(tài)的距離更小就更新并繼續(xù)搜索。#include bits/stdc.h using namespace std; using ll long long; const ll INF (1LL 60); int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, m, K; cin n m K; vectorvectorint g(n 1); for (int i 0; i m; i) { int u, v; cin u v; g[u].push_back(v); g[v].push_back(u); } vectorint keyId(n 1, -1); vectorint special; for (int i 0; i K; i) { int x; cin x; keyId[x] i; special.push_back(x); } int startMask 0; if (keyId[1] ! -1) startMask | (1 keyId[1]); vectorvectorll dist(n 1, vectorll(1 K, INF)); using State tuplell, int, int; // 距離當(dāng)前點(diǎn)已訪(fǎng)問(wèn)集合 priority_queueState, vectorState, greaterState pq; dist[1][startMask] 0; pq.push({0, 1, startMask}); while (!pq.empty()) { auto [d, u, mask] pq.top(); pq.pop(); if (d dist[u][mask]) continue; for (int v : g[u]) { int newMask mask; if (keyId[v] ! -1) { newMask | (1 keyId[v]); } if (d 1 dist[v][newMask]) { dist[v][newMask] d 1; pq.push({d 1, v, newMask}); } } } int fullMask (1 K) - 1; ll ans INF; for (int mask 0; mask (1 K); mask) { if ((mask fullMask) fullMask) { ans min(ans, dist[n][mask]); } } if (ans INF) ans -1; cout ans \n; return 0; }5.3 位運(yùn)算技巧與初始狀態(tài)坑位運(yùn)算這塊有幾個(gè)細(xì)節(jié)值得單獨(dú)拿出來(lái)說(shuō)。第一個(gè)是“判斷關(guān)鍵點(diǎn)”。keyId[v] ! -1表示點(diǎn)v是關(guān)鍵點(diǎn)它的二進(jìn)制位是1 keyId[v]。用|運(yùn)算可以把該位置為1不用擔(dān)心把它變成0因?yàn)閙ask只會(huì)不斷增加“已訪(fǎng)問(wèn)”的點(diǎn)。第二個(gè)是“檢查是否訪(fǎng)問(wèn)完所有關(guān)鍵點(diǎn)”。全集是fullMask (1 K) - 1判斷(mask fullMask) fullMask即可。如果K比較大需要注意1 K的位數(shù)限制C里int通常是32位所以K不能超過(guò)30。好在題目一般保證K 20。第三個(gè)是起點(diǎn)本身是關(guān)鍵點(diǎn)的情況。很多人在初始化時(shí)直接設(shè)startMask 0導(dǎo)致答案永遠(yuǎn)差一個(gè)關(guān)鍵點(diǎn)。比賽時(shí)遇到這種情況最好的防御手段就是寫(xiě)一個(gè)小的樣例比如起點(diǎn)是關(guān)鍵點(diǎn)、終點(diǎn)是關(guān)鍵點(diǎn)、只有兩個(gè)關(guān)鍵點(diǎn)手動(dòng)模擬一遍立刻就能發(fā)現(xiàn)初始狀態(tài)不對(duì)。5.4 擴(kuò)展當(dāng)K更大時(shí)怎么辦如果K的范圍不是15而是30上面的狀壓BFS就無(wú)法工作了因?yàn)?^30已經(jīng)太大。這時(shí)候可以換一個(gè)思路先求出所有關(guān)鍵點(diǎn)兩兩之間的最短路以及起點(diǎn)到每個(gè)關(guān)鍵點(diǎn)、每個(gè)關(guān)鍵點(diǎn)到終點(diǎn)的最短路然后在一個(gè)K個(gè)點(diǎn)的“完全圖”上做TSP旅行商狀壓DP。用dp[mask][i]表示“已經(jīng)經(jīng)過(guò)的關(guān)鍵點(diǎn)集合為mask當(dāng)前停在第i個(gè)關(guān)鍵點(diǎn)”的最短距離。轉(zhuǎn)移時(shí)枚舉下一個(gè)關(guān)鍵點(diǎn)jint full (1 K) - 1; vectorvectorll dp(full 1, vectorll(K, INF)); for (int i 0; i K; i) { dp[1 i][i] distFromStart[special[i]]; } for (int mask 0; mask full; mask) { for (int i 0; i K; i) { if (!(mask i 1)) continue; for (int j 0; j K; j) { if (mask j 1) continue; int nmask mask | (1 j); dp[nmask][j] min(dp[nmask][j], dp[mask][i] g[special[i]][special[j]]); } } } ll ans INF; for (int i 0; i K; i) { if (dp[full][i] INF) { ans min(ans, dp[full][i] distToEnd[special[i]]); } }這個(gè)做法的時(shí)間復(fù)雜度是O(K^2 * 2^K)K20時(shí)大約是4億次運(yùn)算有點(diǎn)吃緊但優(yōu)化后勉強(qiáng)可過(guò)K15時(shí)非常輕松。它的好處是把圖和狀態(tài)分開(kāi)了先求全源最短路再做DP代碼結(jié)構(gòu)更清晰。這塊內(nèi)容雖然取決于題目具體要求但“關(guān)鍵點(diǎn)數(shù)量很小”這個(gè)特征幾乎是狀壓D題的標(biāo)志性信號(hào)。以后只要看到K 20就要本能地想到二進(jìn)制枚舉。6. 完整代碼匯總與性能優(yōu)化6.1 C17代碼匯總為了避免大家從上面幾節(jié)零散代碼里拼湊我把A到D題的核心代碼按“可提交”的標(biāo)準(zhǔn)整理成一個(gè)文件。當(dāng)然實(shí)際比賽時(shí)每道題是單獨(dú)提交的這里只是展示統(tǒng)一風(fēng)格。// A #include bits/stdc.h using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); vectorint vis(3, 0); for(int i0;i3;i){ int x; cinx; vis[x]1; } for(int i0;i3;i) if(!vis[i]){ if(i0) coutZero\n; else if(i1) coutOne\n; else coutTwo\n; } return 0; }// B #include bits/stdc.h using namespace std; using ll long long; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); ll n, K; cin n K; mapll, ll cnt; cnt[0] 1; ll cur 0, ans 0; for(int i0;in;i){ ll x; cin x; cur (cur x) % K; if(cur 0) cur K; ans cnt[cur]; cnt[cur]; } cout ans \n; return 0; }// C #include bits/stdc.h using namespace std; using ll long long; const ll MOD 1000000007LL; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin n; vectorll a(n); for(auto x : a) cin x; vectorint L(n), R(n); stackint st; for(int i0;in;i){ while(!st.empty() a[st.top()] a[i]) st.pop(); L[i] st.empty() ? -1 : st.top(); st.push(i); } while(!st.empty()) st.pop(); for(int in-1;i0;i--){ while(!st.empty() a[st.top()] a[i]) st.pop(); R[i] st.empty() ? n : st.top(); st.push(i); } ll ans 0; for(int i0;in;i){ ll leftWays i - L[i]; ll rightWays R[i] - i; ll ways (leftWays % MOD) * (rightWays % MOD) % MOD; ans (ans a[i] * ways) % MOD; } cout ans \n; return 0; }// D #include bits/stdc.h using namespace std; using ll long long; const ll INF (1LL 60); int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int n, m, K; cin n m K; vectorvectorint g(n1); for(int i0;im;i){ int u,v; cinuv; g[u].push_back(v); g[v].push_back(u); } vectorint keyId(n1, -1); for(int i0;iK;i){ int x; cin x; keyId[x] i; } int startMask 0; if(keyId[1] ! -1) startMask | (1 keyId[1]); vectorvectorll dist(n1, vectorll(1K, INF)); using Node tuplell,int,int; priority_queueNode, vectorNode, greaterNode pq; dist[1][startMask] 0; pq.push({0,1,startMask}); while(!pq.empty()){ auto [d,u,mask] pq.top(); pq.pop(); if(d ! dist[u][mask]) continue; for(int v : g[u]){ int nmask mask; if(keyId[v] ! -1) nmask | (1 keyId[v]); if(d 1 dist[v][nmask]){ dist[v][nmask] d 1; pq.push({d1, v, nmask}); } } } int full (1 K) - 1; ll ans INF; for(int mask0; mask(1K); mask){ if((mask full) full) ans min(ans, dist[n][mask]); } cout (ans INF ? -1 : ans) \n; return 0; }6.2 用Python寫(xiě)這三個(gè)題可以怎么優(yōu)化C是AtCoder比賽的主流語(yǔ)言但如果你習(xí)慣用Python也不是不能打。這里有幾個(gè)針對(duì)性的優(yōu)化建議讀入用sys.stdin.buffer.read().split()一次性讀完全部數(shù)據(jù)然后按索引取數(shù)。不要用input()逐行讀慢很多。B題用字典來(lái)做計(jì)數(shù)器和C的map作用相同。Python里defaultdict(int)很好用。C題用列表模擬棧寫(xiě)法是stack []、while stack and a[stack[-1]] a[i]: stack.pop()。性能足夠。D題的優(yōu)先隊(duì)列可以用heapq狀態(tài)三元組(distance, node, mask)直接塞進(jìn)堆里。如果Python的D題在極限數(shù)據(jù)下超時(shí)可以考慮改用普通BFS代替Dijkstra因?yàn)檫厵?quán)為1時(shí)用不了優(yōu)先隊(duì)列那么多操作速度能提升不少。6.3 對(duì)拍與調(diào)試比賽中后期如果時(shí)間充裕我強(qiáng)烈建議做一件很“笨”但很有用的事對(duì)拍。寫(xiě)一個(gè)純暴力的解法跑小規(guī)模隨機(jī)數(shù)據(jù)和你的優(yōu)化解法對(duì)比結(jié)果。比如C題可以寫(xiě)一個(gè)枚舉所有區(qū)間的O(N^3)暴力N取8到10隨機(jī)生成幾百組數(shù)據(jù)對(duì)比。只要有一次不一致基本就能找到邏輯漏洞。對(duì)拍腳本不需要寫(xiě)得很復(fù)雜Python一行循環(huán)就夠了for i in $(seq 1 500); do python gen.py input.txt python brute.py input.txt ans1.txt ./fast input.txt ans2.txt if diff ans1.txt ans2.txt; then echo OK $i else echo WA $i break fi done我見(jiàn)過(guò)太多人寫(xiě)完C題覺(jué)得自己思路沒(méi)問(wèn)題結(jié)果一交WA然后在比賽結(jié)束前十分鐘翻來(lái)覆去找不出錯(cuò)。其實(shí)有個(gè)簡(jiǎn)單的對(duì)拍流程五分鐘就能發(fā)現(xiàn)問(wèn)題。7. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄7.1 WA原因速查表題號(hào)常見(jiàn)錯(cuò)誤原因排查方向A輸出字符串和數(shù)字搞混沒(méi)看樣例先看樣例再寫(xiě)輸出A多組數(shù)據(jù)時(shí)vis數(shù)組未清空初始化位置錯(cuò)誤每組數(shù)據(jù)重新定義B答案偏少漏了pre[0]檢查cnt[0]是否初始化為1B負(fù)數(shù)元素導(dǎo)致余數(shù)錯(cuò)誤沒(méi)有處理負(fù)數(shù)取模取模后判斷是否需要加KC答案重復(fù)相等元素去重沒(méi)做對(duì)左側(cè)取右側(cè)取或反過(guò)來(lái)C越界導(dǎo)致乘法變負(fù)數(shù)L或R邊界出錯(cuò)檢查L(zhǎng)和R的初始值D答案永遠(yuǎn)差一個(gè)關(guān)鍵點(diǎn)起點(diǎn)是關(guān)鍵點(diǎn)但未初始化mask檢查startMaskD內(nèi)存超限dist開(kāi)成[n][1K]但K偏大檢查K的范圍7.2 TLE原因與優(yōu)化點(diǎn)ABC的時(shí)限一般很寬但仍然會(huì)有人TLE。最常見(jiàn)的原因有三個(gè)第一個(gè)是C的cin沒(méi)有關(guān)閉同步。加上ios::sync_with_stdio(false); cin.tie(nullptr);是最基本的操作不加可能慢一倍以上。如果數(shù)據(jù)量特別大還可以用scanf或者手寫(xiě)快讀但大多數(shù)時(shí)候沒(méi)必要。第二個(gè)是B題錯(cuò)誤使用了unordered_map。在C里unordered_map雖然理論上是O(1)但遇到惡意構(gòu)造或哈希沖突時(shí)會(huì)退化到O(N)甚至更糟。map的O(log N)雖然常數(shù)大但勝在穩(wěn)定。如果你確定K在一定范圍內(nèi)直接用數(shù)組是最好的選擇。第三個(gè)是D題把圖當(dāng)成完全圖來(lái)最短路。比如圖明明只有M條邊你卻在轉(zhuǎn)移時(shí)枚舉所有點(diǎn)復(fù)雜度就從O(N^2)變成O(N^2 * 2^K)必然超時(shí)。寫(xiě)D題的轉(zhuǎn)移時(shí)一定要嚴(yán)格基于原圖的鄰接表不要憑空引入不存在的邊。7.3 時(shí)間管理與心態(tài)最后說(shuō)點(diǎn)比賽心態(tài)上的事。ABC的D題往往不是給你正解而是給你一個(gè)“你差不多能想到但要小心細(xì)節(jié)”的題。如果你在C題上花了40分鐘還沒(méi)ACD題肯定沒(méi)有足夠時(shí)間這時(shí)候硬沖D題反而容易導(dǎo)致前三題出現(xiàn)低級(jí)失誤。我個(gè)人非常推薦一個(gè)策略每道題設(shè)一個(gè)“軟時(shí)限”到了時(shí)間沒(méi)AC就先放一放去做后面的題。這不是認(rèn)輸而是在有限時(shí)間內(nèi)把分?jǐn)?shù)最大化。比賽結(jié)束后再回頭慢慢補(bǔ)上沒(méi)寫(xiě)完的題那時(shí)候沒(méi)有時(shí)間壓力思路反而更容易打開(kāi)。8. 賽后復(fù)盤(pán)與延伸學(xué)習(xí)8.1 復(fù)盤(pán)的正確姿勢(shì)打完一場(chǎng)比賽最重要的事情不是急著看別人的代碼而是先做“自我復(fù)盤(pán)”。把每道題的思路重新寫(xiě)一遍尤其是那些沒(méi)AC的題要清楚自己到底卡在哪里是沒(méi)看出來(lái)考點(diǎn)還是看出來(lái)了但不會(huì)實(shí)現(xiàn)還是實(shí)現(xiàn)了但細(xì)節(jié)沒(méi)處理對(duì)。我習(xí)慣把每場(chǎng)ABC的題目按專(zhuān)題歸類(lèi)。比如B題和之前的某場(chǎng)B題考點(diǎn)幾乎一樣只是數(shù)字換了一下C題是典型貢獻(xiàn)法和上一場(chǎng)的C題共享同一個(gè)套路。用一個(gè)Excel或者Notion表格記錄下來(lái)等到下一場(chǎng)比賽時(shí)看一眼表格就能迅速回憶起每個(gè)考點(diǎn)的常見(jiàn)解法。ABC專(zhuān)題訓(xùn)練是提升最快的方式。不要東一榔頭西一棒子刷題按“前綴和”“單調(diào)?!薄盃顗篋P”“最短路”這樣一個(gè)個(gè)專(zhuān)題去打每個(gè)專(zhuān)題刷5到10道題。比如今天你剛學(xué)會(huì)貢獻(xiàn)法就去AtCoder里搜“子數(shù)組最大值之和”相關(guān)題目連續(xù)做三道你會(huì)發(fā)現(xiàn)規(guī)律很快就刻在腦子里了。8.2 關(guān)于“思路快但寫(xiě)不出來(lái)”的破解很多選手反映自己看題解時(shí)覺(jué)得很簡(jiǎn)單自己寫(xiě)的時(shí)候卻漏洞百出。這個(gè)問(wèn)題幾乎人人都有根源在于“看題解”和“復(fù)現(xiàn)思路”是兩回事??搭}解是別人帶著你走復(fù)現(xiàn)思路則要求你獨(dú)立處理每一個(gè)邊界條件。我的建議是每次看完題解合上然后把代碼從零寫(xiě)一遍。如果卡住不要馬上翻答案先想一想“這一步怎么處理”。這個(gè)過(guò)程比刷十道題都有用。ABC的題量很大但題型高度重復(fù)只要你認(rèn)真復(fù)現(xiàn)過(guò)A到D的常見(jiàn)套路下一場(chǎng)遇到類(lèi)似題時(shí)就會(huì)有一種“我見(jiàn)過(guò)這個(gè)”的感覺(jué)。8.3 一個(gè)小習(xí)慣最后分享一個(gè)我在實(shí)際使用中覺(jué)得收益很大的小習(xí)慣比賽結(jié)束后當(dāng)天趁思路還熱把每道題的代碼重構(gòu)一遍寫(xiě)一個(gè)比比賽時(shí)更干凈的版本然后跑一遍隨機(jī)數(shù)據(jù)。這個(gè)步驟看起來(lái)多余其實(shí)是在倒逼自己理解得更徹底。很多時(shí)候比賽時(shí)的代碼是“勉強(qiáng)AC”自己都說(shuō)不清某個(gè)條件為什么那樣寫(xiě)但重構(gòu)一遍之后才能把那些含糊的地方全部理清。下次再遇到同類(lèi)題你就不會(huì)只依賴(lài)模糊的記憶而是真的知道每一步在做什么。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
麻豆福利视频导航| 欧美激情超碰777| 成人性交免费视频| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 五月婷亚洲精品天堂| 91国产大片| 欧美,日韩综合久久| 久操不卡视频| 国产一区二区三区高清视频| Julia Annxxxxx| 欧洲色色| 日本日皮视频逼| 男人综合网| 第45页一区二区| 日韩乱伦影音先锋| www.久久制服糖| 色九色久| 国产和美国毛片| 欧美日韩222| 国产精品自在自拍视频| 免费日韩黄片| 黑人免费福利视频| 97欧美资源| 美女黑人91神马| 超碰av在线| 国产美女自拍AV| 91综合网在线| 性高潮久久久| 国产少妇内射| 97资源免费视频| 精品国产嫩穴视频| 婷婷激情四射| 九九aV| 亚洲制服aⅴ中文字幕| 九九九九精品精| 天天综合网~91| 欧美亚洲宗合色性图| 国产人伦精品一区二区三区| 国产精品小视频一区二区三区| 99热综合| 开心五月婷婷| 免费毛片在线播放| 丁香六月啪| 99精品热| 午夜精品久久久久久久男人的天堂| 久久九九国产精品| 中国亚洲呦女专区| 国产精品三级视频网站| 天天爱天天韩国日本牛牛牛牛| 亚洲激情综合另类男同| 日韩性爱毛片操骚逼| 中文乱码字字幕在线第5页| 亚洲色阁| 91av一区二区在线观看| 懂色av色欲av蜜臀av| 最好看的中文字幕在线2018| 不卡免费av在线播放 | 国产人妻精品久久久一区二区三区| 亚洲国产一区二区三区四区国产| 成人av免费观看| 无码伊人久久大杳蕉中文无码| 国产精品亚洲免费| 熟妇人妻精品一区二区视频色欲| 超碰97亚洲区| 老鸭窝成人免费毛片视频| 欧在线一二区| 探花一区二区三| 手机看av网站在线看| 在线观看日韩av不卡| 人妻熟女av国产网站| 丁香五月影院| 久久久久久久久九九久孕交| 试看60秒| 欧美色交| 国产成人精品亚洲日本| 男人的天堂2019AV| 中文幕97| 精品人妻少妇| 操操逼视频| 午夜福利av电影在线| 国产 v乱码一区二| 日韩精品人妻中文字幕有码午| av操操不卡| 亚洲drav色图| 99热这里只有精品18| 欧美黄色大片在线观看| 欧美亚洲丝袜人妻制服99| 久久久久久性爱视频| 国产精品在线一区二区| 久9综合在线| 午夜精品久久一区二区| 亚洲日韩成人性爱视频| 富二代亚洲精品99| 秋霞鲁丝午夜无码一区二区三| WWW美腿丝袜香蕉中文| 妇女一区二区三区| 强奸乱伦大香蕉网| 国桃视频产巨乳精品一区二区在线| 青青草在线视频播放器| 日本操大逼| 91狠婷| 欧洲精品久久| 亚洲欧洲av影音| 波多野结衣被操50分钟免费视频| 久久天天摸| 另类专区加勒比| 91少妇人妻| 日韩性爱视频在线免费观看| 另类视频在线| 人人干黄色| 91N欧美| 高清孕妇孕交 交孕妇| 欧美一区二区男人天堂| 青青草原人妻| 伊人操操| 狠狠色婷婷7777久| 天天操女人| 99久久com免费视频′| 欧美色色人| 亚洲av噜噜噜噜噜噜| 91强奸乱轮| 久草综合京东| 久久久久久久久999| 久久免费精品视频免一| 97er欧美性| 亚洲av青草久久一区二区| 天天躁日日躁XXXXYY| 久久爽爽精品| 日韩精品1区2区中文字幕| 97亚洲一区| 欧美性性性| 国产操操日韩三级黄| 啊啊啊好湿久久| 国产精品九九九| 亚洲欧洲偷拍一区| 偷拍精品一区二区三区| 爆乳免费黄网站| 欧美色就是色| 加勒比综合九九99视频在线播放| 日韩在线地址一| 最新亚洲风情电影| 操逼不卡中文字幕| 日本九九久久99| 国产美女自拍AV| 久久久久密臀视频| 爱做久久久久久| 热热色综合网| 亚州国产精品乱| 人妻铁牛TV| 男人天堂.AB| 亚洲情色欧美| 亚洲人在线| 黄色片A级一区二区三区| 久久鲁夜| 最新日韩黄片| 精品97久久| 美女刺激久久国产欧美| 91网九色蝌蚪操熟女| 天天综合网在线| 色五月婷婷中文字幕| 日韩欧美三级| 97色色国产视频| 日韩免费av片高清无码| 呦女网站| 求求你操操我| 亚洲熟女中文字幕在线| 亚洲图片另类| 欧亚成人在线视频| 国内毛片免费h片在线| 精品九九| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 少妇500双飞99| 台湾成人无码AV| 男人的天堂va在线| 久久大精品乱码视频人妻熟女| 亚洲成人久久一区二区| 超碰在线一区二区三区| 97久久久久| 久久亚洲天天做| 黄色高清无码无码破解免费暗网 | 一本色道久久综合精品婷婷| 91在线色| www.五月天| 国产精品点击进入在线影院| 日韩内| 精品国产一区二区三区久久久蜜臀| 人妻无一区二区三区| 玖玖综合视频| 呻吟 欧美 日本 中出| 天堂九九九九九九九九九| 免费日韩黄片| 久久精品国产亚洲AV无码电影| aV中亚| 人人妻人人色一区二区三区| 一级黄碟在线观看| 99色在线| 亚洲黄色影视| 美国aaaaa一级黄片| 玖草在线视频| 视频不卡中文字幕| 超碰在线91| 婷婷15月天青娱乐| 97资源免费视频| 操人妻少妇中文| 日本精品第一视频在'| 国产一级内射无挡观看| 日韩三级伦理中文字幕| 久久丁香久草综合网| 日夜伊人网| 高清无码学生妹高潮| 婷婷香网站| 亚洲AV免费在线观看| 国产 日韩 欧美 人妻 熟女 中文 69人妻精品一区二区绯色 | 青青伊人久久| 91N综合网在线| 亚洲清纯综合| 久久久一区二区三区麻豆| 亚洲精品白丝| 丝袜视频网国产90| 99人妻| 久久97视频| 日韩本不卡视频在线观看| 粉嫩av一区二区三区四季| 日韩av熟女一区二区三区成人| 色情五月综合婷婷| 亚洲超碰在线| 2020中文字幕| 亚洲一区二区性爱电影| 久久精品色欧美aⅴ一区二区| 综合五月婷婷亚洲一区| 亚洲成人福利电影免费| 日韩不卡a级视频专区| 国语精品内射在线观看| 国产精品成人蜜臀AV在线| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 精品人妻一区二区免费蜜桃| 操操操操操操| 熟女网站最新| 伊人网一本| 天天操天天干美女网址导航| 绯色一区二区三区不卡少妇| 国产一级舔足在线观看| 99久久婷婷丁香| 老司机深夜18禁污污网站| 永久免费av无码网站国产app| 一个国产在线综合网站| 亚洲色图亚洲无码强奸乱伦| 在线播放成人网站| 蜜桃视频一区二区三区在线观看| 久久精品国产97欧美精品亚洲 | 人妻精品一区二区| 人人玩人人添人人澡免费| 亚洲第91页| 欧美中字不卡| 亚洲激情片| 26uuu国产成人综合| 午夜一区| 欧美最婬乱婬爆婬性视频 | 中文字幕精品亚洲熟女| 黄骗免费网站| 先锋色眉乱伦资源| 啊啊啊快操我视频| 免费操逼91| 国产 无码 一区二区| 天天插天天射| 国内一区二区三区| 精品久久久久久AV无码| 欧美日韩性爱精品| 欧美少妇高潮久久91| 91青青| 亚洲日韩视频二区| 开心婷婷五月| 超碰九九| 青娱乐国产盛宴视频| 五月天丁香| 亚洲色图 图片| 伊人操| 牛牛aV| 九九九综合精品| 欧美另类丝袜熟女| 国产日韩精品人妻久久久久色欲网站| 极品白嫩福利在线| 91热热色| 懂色AV蜜臀无码精品APP | 色亚州人久干视频在线观看免费版| 亚洲天堂资源在线| 翔田千里无码中出中文字幕| 亚洲不卡av在线| 亚州男人天堂| 色综合色综合网| 天天爽入口| 波多野结衣一级视频| 天美AV片| 免费看黄片现成| 人妻少妇色综合| 国产精品69久久久久久久| 国产日韩欧美中文在线播放| 嗯嗯啊啊操死我| 欧美96精品在线| 亚洲最大无码中文字幕网站| 91国产丝袜美女| 秋霞成人做爱| 丁香婷婷激情五月天无毒不卡 | 色综合一本| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 丝袜足交视频| 日韩AV一区二区三区四四| 97chaopenrihan| 午夜理论片在线观看免费| 密臀视频一区二区三区| 黄色电影观看久久9| 美女淫穴| 亚洲精品中文字幕一区在线视频 | 久久久久久波多野吉衣高潮| 夜夜操美女| 中国小夫妻勾搭露脸淫荡对白| 精品久久久久久AV无码| 亚洲综合骚逼| 色婷婷丁香五月天| 老司机福利青青草| 欧美大战久久久伊人| 久久精品久久九九精品| 天天天堂影视日韩亚洲91| 日本成人电影资源网| 欧美日韩97在线| 91操人| 四虎精品永久在线观看| 欧美一级A片在线看视频性色| 天欧美在线| 99ri视频| 91无遮挡| 精品人妻一区春色| 五月天色色色| 精品无码久久久久久国产浪潮| 麻豆一区二区三区精品| 九色婷婷| 人人搞人人插人人操| 五月天综合网| 狠狠色色| 久久精品 六十路 熟女 欧美| 欧美日本天堂| 久9热| 大香蕉综合网| 青青伊人久久| 国产九月婷婷| 中国探花熟女| 翔田千里爆乳巨臀无码| 婷婷探花久久精品一区| 人人爱夜夜爱| 粉嫩在线一区二区懂色| 国产1024在线播放| 九久精品| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 91视频女生| 97亚洲一区| 欧美色性爱| 亚洲欧美黄| 大香蕉www.超碰| 人妻丝袜肏逼| 老色69| 婷婷五月天激情网| 台湾一区国产高清在线| 日本在线伊人啪啪| 在线亚洲丝袜视频网站| 日韩美女久久一区二区三区| 国产福利第一视频| 少妇一区二区三区高速| 亚洲自拍偷拍视频在线| 噜噜噜噜久久久精品免费| 人妻熟女午夜精品在线| 国产高清无码一区二区三区四区皇冠| 婷婷五月天激情四射| 日日干夜夜欢| 久久精品人妻一区二区| 国产久久日韩网站导航| 亚洲精品一区二区三区新线路| 日韩免费性爱视频在线观看| 中国国国产一级特黄毛片| 欧美色网络| 亚洲激情欧美色图 | 国产精品对白内射| 国产精品色| 人妻熟女av国产网站| 亚洲图片激情综合另类| 强奸乱伦AV一天堂网| 欧美色图亚洲激情| 精品一区二区三区18| 国产视频第2页| 亚洲成人精品久久久| 国产精品麻豆成人AV艾秋| 一起草精品人妻| 青青久久手机线视频| 香伊人在线| 肏逼视频日本| 亚洲最新Av| 美女诱惑1区2区| 色婷五月天| 婷婷五月天av| 九月色婷婷| AA特级绝黄| 国产呦精品一区二区三区下载| 另类小说综合网| 俄罗斯一区二区视频在线观看 | 国产成人+综合亚洲+天堂| 欧美劲爆视频一区二区| 国产成人无码网站在线视频| 超碰精品在线| 99热精品在线观看| 超碰国产情侣自拍网| 国产日韩精品一区二区三区| 亚洲色图加勒比| 又黄又粗又硬又长又大| 久久是精品| 蜜臀久久99精品久久久久久成人小说 | 午夜视频久久久久一区| 日韩免费a级毛片无码a∨| 精品人妻免费观看| 强奸乱伦大香蕉| 一级黄色性爱A级片| 青娱乐国产精品| 五月丁香社区婷婷日韩欧美精品影院 | 91亚洲欧美激情| 天天综合网日韩| 午夜国产综合视频在线观看 | 夜草欧美| 91丰满| 亚洲性网| 无码在线亚洲| 国产欧美第五页| 欧美 传媒 麻豆 日韩 偷拍| 天天操女人| 色99久草| 国产无码三级视频在线观看| 丁香五月激情综合国产| 岛国AV一区二区电影| 久草精品视频| 久久久久国产精品久久久| 亚洲精品白浆高清久久久久久 | 麻豆婷婷成人一二三| 综合九九| 日韩欧美大片免费高清啪啪| 啪啪啪精品视频| 91狠狠综合久久久久久| 制服丝袜第二页| 2024年最新色情网站在线观看| 狼狼色丁香久久婷婷综合五月 | 伦理日韩国产久久| 干超碰碰熟女| 激情综合婷婷| 国产热av| 中文字幕AV乱伦| 亚洲天堂人妻熟妇视频| 亚洲情色1区| 国产吹潮女在线观看| 97在线免费视频| 国产激情在线| 色97| 亚洲午夜精品久久久中文影院| 免费国产电影一区二区| 欧美另类色图片| 国产熟码AV| 午夜乱轮操逼视频免费看| 六月丁香五月婷婷| 曰本道人妻久久久在线不卡色视频| 99亚洲国产精品色一区二区三区| 亚洲五月婷婷| 国产精品久久久久久9999| 久久久久久久强迫| 天综合中文| 国产精品日日摸天天碰| 国产精品午夜高潮呻吟久久av| 97超碰热线| 久久在线观看免费视频| 天堂av2019| 久久久久久十| 99色在线| 男人的天堂com| 在线国产一区二区av| 中文字幕AV片| 国产成人一级av88| 日日噜噜夜夜久久亚洲一区二区| ji熟女.com| 老熟女区| 啊啊啊好多水| 狠狠干妹子| 亚洲啪啪性视频| 天天久久| 国产精品日韩在线一区| 亚洲色系另类精品国产| 特级毛片特黄久久免费看| 国产女人与拘做受视频免费| av片在线观看免费播放| 久久日本熟女精品一区| 亚洲人妻五月丁香婷婷| 超碰在线人妻中文字幕| 六月激情婷婷| 亚洲涩图欧美| 国产JDAV无码视频在线观看| www.婷婷六月天| 97免费视频在线观看视频| 亚洲一区二区av| 亚洲男人久久综合天堂| 欧美亚州手机在线| 新怡红院| 三级片网站在线播放| 熟妇人妻精品一区二区| 国产日韩在线播放av| 成人网欧美风情| 色综合 加勒比| 最新av中文字幕高清| 亚洲少妇综合在线播放| 欲色影视综合吧| 黑人娇小av在线播放| 黄色片大香蕉| 亚洲中文字幕一区| 乱伦AVxx| 天天看特黄的免费网站 | 日韩视频小说在线观看| 一牛影视成人片免费| 日韩一性一交一A片俄罗斯| 久久久草成人网站久久久草成人久久久草久久久 | 亚洲精品97| 男人天堂久久日韩| 老熟女乱伦一区| 久久神马影院| 精品国产久热在线观看| 香蕉精品二区二区| 操东北女人| 超碰97网址| 91性高朝久久久久久久久| 色盈盈影院| 人人操人人操人人人操| 欧美 日韩第一性色| 任你爽视频| 国产婷婷综合在线观看| 九九久久久久久爱| 日本国产高清色www视频在线| 免费成人在线熟妇网| 思思久热在线精品66| 伊人伊人LD| 色婷五月天| 狠狠操官网| 青青草好吊色| 97干综合网| 香港成人一级视频在线青青草| 伊人精品久久网站| 久久精品| 亚洲 欧美 第一页| 青草香蕉网| 色99在线| 五月天婷婷小说| 国语精品内射在线观看| 一个色导综合| 亚洲 小说 欧美 激情 另类| 在线不欧美| 精品美女在线视频| 麻豆这里只有精品| 免费在线观看国内色片网站网址| 人人操人人摸人人骑| 国产精品乱码久久久久久久久| 另类av综合久久| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 亚洲最新a在线观看| 乱伦熟女专区| 嫩呦国产一区二区三区AV| 久久东京热成人| 1024午夜激情男人的天堂| 四季AV一区二区凹凸精品小说| 久草婷婷| 欧洲Au麻豆| 九九九九九九亚洲| 色噜噜综合网| 67914亚洲精品| 欧美淫穴| 9 7超碰在线免费观看| 人妻 制服 日韩 中文 在线| 97久久免费| 天天综合网~91综合网| 日日AAvv| 国产精品免费久久久久久久久久| 思思热在线视频免费| 成人自拍三级在线观看| 国模无码一区二区三区在线| www.99色| 久久久久久久久久久久欧美日| 啊好爽受不了无码| 大逼色网站| 国产精品熟女AV中文字幕在线播放| 婷婷五月天久久精品视频一区二区三区| 超碰中文字幕人妻草一区| 欧美同性恋 的搜索结果 - 91n| 亚州性9| 欧美大香蕉同搞| 白丝少妇一区二区| 久久精品28| 久久综合亚洲色1080p| 日韩精品一二三四| 天堂av最新电影网| 放黄片放3级黄片没穿衣服| 综合在线导航一区| 四虎视频在线观看| 视频国产成人精品日本亚洲18| 人妻无一区二区三区| 综合一区中亚洲国产成人综合精品 | 日本网色| 亚洲熟女少妇免费视频| 懂色av一区二区三区天美传媒| 一级性爱aaaa| 97精品视频在线| 欧亚性爱啪啪| 日韩精品影视| 欧美精品999| 欧美 精品国产制服第一页| 天天躁日日躁AAA片李宗瑞| 精品国产一区二区三区久久久蜜臀 | 大香蕉免费乱伦视频| 啊啊啊啊在线观看网址| 无码高清操逼网址| 操操操操操操| 欧美偷拍区| 亚洲自拍一区夜夜操| 一区不卡在线观看av| 超碰在线人妻不卡| 91小视频| 成人a v在线播放免费| 蜜臀Av一区二区三区| 天天日骚逼熟女| 97超级久久| 极品国产内射| 国产成年精品高清在线观看91| 欧美人妻熟女在线| 亚洲人精品午夜不卡| 91精品老女人| 97精品国产精品免费观看| 日韩不卡av一二三| 成年人黄色| 91人妻超碰| 久久久精品网站| 超碰欧美在线欧美| 91久久久久免| 蜜臀久久99精品久久综合| 97综合激情| 国模91| 夜夜操一区二区| 欧美精品第四五页中文字幕在线观看| 91婷婷| 丁香五月性| 92福利社视频| 青草视频在线看看看看看看看看看| 免费一级黄色录像影片| 天天狠操| 欧亚乱色熟女一区二区| 国产精品自在线发布| 99久久久无码精品国产人| 亚洲熟女乱色一区二区三区| 天天激情综合站| 都市久久精品激情亚洲| 亚洲成a人片在线观看中文!!!| 日韩乱伦AⅤ| 日韩av不卡在线观看| 自拍偷拍 高清无码| 深夜激情无码| 男人的天堂2010| 麻豆国产av网| 91九九九吃| 久久精品国产亚洲粉嫩| 狠狠久久手机视频精品| 国内毛片无遮挡国产| 亚洲AV操| 高清不卡视频| 亚洲成人帖图| AV麻豆免费一区| 五月丁香综合啪啪| 啊好爽受不了无码| julia国产在线 | 欧美综合制服在线| 日韩本不卡视频在线观看 | 视频在线观看一二三区| 色香伊人| 免费av高清无码| 色爱国产| 中文字幕免费看| 日本色色视频网站| 97超碰色屌| 亚洲狠狠入| 国产精品麻豆视频网站| 欧美黑人猛交春色影视大全| 91美女视频电影| 色综合av男人天堂| 综合色拍| 天天艹天天日| 久久久久久久久久黄色网| 久久精品国产亚洲AV清纯| 中文字幕黄色片| 四虎精品亚洲| 综合网色| 东京热伊久| 91久操| 婷婷10月天青娱乐| 99超级碰免费视频| 日韩内| 偷拍 精品另类 凸凹了四区| 欧美97网| 精品久久久久久亚洲| 天天综合网在线91| 亚洲。日韩。欧美| 亚洲国产精品无码AV久久| 99热这里| 秋霞成人做爱| 亚洲蜜臀视频精品久久| 新版天堂中文资源8在线| chaopen97久久| 丁香九月婷婷| 国产午夜福利电影免费在线观看| 大香蕉伊人在线成人AV在线观看| 国产狂喷潮在线精品| 成人欧美日超碰| 99精品在线| 欧美的性爱网站免费| 一二视频神马久久传媒| 欧美小说区视频区| 91视频国品一二三区| 亚洲另类小说卡通动漫| 欧美色图亚洲色,麻豆| 亚洲熟妇丝袜在线观看| 亚洲导航深夜福利| 97在线视频免费观看| 欧美色色人| 啊啊啊啊啊啊啊国| 探花激情视频| 久久九九视频九九视频| 新亚洲无码| 亚洲色图欧美色图综合| 国产小炒后入式| 99精品丰满人妻无| 韩国黄色片精品久久久| 黄色电影在线播放综合网站| 美女91在线| 麻豆色99999| 蜜臀亚洲综合一二三四区| 国产熟女少妇一区| 五月婷婷AV| 无码日韩人妻av一| 三级激情网站| 色欲Av人妻精品一区二| 亚洲色图欧美一区二区不卡| 日韩中文字幕精品一二三事国产精品| 97硬碰| 成 人 影视 一区 二区 三区 四区| 国产伦乱91| 亚洲一区二区精品福利| 亚洲av影院在线观看| 青青草视频导航官网| 亚州成人A√| 中文字幕少妇色| av天天在线| 亚洲老司机123专区| 九一综合网| 日韩中文字幕精品一二三事国产精品| 超碰久久网| 羞答答AV中文字| 精品久久久久综合无码| 中文一区二区三区影院| 久久亚州精品成人Av无| 在线天堂999| 色吧5亚洲| 好淫网一二三视区| 亚码激情| 五十路三区在线| 五月天亚洲色图| 九九拍拍精品视频在线播放| 国产情色第一第二页在线观看| 无码78| 亚洲人妻一区二区三区| 欧美日韩人妻精品一区二区三区 | 欧美亚洲| 九九热精彩视频| 人人操人人插人人摸人人干| 成人日韩中文字幕| 9国产超碰| 日韩欧美被操黄免费观看| 亚洲无码偷拍| 亚州中文字幕超碰97| 亚洲制服aⅴ中文字幕| 哑洲在线| 中文字幕日韩国产传媒欧美精品| 精品中文一区二区| 色情五月丁香| 超碰成人人人爽人人爽| 人妻密肉在线观看| 综合伊人激情| 中文字幕制服欧美久久一区| 人妻少妇被猛烈进入中| 亚洲情色视频| 久9热| 五月天伊人| av影片在线观看不卡| 免费观看日本操逼视频| 超碰 国产熟女精品一区| 色九区| 91逼逼女人91| 久久精品女同亚洲女同13| 日韩免费a级毛片无码a∨| av绯色| 操狠狠| 欧美 日韩第一性色| 强奸乱伦免费网站| 天天爱天天韩国日本牛牛牛牛| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 女性喷水高潮在线观看| 两性综合网| 神马久久久久久久久久| 91天天看| 亚洲精品一区中文字幕乱码| 视频二区熟女人妻| 色欲av一区二区三区蜜芽| 91 亚洲 欧洲| 97久久久久| 国产懂色精品国产av| 蜜臀久久在线视频| 99久久亚洲精品无码毛片潘甜甜| 婷婷中文字幕| 亚洲同性aV综合| 亚欧国产无码精品在线| 久久久久大香青草精品综合| 国产欧美日本亚洲精品| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 欧美亚洲第一页| 日本不卡高清免v欧美日韩在线观看| 超碰97久| 国内精品久久久久影院亚洲| 99re综合伊人| 日日碰狠狠添天天爽超| 欧美在线|亚洲| 操逼操网| 91在线国产后入风骚翘臀美女素人| 欧美性爱日韩性爱| 91综合国产精品| 色五天伊人| 亚洲欧美日韩电影网站一区| 一线黄色免费性爱片| 97色妞| a v网站在线播放| 豆1无夜无码| 久久久久久AV无码免费网站| 蜜桃午夜视频一区二区| 自偷自拍的亚洲视频| 色噜噜日韩精品| 色婷婷狠狠| 91夜色| 热久久九九热| 18禁精品网站在线看| 青操影院| 五月丁香婷婷色| 凹凸精品熟女在线观看| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 久射吧| 色婷婷丁香五月| 狠狠操狠狠操操| 五月天综合网| 91小视频| 天美91| 欧美aⅴ99久久黑人专区| 欧美性爱1080p| 麻豆一区二区AV天美| 国产高清1234区| 97在线精品观看视频| 色777999综合| 欧美|91色综合| 国产强奸91| 大色网久久| 亚洲美女精品| 夜间福利片1000无码| 欧成人精品一区二区三区| 性感女人网页在线观看视频| www.av在线视频| 男人的天堂久久久| 色网在线| 成人资源中文字幕在线观看天天 | 乱久久久| 国产精品久久久亚洲一区| 一级@啪啪视频| 色悠悠伊人网五月天| 偷拍亚洲高清图片| 人人考人人摸人人干| 国内毛片欧美香蕉精品| 亚洲色综网| 97色欧州| 色欧美天天| 18禁网站在线播放| 国产呦精品系列在线观看| 天天操天天日天天干| 日本久久久久久久久| 久久毛卡| 国产婷婷综合在线观看| 干妹子| 精品乱码久久久久| 亚洲精品久| 天天做日日爱夜夜爽| 人妻一区二区三区视频| 97碰碰色| 欧美淫乱视频| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | AV天天在线观看| 1769精品一区二区三区| 欧美一区二区三区互相| 亚洲自拍97| 999久久久久久久久| 97精品97| 欧美高清性猛交| 人妻少妇久久久| 久草福利在线资源站| 久久免费99精品久久久久久| 美女久久久久久久久久久| 丝袜高跟澳门91视频| 国产丝袜美腿美女麻豆| 国产熟女少妇一区| 九九热最新| www.99在线| 中文字幕 国产 精品| 午夜120视频在线观看| 日韩激情无码影院| 蜜臀一区二区三区在线| 老妇女91| 91精品91久久久中77777| 噜噜噜亚洲精| 九九五月天| 久久大香蕉97| 91丝袜人妻| 午夜操一视频一区| 欧美桃色网| 久久一二三四五六七八九区| 国产91丝袜在线播放蜜月| 日本淫穴在线| 天天操天天7| 99热大香蕉伊在线| 欧美手机在线综合| 中出20p| 超碰97久| 另类欧美色| 97AV在线观看| 国产高清自拍视频| 人人弄人人摸| 国产亚洲精品激情| 亚欧无码在线| 人妻精品一区二区在线| 国产精品香蕉热久久新品| 久久99午夜精品一区人妻| 色官网在线| 男人的天堂不卡一区二区 | 欧美91精品国产自产| 东京热一区二区中文字幕| 日本欧美中文字幕| 自拍偷拍第26| 国产福利在线视频网站| 1024人妻熟女一区二区三区| 高清在线偷拍自拍视频| 无码9区| 国产大片精久久久久久| 色欲色香天天天综合网www-亚洲综合国| 日韩精品怡红院| 日本久久久精品电影| 亚洲视频精选| 日韩三级在线观看网站| 五月婷婷六月丁香网址| 亚洲砖码砖专无区2023| www.色婷婷| 超碰99热中文字幕| 久久久天美| 天天综合网网欲色| 久久黄色视频一区二区三区| 在线可观看的黄色网址| 女优免费一区二区永久| 日本999精品视频| 久久久96精品| 午夜美女福利视频| 免费无码国产精品v片在线观看| 操逼视频免费日韩无码| 久久久艹艹艹| 亚洲AV人人澡人人爱| 亚洲天堂男人网| 日韩免费大片一级播放| 久久婷婷五月综合| 白丝少妇一区二区| 偷偷人人精品女女久久| 人人看黄色视频| 国产欧美一区激情交| 爱干爱射网啊啊啊| 黄色交缠性感爆操91国产精品免费一区二区三区| 九九九网站| 蜜乳AV一区二区三区四| 丰满少妇一区二区三区专区| 爱丝福利| 翔田千里Av在线| 欧美99| 亚洲日韩XXX| 亚洲伊人成综合成人网| 熟女人妻一区二区三区| 麻豆久久久久久久久丝袜 | 久久黄色视频一区二区三区| 欧美午夜精品久久久久久3D| 青青草日韩免费观看高清在线| 啊啊啊好多水| 色9999日韩国产| 超碰久久精品| 中文字幕在线免费观看2| 色欲久久综合| 亚洲drav色图| 岛国A V在线免费看| 人妻激情偷乱视频一区二区三区| 一区二三区四区视频大全套| 2018天天日天天日| 亚洲天堂区| 18精品一二区| 人妻在线视频| 色天欧美| 草莓精品视频在线免费观看| 97资源超碰| 亚洲日韩美女丝袜美腿人妻视频| 天天干天天狼在线视频| 九九自拍伦理| 美国黄片aaa| 蜜桃中文字日产乱幕4区| 人妻精品一区二区| 亚洲综合69| 韩三级a视频在线观看| 亚洲国产欧美日韩人妻日中文| 欧洲一区二区| www欧美性爱| 蜜桃狠狠色伊人亚洲综合 | 色网综合网| 欧美性生活免费网| www.AV有限公司一区| 91丨九色丨国产丨人妻在线| 无码人妻丰满熟妇奶水区毛片| 嗯嗯啊啊操我| 97久精品| 中国AAAAAA黄色片| 91红杏| 久久日韩精品一区二区| 天天看人人操屄犊摸阴| 色在线综合| 密臀AV在线| 乱伦av国产| 蜜臀无码一区二区| 人妻精品一区二区在线| 欧美亚洲韩国视频十五区| 国产精品岛国片在线观看| 乱操9999| 九九色综合| 97色网| 亚洲av热热色| 色官网色综合| 青草伊人网| 蜜臀久久99精品久久久老,,| 九九九免费视频| 青青操少妇| 18禁网站在线播放| 九九九偷拍| 99热色这里只有精品| 激情小说图片亚洲首页| 人妻少妇色综合| 操逼逼无码| 欧美色图91| 欧美大香蕉97| 牛牛aV| 国产91 丝袜在线播放00-百度| 蜜桃中文字日产乱幕4区| 久操凹凸视频| 综合网亚洲在线| 日本一区二区三区欧美日韩中文字幕| 中文字幕二区| 麻豆AV96熟妇人妻| 青娱乐亚洲自拍| 精品十八在线观看| 久久色激情一区二区三区| 第四色奇米影视777| 激情四射婷婷六月天| 骚逼高潮久久精品| 秋霞一级A片黄色视频| 一摸二插三插| 欧美久久婷| 国模少妇一区二区三区| 欧美激情综合| 操逼无毒无码免费视频| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 九九热精品| 啪啪啪东京| 亚洲人妻五月丁香婷婷| 午夜精品久久久久| 五月色综合| 五月婷网站| 啊啊啊好想要| 亚洲91射| 操操操操网黑人| 青草视频在线看看看看看看看看看| 国产视频一区二区三区在线免费观看| 国产精品对白自产拍| 久久欧洲| 亚州精人品大香蕉| 新婚人妻扶着粗大强行坐下| 男女无套 免费网站| 久操视频在线| 日本东京热大香蕉a片| 69精品少妇一区二区三区蜜桃| 国模不卡| 91性高朝久久久久久久久| 四虎av在线| 日韩一级二级三级免费看完整版国语版| 少妇 综合| 久久9视频| 久热久一区二区三区| 免费一级视频特黄色大片| 99re国产精品视频| 十八禁啪啪视频| 欧美78P| 国产91丝袜在线播放蜜月| 日韩欧美丝袜诱惑| 欧美大香蕉在线观看| 99热在线播放| 一区二区娱乐网站| 激情综合二| 可以在线观看的黄色网址| 伊人网免费视频| 中文字幕丰满子伦无码专区在线视频最新| 91热色| 九九免费影片| 91熟女.com| 天天综合网~91入口| 天天影视射综合网| 久久精品72| 天美一二三在线观看Av| 久久一二区四| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 欧美久久草熟女| 亚洲男人天堂Av| 午夜天堂精品久久久久91| 婷婷五月综合在线| 九月婷婷久久| 超碰免费在线| 久久人妻视频| 一本道综合色图| 无码又爽又硬又激情免费视频| 伊人五月天| 五月丁香| 国产又粗又又黄又猛| 欧美综合站| 啪啪视频mP4| 亚洲宗合电影| 欧美视频激情久久久久久| 91在线丝袜视频| 国产久久男人天堂| 天天日熟妇| 蜜桃臀av一区二区| 97se亚洲综合自| 青青草国产欧美非洲黑人 | 国产精品天干天干综合网麻豆| 蘋果手機免費看成人Av| 国产后入清纯| 黑丝制服中文字幕 |