99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

信息學(xué)奧賽一本通1276:編輯距離動態(tài)規(guī)劃與滾動數(shù)組優(yōu)化

信息學(xué)奧賽一本通1276:編輯距離動態(tài)規(guī)劃與滾動數(shù)組優(yōu)化 字符串之間的改一下最短要幾步這類問題看著不起眼卻是很多人動態(tài)規(guī)劃之路上繞不過去的一道坎。信息學(xué)奧賽一本通里編號 1276 的這道題標(biāo)題就四個(gè)字——編輯距離它講的正是把一個(gè)字符串通過插入、刪除、替換三種操作變成另一個(gè)字符串求最少操作次數(shù)。第一次接觸它的人通常會卡在狀態(tài)怎么定、轉(zhuǎn)移方程為什么長那樣而刷過幾遍的人又會發(fā)現(xiàn)下標(biāo)從 0 還是從 1 開始、初始化怎么寫每個(gè)細(xì)節(jié)都能讓你從樣例通過直接掉到全錯(cuò)。這篇就把 1276 這道例題從頭到尾拆開講清楚動態(tài)規(guī)劃的設(shè)計(jì)動機(jī)、二維表的手工推演、代碼逐行注釋、以及我踩過的那些坑無論你是剛學(xué)完背包的初學(xué)者還是想把這道模板題講給別人聽的教練都能從中找到可直接抄作業(yè)的部分。1. 先搞清楚編輯距離到底在解決什么1.1 從打錯(cuò)字說起問題的直覺理解你在搜索框里輸入 aple系統(tǒng)卻問你是不是想找 apple這背后的核心計(jì)算之一就是編輯距離。它的定義非常樸素給定兩個(gè)字符串 A 和 B允許三種操作——在任意位置插入一個(gè)字符、刪除任意一個(gè)字符、把任意一個(gè)字符替換成別的字符每次操作算一步問用最少的步數(shù)把 A 變成 B 需要多少步。題目 1276 里 A 和 B 的長度都小于 2000最終只要求輸出這個(gè)最小步數(shù)是一個(gè)純數(shù)值答案。理解這個(gè)問題的關(guān)鍵是意識到三種操作之間存在等價(jià)和冗余關(guān)系。插入一個(gè)字符和刪除一個(gè)字符互為逆操作替換一個(gè)字符有時(shí)可以拆成刪一個(gè)再插一個(gè)但那樣要多花一步所以替換是更劃算的獨(dú)立操作。舉個(gè)小例子A catB cut只需把中間那個(gè) a 替換成 u一步搞定編輯距離是 1A catB cats末尾插一個(gè) s也是一步。這些簡單的例子看起來毫無難度但一旦字符串變長、字符順序錯(cuò)位人腦就徹底算不動了這正是需要算法的原因。我特別喜歡拿翻譯來類比把 A 看成原文B 看成譯文編輯距離衡量的是兩者在字符層面有多像。像 kitten 變成 sitting 這類經(jīng)典例子標(biāo)準(zhǔn)答案是 3k→se→i末尾補(bǔ) g很多教材都拿它來引入因?yàn)樗日故玖颂鎿Q、也展示了插入操作類型齊全短小又好記。1.2 為什么貪心和暴力都行不通有人第一反應(yīng)是從左往右掃一遍不一樣就改這就是典型的貪心思路。它對少數(shù)情況湊巧正確但很快會崩。比如 A abB ba從左掃第 1 位 a 和 b 不同改一次變成 bb再改第二位變成 ba兩步。可實(shí)際上有更好的解法嗎想想看替換兩次就是 2但如果你刪掉開頭的 a 變成 b再在末尾插一個(gè) a 變成 ba那是 2 步直接交換是不允許的。所以這里 2 是最優(yōu)貪心正好命中了。但換一組A abcdB acbd。從左掃第一位相同第二位 b 和 c 不同若順手改成 c后面就亂了可能要更多步。實(shí)際上最優(yōu)是刪掉 b、在 c 后插一個(gè) b共 2 步而貪心容易改成 3 步甚至更多。貪心的根本問題是當(dāng)前位置改還是刪還是插會影響后面所有字符的對齊方式局部最優(yōu)不代表全局最優(yōu)必須把子問題層層保留下來比較這天然就是動態(tài)規(guī)劃的土壤。暴力搜索更不可行。每一步狀態(tài)都對應(yīng)一棵分叉樹分支因子是常數(shù)級別長度 2000 的情況搜索空間大到無法想象指數(shù)級復(fù)雜度直接爆掉。所以這道題的正解只有一條動態(tài)規(guī)劃而且是一個(gè)二維的、時(shí)間 O(n·m)、空間 O(n·m)可優(yōu)化到 O(m)的經(jīng)典模型。1.3 編輯距離在真實(shí)世界里的用武之地別以為這只是競賽題編輯距離是實(shí)打?qū)嵄还I(yè)界廣泛使用的算法。第一類是拼寫糾錯(cuò)與輸入法候選搜索引擎、手機(jī)輸入法在用戶打錯(cuò)字時(shí)會計(jì)算輸入串和詞典里每個(gè)詞的編輯距離把距離最小的若干詞作為你想找的是不是……推給你。第二類是生物信息學(xué)里的 DNA/蛋白質(zhì)序列比對把堿基或氨基酸看成字符編輯距離及其帶權(quán)變體能衡量兩條序列的相似程度是很多比對工具的基礎(chǔ)。第三類是版本控制與文本差異工具比如各種 diff 工具要展示兩段文本改了哪幾行,其行級比較的內(nèi)核思想也和編輯距離一脈相承。第四類甚至出現(xiàn)在語音識別、抄襲檢測等場景本質(zhì)都是兩串東西差多少的量化。弄明白這四類應(yīng)用你就會明白為什么這道例題被反復(fù)拿出來講它不只是讓你 AC 一道題而是讓你掌握一個(gè)能遷移到無數(shù)真實(shí)問題里的建模套路。順帶說一句很多人搜這道題會連帶跳出弗洛伊德算法那其實(shí)是另一個(gè)領(lǐng)域的東西——弗洛伊德用來求圖上任意兩點(diǎn)間最短路是三重循環(huán)松弛編輯距離是字符串對齊的動態(tài)規(guī)劃。兩者唯一相通的地方是都涉及多階段決策取最優(yōu)但狀態(tài)、轉(zhuǎn)移、場景完全不同別把它們的方程記混了。2. 動態(tài)規(guī)劃設(shè)計(jì)狀態(tài)定義與轉(zhuǎn)移方程的來龍去脈2.1 狀態(tài)為什么必須是二維的動態(tài)規(guī)劃第一步永遠(yuǎn)是定義狀態(tài)。這道題里答案不是整個(gè) A 變成整個(gè) B一步能算出來的而是由前綴變前綴的子問題疊加而來。原因很簡單字符串的匹配是從左往右對齊的你處理到某個(gè)位置時(shí)需要同時(shí)知道A 已經(jīng)用掉了前幾個(gè)字符B 已經(jīng)匹配了前幾個(gè)字符,這兩個(gè)信息缺一不可。于是定義 dp[i][j]把 A 的前 i 個(gè)字符變換成 B 的前 j 個(gè)字符所需的最少操作次數(shù)。注意這里是前 i 個(gè)下標(biāo)含義要牢牢記住很多人后面出錯(cuò)就是因?yàn)榘堰@里的 i、j 理解成了第 i 個(gè)字符的下標(biāo)。為什么是二維而不是一維因?yàn)樽訂栴}有兩個(gè)自由度——A 用多少、B 用多少。一維狀態(tài)沒法同時(shí)記錄兩個(gè)進(jìn)度所以二維是最小的必要維度。最終答案自然就是 dp[n][m]其中 n、m 分別是 A、B 的長度。把狀態(tài)想成一張表會更直觀行代表 A 的前綴長度從 0 到 n列代表 B 的前綴長度從 0 到 m。dp[i][j] 就是這張表第 i 行第 j 列的那個(gè)格子。填表的過程就是把每個(gè)格子用它的左、上、左上三個(gè)鄰居推導(dǎo)出來這也解釋了為什么二維表能從左上角一路填到右下角。2.2 三種操作在狀態(tài)轉(zhuǎn)移里各自對應(yīng)哪一步理解轉(zhuǎn)移方程的最好辦法是逆向思考要得到 dp[i][j]考慮最后一步操作作用在哪兒。假設(shè)我們已經(jīng)在湊用 A 的前 i 個(gè)字符得到 B 的前 j 個(gè)字符看三種操作分別意味著什么。刪除如果 A 的第 i 個(gè)字符是多余的把它刪掉那么問題就退化成用 A 的前 i-1 個(gè)字符變成 B 的前 j 個(gè)字符,代價(jià)是 dp[i-1][j] 1。插入如果 B 的第 j 個(gè)字符在 A 里沒有對應(yīng)我們在末尾補(bǔ)一個(gè)等價(jià)于用 A 的前 i 個(gè)字符先湊出 B 的前 j-1 個(gè)字符,再補(bǔ)上第 j 個(gè)代價(jià)是 dp[i][j-1] 1。替換把 A 的第 i 個(gè)字符直接改成 B 的第 j 個(gè)字符那么兩邊各消耗一個(gè)字符退化成用 A 的前 i-1 個(gè)字符變成 B 的前 j-1 個(gè)字符代價(jià)是 dp[i-1][j-1] 1。這三種最后一步的假設(shè)覆蓋了所有可能取它們的最小值就是答案。這里有個(gè)容易忽略的點(diǎn)當(dāng) A 的第 i 個(gè)字符和 B 的第 j 個(gè)字符本來就相等時(shí)替換這一步不需要花費(fèi)代價(jià)甚至比替換更省——直接沿用 dp[i-1][j-1]一個(gè)字符完美對齊一步都不用花。2.3 狀態(tài)轉(zhuǎn)移方程的完整形式與推導(dǎo)把上面的三種情況合在一起就得到了完整的狀態(tài)轉(zhuǎn)移方程當(dāng) A[i] B[j]下標(biāo)從 1 開始計(jì)時(shí)dp[i][j] dp[i-1][j-1]當(dāng) A[i] ! B[j] 時(shí)dp[i][j] min(dp[i-1][j-1], dp[i][j-1], dp[i-1][j]) 1我先解釋為什么相等時(shí)不用考慮另外兩種加操作。假設(shè) A[i] B[j]如果還去嘗試刪除或插入那至少要多花一步而 dp[i-1][j-1] 這個(gè)選擇能做到比它們都不差所以直接取它即可無需再取 min。這是一個(gè)可以證明的結(jié)論省掉了不必要的比較。再說說不相等時(shí)為什么是三個(gè)里取最小再加一。dp[i-1][j-1] 對應(yīng)替換dp[i][j-1] 對應(yīng)插入dp[i-1][j] 對應(yīng)刪除三者各自代表一種把當(dāng)前字符對齊掉的思路誰最省就選誰。注意這個(gè)方程天然滿足最優(yōu)子結(jié)構(gòu)大的問題答案由小的子問題答案拼出來而且子問題之間沒有循環(huán)依賴保證了按順序填表就能得到正確結(jié)果。2.4 邊界條件空串是最重要的起點(diǎn)任何 DP 都要處理邊界這道題的邊界就是其中一個(gè)是空串。dp[i][0] 表示把 A 的前 i 個(gè)字符變成空串那只能一路刪需要 i 步所以 dp[i][0] i同理 dp[0][j] 表示用空串湊出 B 的前 j 個(gè)字符只能一路插需要 j 步所以 dp[0][j] j。dp[0][0] 0 是自然而然的。這兩個(gè)邊界看似簡單但它決定了整張表的地基。很多初學(xué)者代碼思路完全正確卻因?yàn)橥顺跏蓟谝恍谢虻谝涣袑?dǎo)致后面所有格子都算錯(cuò)樣例過不去。我在下面還會專門拿一節(jié)把初始化的坑講透。這里先記住一句話第一行是從空串到 B 的各前綴第一列是從 A 的各前綴到空串它們的值就是下標(biāo)本身。理解了這句話初始化就再也不會寫錯(cuò)。3. 完整代碼實(shí)現(xiàn)與逐行拆解3.1 二維 DP 標(biāo)準(zhǔn)寫法與詳細(xì)注釋先上最標(biāo)準(zhǔn)、最好理解的二維版本。它是我們的基準(zhǔn)版本調(diào)通它之后再做空間優(yōu)化才穩(wěn)妥。#include bits/stdc.h using namespace std; int main() { string a, b; cin a b; int n a.size(), m b.size(); // dp[i][j]a 的前 i 個(gè)字符變成 b 的前 j 個(gè)字符的最少操作數(shù) vectorvectorint dp(n 1, vectorint(m 1, 0)); // 邊界第一列a 的前綴全部刪掉變成空串 for (int i 0; i n; i) dp[i][0] i; // 邊界第一行空串逐個(gè)插入得到 b 的前綴 for (int j 0; j m; j) dp[0][j] j; for (int i 1; i n; i) { for (int j 1; j m; j) { if (a[i - 1] b[j - 1]) { // 字符相同直接對齊不花代價(jià) dp[i][j] dp[i - 1][j - 1]; } else { // 替換、插入、刪除三選一再補(bǔ)上當(dāng)前這一步 dp[i][j] min({dp[i - 1][j - 1], dp[i][j - 1], dp[i - 1][j]}) 1; } } } cout dp[n][m] endl; return 0; }幾個(gè)細(xì)節(jié)值得單獨(dú)說明。第一字符串用string存儲下標(biāo)從 0 開始而 dp 表從 1 開始計(jì)前綴長度所以訪問字符時(shí)統(tǒng)一寫a[i-1]、b[j-1]這個(gè)偏移量是坑點(diǎn)重災(zāi)區(qū)。第二min({...})這種三參數(shù)寫法是 C11 以來的初始化列表版本如果評測環(huán)境偏老可以改成min(min(x, y), z)。第三二維數(shù)組用vector動態(tài)分配避免大數(shù)組爆棧長度 2000 時(shí)表有 2001×2001 個(gè)格子用int大約 16MB一般題目內(nèi)存限制下沒問題但如果兩串都接近 2000 且內(nèi)存卡得緊就需要下面的滾動數(shù)組版本。3.2 手工推演一遍樣例把表填出來代碼只是形式真正的理解來自手推。拿一本通 1276 的樣例來走一遍A sfdqxbwB gfdgw。先用邊界把第一行第一列填好然后逐格推進(jìn)得到下面這張完整的 dp 表行對應(yīng) A 的前綴列對應(yīng) B 的前綴。dpgfdgw012345s112345f221234d332123q443223x554333b665444w776554右下角 dp[7][5] 4正好是樣例輸出。你可以挑一個(gè)格子手動驗(yàn)算比如 dp[2][2]A 的前兩個(gè)字符 sf 變成 B 的前兩個(gè)字符 gfs≠g取 min(dp[1][1]1, dp[2][1]2, dp[1][2]2) 1 2但真實(shí)情況是 sf→gf 只需把 s 改成 g一步即可為什么表里是 1回頭看看表dp[2][2] 實(shí)際填的是 1。這里我要糾正一下剛才的口算dp[1][1] 是 A 的 s 變 B 的 g值確實(shí)是 1所以 min 里 dp[1][1]1 最小加一得 2不對等等——字符 s 和 g 不相等時(shí)才加 1可對于 dp[2][2]比較的是 a[1]f 和 b[1]f它們相等所以直接取 dp[1][1]1。看這就是相等分支省掉加一的威力。我們再驗(yàn)一個(gè)不等的情況dp[3][4]A 的前三個(gè) sfd 變 B 的前四個(gè) gfdga[2]db[3]g不相等取 min(dp[2][3]2, dp[3][3]1, dp[2][4]3) 1 1 1 2和表一致。這種手推三五個(gè)格子比讀十遍代碼都管用尤其能幫你直觀感受三個(gè)鄰居誰最小到底在選什么。3.3 空間優(yōu)化把二維壓成一維當(dāng) n、m 都到 2000 甚至更大時(shí)二維表雖然能過但空間是 O(n·m)。觀察轉(zhuǎn)移方程dp[i][j] 只依賴它左邊、上面、左上三個(gè)格子也就是說填第 i 行時(shí)只需要第 i-1 行的數(shù)據(jù)更早的行完全沒用了。這就具備了滾動數(shù)組壓縮的條件把空間從 O(n·m) 降到 O(m)。#include bits/stdc.h using namespace std; int main() { string a, b; cin a b; int n a.size(), m b.size(); // dp[j] 表示當(dāng)前處理到 a 的前 i 個(gè)字符時(shí)變成 b 前 j 個(gè)字符的最少操作數(shù) vectorint dp(m 1); for (int j 0; j m; j) dp[j] j; // 相當(dāng)于第 0 行 for (int i 1; i n; i) { int prev dp[0]; // 保存 dp[i-1][j-1]即左上角 dp[0] i; // 當(dāng)前行的第 0 列dp[i][0] i for (int j 1; j m; j) { int tmp dp[j]; // 更新前它還是上一行的值即 dp[i-1][j] if (a[i - 1] b[j - 1]) { dp[j] prev; // 對應(yīng) dp[i-1][j-1] } else { dp[j] min({prev, dp[j - 1], dp[j]}) 1; } prev tmp; // 為下一列保留左上角 } } cout dp[m] endl; return 0; }這段代碼最容易繞暈的就是三個(gè)變量的時(shí)序關(guān)系我用一句話幫你鎖定更新 dp[j] 之前先把它存進(jìn) tmp此時(shí) dp[j-1] 已經(jīng)是本行第 i 行的新值dp[j] 還是上一行的舊值而 prev 是上一行、上一列的值。三者正好對應(yīng)狀態(tài)轉(zhuǎn)移需要的左、上、左上。其中prev tmp放在本輪末尾是為了讓下一列 j1 在使用左上角時(shí)拿到的是本行前一列更新前的舊值——這個(gè)細(xì)節(jié)如果寫反答案會悄悄錯(cuò)掉但樣例有時(shí)候還能過非常陰險(xiǎn)。提示滾動數(shù)組我強(qiáng)烈建議先在二維版上調(diào)通、拿到正確答案再做這一步優(yōu)化并用同一組數(shù)據(jù)對拍驗(yàn)證。直接上手一維版一旦出錯(cuò)你很難判斷是方程錯(cuò)還是變量時(shí)序錯(cuò)。3.4 輸入輸出與字符串讀入的注意點(diǎn)題目給的是兩行字符串中間可能有空格嗎根據(jù)一字通的題意A 和 B 是普通字符串用cin a b就能讀它會自動以空白符分隔。但如果字符串本身可能包含空格某些變體題會這樣就必須用getline。這時(shí)常見坑是如果前面用cin讀過數(shù)字緩沖區(qū)里會殘留一個(gè)換行符getline會讀到空串得先用getchar()或cin.ignore()吃掉那個(gè)換行。這道原題不涉及這個(gè)但你在做同類型題時(shí)要有這根弦。輸出只有一個(gè)整數(shù)最簡單的cout dp[n][m]即可。有的題會要求如果無解輸出 -1 之類但編輯距離一定是有解的最壞情況就是全刪全插所以不必?fù)?dān)心邊界外的分支。4. 常見坑與調(diào)試實(shí)錄4.1 下標(biāo)偏移0 起步與 1 起步的拉鋸戰(zhàn)這是我見過最多人栽的地方。dp 表用 1 表示第一個(gè)字符而字符串下標(biāo)用 0 表示第一個(gè)字符兩者差了一位。如果你在代碼里寫成了a[i] b[j]而不是a[i-1] b[j-1]當(dāng) i 或 j 取到長度時(shí)就會越界輕則答案錯(cuò)重則程序崩潰。解決辦法有二一是老實(shí)用i-1、j-1二是干脆在字符串前面補(bǔ)一個(gè)占位符讓兩個(gè)下標(biāo)都從 1 開始對齊比如讀入后執(zhí)行a a; b b;之后統(tǒng)一用a[i]、b[j]。補(bǔ)占位符這個(gè)技巧我用了很多年能顯著減少下標(biāo)錯(cuò)誤代價(jià)是多了兩個(gè)字符的內(nèi)存完全可以忽略。兩種寫法都行關(guān)鍵是整段代碼風(fēng)格統(tǒng)一別一半用一個(gè)規(guī)則、一半用另一個(gè)規(guī)則。4.2 初始化漏寫或?qū)戝e(cuò)的連鎖反應(yīng)初始化的坑有兩種典型形態(tài)。第一種是壓根忘了初始化第一行第一列此時(shí) dp 數(shù)組里都是默認(rèn)的 0結(jié)果 dp[i][0] 應(yīng)該等于 i 卻成了 0整張表全部偏低答案也偏小。第二種是初始化寫對了范圍但寫錯(cuò)了方向比如把dp[i][0] i寫成了dp[0][i] i行列顛倒在 n≠m 時(shí)錯(cuò)誤會被放大。我的經(jīng)驗(yàn)是寫初始化時(shí)先在紙上畫一個(gè)小表把邊界的值一個(gè)個(gè)標(biāo)出來再對著代碼逐行核對尤其是 n 和 m 不相等的時(shí)候。如果你用vector且長度寫成了n1和m1記住行的上界是 n、列的上界是 m別寫反。注意dp[i][0] i這一行很容易在重構(gòu)代碼時(shí)被刪掉。養(yǎng)成習(xí)慣——凡是二維 DP先肉眼掃一遍第一行第一列有沒有賦值再點(diǎn)運(yùn)行。4.3 字符比較與 min 的書寫陷阱字符比較本身很簡單但有一個(gè)隱藏問題題目里的字符可能是大小寫混合甚至是非 ASCII 的寬字符。原題 1276 都是普通可見字符直接比較沒問題。但如果遇到 Unicode 字符串string里一個(gè)字符可能占多個(gè)字節(jié)逐個(gè)char比較會得到詭異結(jié)果這時(shí)就需要按碼點(diǎn)切分屬于進(jìn)階內(nèi)容本題不涉及。另一個(gè)高頻小錯(cuò)是 min 的參數(shù)個(gè)數(shù)。用min({a, b, c})需要包含algorithm某些環(huán)境下還要注意編譯標(biāo)準(zhǔn)用嵌套min(min(a,b),c)則絕對安全。還有一種錯(cuò)誤是忘記加 1寫成dp[i][j] min(...)而漏掉 1這種情況下答案會系統(tǒng)性偏小樣例可能湊巧還對但一提交就掛。我調(diào)試這類問題的土辦法是挑一個(gè)不相等的格子手工算出期望值再打印程序里的實(shí)際值一眼就能看出是漏加還是取錯(cuò)鄰居。4.4 與最長公共子序列的混淆編輯距離和最長公共子序列LCS長得太像了都是二維、都是前綴、都有左上角轉(zhuǎn)移很多人背著背著就串味。我把區(qū)別釘死在這里L(fēng)CS 求的是最多能匹配多少個(gè)字符相等時(shí)dp[i][j] dp[i-1][j-1] 1不相等時(shí)取左邊和上面的大者且不加代價(jià)編輯距離求的是最少要改多少步相等時(shí)dp[i][j] dp[i-1][j-1]不相等時(shí)在三個(gè)方向里取最小加一。一個(gè)求最大、一個(gè)求最小一個(gè)相等時(shí)加一、一個(gè)相等時(shí)直接沿用。實(shí)際上兩者還有一層關(guān)系在只允許插入和刪除、不允許替換時(shí)編輯距離等于n m - 2 × LCS。把這條關(guān)系記住既能幫你區(qū)分兩個(gè)模型也能在需要時(shí)互相驗(yàn)證結(jié)果。4.5 調(diào)試速查表把上面這些坑整理成一張速查表考試或比賽時(shí)對著排查效率很高?,F(xiàn)象可能原因排查辦法答案偏小且正好差一個(gè)固定值漏寫1或邊界沒初始化手工算一個(gè)不等格子的期望值對比程序越界崩潰用了a[i]但 i 可等于 n改成a[i-1]或補(bǔ)占位符n≠m 時(shí)全錯(cuò)nm 時(shí)對初始化行列寫反檢查dp[i][0]和dp[0][j]樣例過但提交錯(cuò)滾動數(shù)組 prev 時(shí)序錯(cuò)用二維版對拍小數(shù)據(jù)答案忽大忽小無規(guī)律混用了 LCS 的轉(zhuǎn)移式逐個(gè)核對相等/不等分支5. 舉一反三從模板題到變形應(yīng)用5.1 帶權(quán)編輯距離當(dāng)三種操作代價(jià)不同一本通這道題默認(rèn)插入、刪除、替換的代價(jià)都是 1但現(xiàn)實(shí)中它們并不等值。比如某些場景下刪除很貴、替換相對便宜于是就有了帶權(quán)編輯距離給三種操作各設(shè)一個(gè)代價(jià) w_del、w_ins、w_sub轉(zhuǎn)移方程變成 dp[i][j] min(dp[i-1][j] w_del, dp[i][j-1] w_ins, dp[i-1][j-1] (相等 ? 0 : w_sub))。改法只有幾處但思路完全一致。理解了基礎(chǔ)版本帶權(quán)版本就是順手套公式。更有意思的是當(dāng)替換代價(jià)大于刪除加插入之和時(shí)替換操作永遠(yuǎn)不會被選模型就退化成純插入刪除的編輯距離正好對應(yīng)前面提到的 LCS 關(guān)系。這個(gè)現(xiàn)象說明編輯距離的三種操作并非彼此獨(dú)立它們之間存在性價(jià)比的權(quán)衡設(shè)計(jì)轉(zhuǎn)移方程時(shí) min 就是在做這種權(quán)衡。5.2 輸出具體操作路徑而不只是次數(shù)原題只要次數(shù)但很多實(shí)際需求要怎么改。做法是在填表的同時(shí)記錄每個(gè)格子的決策來源是替換、插入還是刪除最后從 dp[n][m] 反向回溯到 dp[0][0]把路徑還原出來?;厮輹r(shí)遇到相等格子就一起往左上走遇到不等就根據(jù)當(dāng)時(shí)取的 min 來自哪個(gè)方向決定輸出哪種操作逆序輸出即可。這個(gè)技巧在文本 diff、操作序列生成里非常有用也常被拿來當(dāng)進(jìn)階練習(xí)。寫回溯代碼有個(gè)小坑反推時(shí)要重新比較字符是否相等而不是只看到達(dá)方向因?yàn)樘鎿Q這個(gè)方向在字符恰好相等時(shí)其實(shí)代表不改動輸出時(shí)應(yīng)該跳過。我一開始就在這里多輸出了一堆無意義的替換改了好幾遍才對。建議回溯時(shí)把 dp 表和字符串一起打印出來對照非常直觀。5.3 和其他 DP 模板的橫向?qū)Ρ确诺礁蟮淖鴺?biāo)系里看編輯距離屬于序列對齊類動態(tài)規(guī)劃和 LCS、最長上升子序列、正則匹配、通配符匹配、最短公共超序列這幾類共享同一套骨架二維狀態(tài)、前綴劃分、左/上/左上轉(zhuǎn)移。把這幾個(gè)模型聚在一起練你會發(fā)現(xiàn)它們的差別主要就三點(diǎn)——相等時(shí)加不加一、不等時(shí)取 max 還是 min、要不要額外加常數(shù)。抓住這三點(diǎn)一整類題就打通了。模型相等時(shí)不等時(shí)目標(biāo)編輯距離取左上三方取 min 再 1最小操作數(shù)最長公共子序列左上 1左右取 max最長匹配長度最短公共超序列左上 1上下取 min 再 1最短合并長度通配符匹配視規(guī)則而定上下左取并能否匹配我自己復(fù)習(xí) DP 時(shí)習(xí)慣把這些方程列成一張對照表貼在桌角做題卡殼時(shí)掃一眼往往立刻就能定位是哪個(gè)分支記錯(cuò)了。這種把同類模型打包記憶的方式比一道一道孤立地刷要高效得多尤其適合準(zhǔn)備競賽的同學(xué)在沖刺階段快速回憶。6. 我在這道題上踩過的那些坑說點(diǎn)書本上不太會寫的東西。我第一次AC這道題花的時(shí)間遠(yuǎn)超預(yù)期原因不是不會方程而是連續(xù)栽在下標(biāo)的坑里。當(dāng)時(shí)我圖省事直接寫了a[i] b[j]小數(shù)據(jù)沒事一放大到臨界長度就段錯(cuò)誤調(diào)試工具一掛我才發(fā)現(xiàn) i 走到了 n。后來我養(yǎng)成了一個(gè)近乎強(qiáng)迫癥的習(xí)慣只要寫二維 DP先在草稿紙畫個(gè) 3×3 的小表把邊界和第一個(gè)內(nèi)格的值算出來代碼跑完先打印這張小表對照對了再放大數(shù)據(jù)。這個(gè)動作多花兩分鐘能省掉的調(diào)試時(shí)間往往是半小時(shí)起步。第二個(gè)體會是關(guān)于對拍的。滾動數(shù)組優(yōu)化那次我寫得挺順樣例也過了結(jié)果交上去只過了三成測試點(diǎn)。后來我寫了個(gè)小腳本隨機(jī)生成幾組長度不超過 8 的字符串分別跑二維版和一維版幾百組一比就發(fā)現(xiàn)有兩組對不上。定位到具體是 prev 更新時(shí)機(jī)錯(cuò)了——在某些 j 位置它拿了本行的新值當(dāng)左上角導(dǎo)致個(gè)別格子偏小。對拍這種暴力版 vs 優(yōu)化版的交叉驗(yàn)證是我認(rèn)為性價(jià)比最高的調(diào)試手段強(qiáng)烈建議每個(gè)做 DP 優(yōu)化的人都備一套。最后分享一個(gè)記憶訣竅。狀態(tài)轉(zhuǎn)移的三個(gè)方向我用一句話記左上管改上管刪左管插。左上角 dp[i-1][j-1] 對應(yīng)把當(dāng)前這對字符替換掉上面 dp[i-1][j] 對應(yīng)刪掉 A 的一個(gè)字符左邊 dp[i][j-1] 對應(yīng)在 A 里插一個(gè)字符補(bǔ)齊 B。順著這句話不用死記方程也能在考場上現(xiàn)推出來。至于邊界還是那句老話——第一行是第一串空串往 B 里插第一列是 A 往空串里刪值就是下標(biāo)本身。把這兩句口訣內(nèi)化這道 1276 以及它的一大票親戚題基本就穩(wěn)了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久热这里只有精品6| 九九99久久| 久久九九玖玖| 欧美精品久| 亚洲无码另类| 久狠狠狠| 九九婷婷网五月天| 久碰综合| 丁香六月成人| 中字幕视频在线永久在线观看免费| 五月天色婷婷激情| 狠狠干狠狠干狠狠干狠狠干| 婷婷热婷婷色| 黄色99视频| 九九精品re免费视频| 97碰在线视频| 婷婷久久色| 欧美色色色色色色色| 日韩操啪| 大香蕉网 久久| 五月天激情电影| 五月婷婷开心丁香| 丁香五月天视频在线播放| 日本色99| 欧美天堂久久| 超碰国产在线观看| 色偷偷人人| 日日干日日| 久久综合五月天| site:minyis.com| 丁香激情五月| 欧美日韩成人在线网站| 亚洲av无码精品色午夜| 五月婷婷国产| 日韩操啪| 久久久久久久久久久44| 激情婷婷综合网| 超碰伊人碰婷婷五月| 五月丁香婷草| 五月丁香影院| 欧美色色色色色色| 色五月色图| 色视五月天婷婷| 99自拍视频在线| 一起操 91N.com| 99在线观看| 美女天天爽| 色婷婷狠狠色| 五月丁香久久网| 综合色影| 五月天激情黄色小说在线观看| 婷婷中文字幕网| 婷婷久久爱| 少妇水多A片太爽了| 超碰在线人妻| 热九九精品| 香蕉狠狠爱视频| www.久久99热地址发布| 97色婷| 久色激情| 99re热在线视频| 婷婷五月天激情小说| 久久婷婷五月免费视频| 91美女被操| 夜夜久久综合网| 99热九九在线| 五月开心激情| 99精品免费| 这里只有国产精品在线| 99热这里只有精品一区| 五月天婷婷激情小说电影| 五月丁香六月花| www.lingjunshare.com| 激情婷婷五月| 亚洲AV成人在线| 开心五月网 | 九九AV在线| 在线观看免费狠狠色丁香香综合| 国产综合视频婷婷| 日本无va视频| 欧洲第一久色| 国产肥白大熟妇BBBB视频| 色综合射婷婷| 精品人妻在线| 色婷婷丁香五月| 青青青在线视频国产| 成人无码髙潮喷水A片| 久久99久久99久久99人受| 日本高清久久| 一起草aV| 永久99免费视频网站| 丁香五月日啪| 色色色色色综合| 丁香久久| 色5月婷婷| 国产又爽又猛又粗的视频A片| 中文字幕1区2区。| 久久婷婷内射| 色狠狠五月天| 无码人妻一区二区三区免费九色| 五月天激情久久| 99久久极情精品一区| 婷婷五月色| www.色色色com| 丁香五月伊人| 天天操天天爱天天日| 亚洲第精品| 99思思热只有在这里看| 久久婷综合| 天天爽天天| 丁香六月激情国产| 欧美精品999| 丁六月激情| 99热九九热| 影音先锋色婷婷| 亚洲婷婷五月天| 精品欧美性爱超级爽| 中文字幕性爱视频| 激情综合网,婷婷五月天| 亚洲色99| av一级棒av| 色五月婷婷影视| 丁香五月天婷婷在线视频| 久久66er久久| 日本五月天网站| 女人高潮内射99精品| 五月丁香趴趴| 天天爽天天透天天爱| 亚洲va成人va成人va在线观看| 天天影院色| 久久加勤综合| 色综合久久伊伊婷婷五月| 五月婷婷m| pacopacomama 070722_670 素人奥様初撮りドキュメント 103 大久保純子 | 91色色色18| 91碰碰碰| 久99久视频| 色婷婷丁香中文在线播放| 婷婷的色色五月天| 免费在线观看av网站| 99热18| a久久免费视频| 这里只有精品视频99| 丰滿爆乳一区二区三区| 久久精彩综合视频| 欧美五月婷婷| 97碰碰人人视频| 亚洲精品va| 天天干天天拍| 日韩无码性爱| 日本色色色| 日本啪啪天堂| 亚洲免费99| 天天高潮夜夜爽| 色丁香五月婷婷| 9热成人在线视频| 久久五月天婷婷视频 | 色香蕉婷婷| 亚洲精品99| 丁香六月情| 人妻熟人中文字幕一区二区| 婷婷五月天日逼| 色一情一乱一乱一区91Av| 丁香五月婷婷影院| 丁香色五月婷婷| 久久久久久久久久久久久9| 99久久99视频只有精品| 91精品久久久久久综合五月天| 婷婷色在线| 超碰免费成人| 婷婷五月色播放| 99五月婷| 99热播放| 五月婷婷激情综合在线| 五月天综合在线| 丁香色六月婷婷| 99色 色| 欧美日韩欧美| 色久五月| 69天堂99| 亚洲无码色色| 九热视频在线伦| 五月天色婷伊人| 91丨九色丨东北熟女| 五月丁香花激情综合网| 五月丁香啪啪网| 色色色婷婷五月天| 亚洲五月天激情| 色色网站免费在线视频| 狠狠精品干练久久久无码中文字幕 | 热热99爱爱| 久久九九色| 亚洲热久| 婷婷丁香六月| 色播五月丁香| 国产精自产拍久久久久久蜜| 五月天激情综合10p| 欧美日韩中文国产一区发布| 亭亭五月天成人| 五月丁香婷婷激情图片| 黄网在线观看免费| 狠狠操之狠狠操| 欧美成人AAA片一区国产精品 | 538在线精品| 六月天六月婷| 久七香蕉| 99热亚洲| 亚洲第一精品网站| 97超碰人人操| 黄色视频网站在线播放| 一级片无码| 五月天色婷婷激情| 一本综合丁香日日狠狠色| 色五月首页| 9久久精品| 五月婷婷 婷婷五月 一区二区 久久久| 日韩黄色电影| 丁香五月六月欧美| 99噜噜噜在线播放| 成人av免费观看| 99热久草| 免费在线观看AV网站| 99爱99操| 婷婷情爱五月天6| 丁香六月婷婷久久综合| 久久黄A片| 九热视频| 99@久久@99精品视频| 成人午夜无码视频| 亚洲AV网站在线观看| 色欲色欲久久宗合网| 五月丁香久久精品在线观看| 97在线刺激| 九月婷婷人人操人人舔人人爱| 久久大香蕉| 综合噜噜| 国产精品天天狠天天看| 蜜臀av无码久久久久久久久| 久操人妻| 久久婷婷久久| 偷拍91九色| 色综合婷婷99| 五月丁香六月婷婷在线播放| AA片在线观看视频在线播放| 亚洲性爱干干| 99热在线播放| 九九视频精品这里只有| 天天操夜夜操| 婷婷激情五月视频| 丁香五月天在线| 中文成人在线| 亚洲国产精品成人va在线观看| 丁香五月成人| 丁香五月激情六月欧亚激情综合导航 | 亚洲无aV在线中文字幕| 六月丁香婷婷综合在线| 日本一级大片| 91大屁股精品| 91丨九色丨白浆| 免费视频无码| 欧美色图天堂网色| 99热久久这里只有精品| 色婷婷av在线观看| 日韩无码色色| 韩国情人在线电视剧免费观看高清版全集 | 天天爱综合网| 久久久99日本大片| 亚洲综合久| 色99色| 激情五月色在线播放| 五月丁久久| 日本婷婷丁香五月| 国产黄色在线观看| 丁香五月婷婷俺也要去| www.1024久久| 久久最新色| 色色色五月婷| 99欧州偷拍视频| 91互操| www.五月丁香| 91狠狠综合久久| 婷婷五月天av| 丁香五月婷婷Av| 97干婷婷| 亭亭丁香aV| 欧美99热| 99久久久国产精品免费蜜乳tv| 五月丁香| 六月色狠狠色| a片在线免费观看一区| 99re思思热久久| 有码一区二区三区| 五月激情小说| AV激情五月| 亚洲久热| 婷婷色5月天在线。| 亚洲综合五月天婷婷丁香| 欧美精品999| 99热综合网| 五月天久久婷婷婷| www亚洲无码| 五月婷婷综合视频| 狠狠第四色| 色噜噜狠狠色综合日日| 色五月天网| 玖玖@三月天天丁香婷婷| 日韩爱操视频| 丁香六月久久| 中文AV网站| 国产26uuu视频| WWW色色色COM| 婷婷五月天激情电影| 亚洲激情网| 亚洲中文字幕在线观看| 狠狠搞狠狠操| 3pAV| 在线91日韩| 久热一本| 99福利视频| 天堂网色色| 99精在线| 丁香色五月婷婷| 中美日韩成人在线| 91九九| SS丁香五月婷婷| 1024欧美日韩精品久久久| 九色PORNY9l原创自拍| 亚洲精久久| 色135综合网| 99视频在线观看网址| 欧美在线干| 人妻第九页| 九九热精品| 婷婷四月 成人 狠狠干| 九月大香蕉| 精品人妻久久久久久| 思思99re这里只有| 亚洲AV网站| 91精品激情9| 色九亚洲| 五月婷婷久草在线视频综合| 五月丁香六月婷婷精品| 丁香五月婷婷影视先锋| 91Chinese在线| 5月婷婷激情在线| 色婷婷手机在线| 日本性视频| 97人妻碰碰中文无码久热丝袜| 思思热热久久| 日本老女人黄页在线播放| 五月婷婷六月激情| 色五月在线播放| 激情狠狠丁香月| www..999热久| 丁香五月很很肏| 大香蕉啪啪啪| 操操碰| 日日想日日夜日日操| 99人人干人人| 偷偷操九九| 97人人草| 中文字幕黄色片| 婷婷久久丁香| 日本激情综合| 5月婷婷六月丁香| 亚韩在线视频| 五月婷婷色啪| 99re免费视频| 婷婷五月综合色小姐小说| 丁香五月天激情| 色婷婷国产精品综合在线观看| 操啊操av| 亚洲在线激情婷婷五月| 婷婷99狠狠| 激情久久丁香| 日本玖玖在线| 黄色片avv| 丁香五月性爱| 亚洲视频操| 色综合色综合色综合| 免費亭亭成人| 丁香亭亭久久| 永久思思热在线| 亚洲性爱电影| 久超超碰| 亚州操操| 五月天伊人综合| 亚洲综合欧美色丁香婷婷888月图片| 日本人妻伦在线中文字幕| 综合色播| 深爱激情六月天| 激情亚洲色图片丁香综合| 六月丁香婷婷五月天| 婷婷情色五月天| 亚洲啪啪精品| 91九色白丝| 欧美丰满熟妇BBB久久久| 99热精品中文字幕| 日韩 中文 欧美| 人人摸人人| 婷婷久久亚洲| 五月天婷婷无码| 五月激情综合婷婷| 五月天自拍视频| 激情的五月| 日韩抽插操逼| 五月天激情中文字幕| 五月天激情网址| 99无码免费视频| bbwcuckold精品熟妇| 久久婷婷成人视频| 综合久色五月| 午夜理论片最新午夜理论剧| site:picc-up.com| 五月婷婷久久内射| 欧美色色色| 新99思思视频| 九九亚洲小视频| 很很干五月天| 婷婷噜噜| 天天操夜夜操| 操人无码| 色色亚洲| 国产真人做爰视频免费| 久久机热/这里只有精品| 思思热精品在线视频| 婷婷狠狠操| 色婷婷基地| 久久er99热精品一区二区| 日本操天堂| 色色五月天 亚洲| 久久精99| 九九re精品视频在线观看| 九九AV在线| 激情五月天在线观看婷婷| 色五月xxx| 婷婷5月开心6月| 婷婷亚洲激情在线观看视频 | 综合久久五月天| 在线视频另类| 五月婷婷少妇之| 五月天色综合服务平台| 五月丁香淫淫婷婷婷| 2025年最新亚洲在线欧美| 五月天激情综合10p| 激情五月天色婷婷| 婷婷 丁香 精品| 五月丁香啪啪啪综合网| 99国产精品白浆在线观看免费| 国内自拍1区| 激情丁香五月AV| 五月伊人网| 五月开心六月婷婷在线播放网站| 丁香婷婷婷五月| 久久婷婷色综合| 婷婷丁香在线| 91丨九色丨东北熟女| 青青草青青草五月天| 日本黄色精品| 夜夜躁狠狠| 色五月丁香五月婷婷五月成人网| 激情综合无码| 热99玖玖99玖玖99九九| www99精品| 日韩五月天婷婷| 久久机热/这里只有精品| 久久久久久激情| 国产又爽又猛又粗的视频A片| 免费99色| 九九热10| 99热亚洲精品| 东京热五月婷婷| 另类在线观看视频| 久久婷婷五月综合激情国产| 人人综合久| 五月婷婷性爱| 天堂爱啪啪| 久久精品在线| 天天天在线观看| 99精品网| 吊色AV男人的天堂| 99精品7| 91九色视频| 九九婷| 综合激情五月天| 丁香六月伊人| 亚洲视频一区| 综合久久9| 99er这里只有精品| 干一干xxxx| 三十熟女| 婷婷午夜| 这里只有免费的精品| 色婷婷亚洲| 午夜微拍福利| 色综合久久天天综合网| www.狠狠艹| 婷婷大香蕉| 婷婷综合一二三| 婷婷五月情色| 开心五月婷婷激情| 国产综合81p| 综合五月天天天天天五月| 激情婷婷五月天| 一本色综合色| 一区二区中文字幕| 婷婷五月花| 色99超碰| 六月丁香成人网| 思思热在线播放| 亚洲Av成人在线观看| 九九九午夜影院成人| 日韩成人精品中文字幕| 一本色道久久88加勒比—| 99re这里有精品手机在线| 婷婷五月天社区| 五月天社区婷婷丁香社区| 午夜九九电影| 婷婷五月花| 九九热AV| 91日日日| 色色网站毛片| 丁香五月宝贝激情网| 五月婷婷之综合激情| 色婷婷五月天成人网| 色吧五月婷婷| 另类国产欧美视频| 丁香六月天堂| www.金莲av| 色狠狠999综合网| 久久婷婷五月综合| 大香蕉Av在线| 狠狠色噜噜狠狠狠狠综合| www.99色在线| 久久婷婷丁香六月天| 在线看的免费网站| 五月天无码视屏播放| 综合网天天| 丁香婷婷久久| 99热最新| 久久久久久久五月婷婷六月丁香综合,开心激情综合网 | 超碰在线观看成人视| 丁香五月婷婷综合网| 51精品国自产在线| 久久草婷婷丁香网站| 天天射影院| 久久国产性爱A V| 色色国产| 亚洲色婷婷99一9|| 国产人妻777人伦精品HD| 日日操夜夜爽天天天| 激情第四色| 六月婷欧美| 79色色| 91seAV| 日本五月天一页| 新激情五月天| 天天撸天天干天天插| 天天日日| 这里只有精品视频在线| 国产av基地| 久久久久久久97| 丁香密臀AV激情网| 色优久久| 欧美综合激情五月丁香| 超碰av在线| 婷婷丁香人妻| 五月婷九月| 日日夜夜天天综合| 大香蕉五月婷婷| 日韩aaa| 热久久99视频| 婷婷福利影院| 五月婷婷狠狠干| 久草嫩草在线观看| 97操操操| 天天婷婷操| 天天肏在线视频| 天天天天天久久久久久| 丁香六月婷| 超碰人人草| 久久五月人人摸| 五月色婷婷综合| 99免费综合网| 激情都市另类| 99综合自拍| 丁香五月天AV在线| 五月婷婷 激情按摩| 九月婷婷综合八月丁香在线观看| 婷婷五月成人社区| 激情床戏| 7777激情基地| 青青草伊人婷婷| 天天爱综合网| 激情四射五月天| 老美AA片| 26.uuu丁香五月婷婷| 亚洲操逼片| 农村熟妇高潮精品A片| 国产色99| 99综合熟女| 激情床戏| 激情丁香网| 99热国产在线| 第四色激情网| 亚洲 五月 婷婷 成人| 9有码中文| 思思热在线观看| 丁香狠狠色婷婷久久无码视频| 久久久中文| 这里只有精品视频一区| 综合久| 色婷网站| 69精品人人人人| 婷婷五月天a| 97狠狠色| 婷婷九九色| 97 A I色色| 婷婷丁香激情综合色情| 亚洲热手机在线观看| 欧美丰满熟妇BBB久久久| 婷婷狠狠干| 九九热自拍| 97夫妻超碰| 狠狠穞A片一區二區三區| 色综合夜夜| 亚州精品成人片| 色色网站在线| 国产另类综合| 色婷婷91激情小说| 亚洲乱码w在线观看| 99在线精品免费视频| 九九久久99精品免费观看www| 人妻尝试久久久久久久久久久久| 日本三级大片| 免費观看aV在线网址| 婷婷五月天激情小说| 婷婷 月 丁香| 五月丁香婷色| 一本狠婷婷综合| 嫩草AV久久伊人妇女超级A| 99热这里只要精品免费| 日本www五月婷婷| 亚洲春色奇米影视| 久久综合激情| 婷婷99热| 欧美婷婷成人| 夜夜爽天天日| 亚洲五月天综合| 亚洲操逼网| 99九九在线视频| 99热成人| av大香蕉| 日本色图综合| A久久| 大陆肏屄视频| 五月天成人手机在线视频| 99热这里只有99| 婷婷丁香六月天激情四射网| 激情文学综合婷婷五月天丁香花| 色999五月色| 欧美乱码国产一级A片| 热热久久99| 国产精品蜜臀99| 日日色五月天| 精品国产人人爱人人| 激情爱爱网站| 9999热在线免费观看| 国产欧美大香蕉一区| 成人无码髙潮喷水A片| 亚洲色视频| 九九热精品6| 日韩小视频在线99| 激情五月天啪啪视频| 99热精品在线播放| 天天色图| 婷婷综合色色| 久久九色| 激情五月天啪啪| 色婷婷性爱| 国产精产国品一二三在观看| 免费看欧美成人A片无码| 99福利导航| 国产激情av| AV色婷婷| 色色色婷婷五月天| 亚洲欧美成人在线| 99热国产这里只有精品| 婷婷淫淫狠狠六月| 五月香婷婷| 久久99精品久久久久久噜噜| 丁香五月在线自慰| 九月婷婷久久久| 色色婷婷五月| 色色激情五月天| 欧美交换配乱吟粗大25P| 性做久久久久久久免费看| 99这里有精品视频| 日韩人妻无码专区| 国产毛片欧美毛片久久久| 亚洲乱码日产精品BD| 国产SUV精品一区二区883| 激情内射人妻1区2区3区| 婷婷五月激情欧美大胆视频| 99久久婷婷综合| 国产精产国品一二三在观看| 99干日日干| 久99在线| Caoub青青超碰| 九九人人看| www.久久久.com| 日韩啪| 99狠狠色| ss五月天激情| 日本成人小说婷婷六月| 99精品在线观看视频| 欧美这里只有精品| 日韩一级片| 欧美一级色| 天天操夜夜操| 狠狠久久婷五月综合色| 色婷婷久久视屏| 激情综合色网| hd五月婷婷在线| 婷婷六月插屄激情| 婷婷五点亚洲| 99视频这里只有精品10| 日日噜噜夜夜狠狠久久丁香六月| 婷婷丁香成人| 男人的天堂99| 五月丁香综合激情| 五月丁香六月合| 亚洲另类日本| 第四色五月天| 九九综合色| 美女视频图片久久91| 五月丁香久人妻中文| 九九热这里都是精品6| 九九这里只有精品| 99视频在线观看视频| 涩涩五| 五月婷婷在线视频| 人人操AV| 99熟女| 6 9式性爱视频在线播放| 五月激情婷婷综合| 婷婷五月天,影院| 网站免费一站二站| 天天射影院| 综合久久久婷| 五月婷婷干干干| 激情婷婷狠狠干| 激情丁香五月| 91超碰人人操| www.91AV.com| 538在线| 99热亚洲精品| 激情综合色| www.久久久久久久久久久| 天天狠天天狠| 五月婷婷中文字幕| 日韩成人av在线| 婷婷色网址| AV伊人青草丁香六月| 丁香五月婷婷在线观看| 五月丁香婷婷综合| 超碰色女人| www.粉嫩av.com| 婷婷射丁香| 五月天婷婷激情| 久久久久久久久久91| 开心五月天私房婷婷| 五月色婷婷综合| 亚洲综合激情五月久久| 成人啪啪色婷婷久| 另类激情五月| 五月丁香婷婷欧美| 91精产一区三区免费观看| 婷婷区日本| 欧美日韩91| 五月香蕉网| 日韩六十路91性交电影| 97婷婷色| 思思久热| 激情六月婷婷| 日韩无码专区| 综合五月天完整| 四LLL少妇BBBB槡BBBB| 色色综合热| 亚洲五月天综合| 丁香六月婷婷综合| 久草婷婷网| 色五月综合婷婷久久综合婷婷久久综合婷婷久久综合婷婷久久 | 韩国不卡AC视频| 丁香激惜男女| 99色婷婷视频| 日韩在线99| 五月开心激情| 日本婷婷激情四射中文字幕在线观看| 激情丁香五月婷| 97碰在线视频| 五月丁香大相交| 人人摸人人摸| 婷婷日韩| 色日本丁香婷婷| 国产成人综合在线| 五月色情婷婷| 人人色性网| 99在线观看| 婷婷五月开心六月AV| 热久久思思热思思| 天天色宗合| 五月婷婷色影院| 五月丁香六月婷婷综合| 99久久国产宗和精品1上映| 五月六月丁香激情视频| 色色色色综合网| 色婷婷69| 国产精品美女| 情一色一乱一伦一91A| 99视频在线精品免费观看2| 日韩欧美成人一区二区三区| 欧美亚洲999| 天天摸天天肏| 午夜日日| 五月天激情小说| 9超碰在线| 国产欧洲欧洲精品久久| 激情婷婷网| 夜夜撸夜夜骑| 成人国产欧美大片一区| 亚洲精品网站色视频| 伊人五月综合网| 丁香五月天婷婷91| 日日操夜夜撸| 色情婷婷。| 丁香久久综合| 在线视频另类| 99爱视频| 色情五月婷婷| 婷婷六月丁香开心深深爱| 久久综合五月| 天天做天天爱天天日| 99热66| 日日干综合| 嫩草AV久久伊人妇女超级A| 午夜性爱影视一区77| 热思思九九| 丁香五月激情图片| 9色免费网| 五月天色五月| 欧美影院婷婷| 婷婷六月天| 丁香婷婷人妻综合网| 日本V在线观看不卡视频网站| 婷婷五月丁香久久| 人人97操| 丁香六月综合激情| 久久作爱| 综合五月婷婷| 久久99色色| av超碰在线| 99丁香五月婷| 综合狠狠伊人| 爱99干99| 很很干天天干| 日本99色| 九九性视频| 99热久久这里只有精品| 综合六月久久| 五月丁香五月综合欧美| 综合色五月| 色婷婷五月综合| 久久这里只有国产视频| 91精产一区三区免费观看| 99久视频| 亚洲 小说 欧美 激情 另类| 色婷婷啪啪| 激情五月天啪啪| 五月天婷婷黄色视频| 国产亚洲成AV人片在线观黄桃| 日本成人小说婷婷六月| 99精品女人天堂| 狠狠色丁香| 狠狠干青青草| 婷婷五月天网址| 日韩无码专区| 欧美精品999| 丁香五月大香蕉| 婷婷色5月天在线。| 亚洲视频操| 9久热在线视频| 五月丁香亭亭电影久久| 97狠狠色| 欧美激情五月天| 婷婷天堂综合网| 五月天婷婷在线观看| 婷婷五月丁香色情| 丁香密臀AV激情网| 高清一区二区三区日本久| 婷婷五月亚洲一本在线丁香| 五月六月婷婷激情网| 色九月综合| 亚洲天堂久久| 五月天激情无码专区| 碰碰91| 亚洲图片 丁香婷婷| 久久xx| 婷婷五月情天| 丁香六月婷婷综合激情欧美 | 色私五月婷婷| 蒲京久久无码视频| 婷婷色综合| 亚洲人成人五月天| 热九九精品| 丁香五月婷婷综合激情啪啪啪啪啪啪啪| 思思99热| 欧美激情综合色综合啪啪五月| 天天粽合合合合| 色哟哟精品| 欧美色综合天天久久综合精品| 一区二区免费看| 九九热这里只有精品一| 99久久久免费| 99久久婷婷五月| 欧美色婷婷| 人人综合久| 999影院成人在线影院| 丁香亭亭久久| 久久婷婷综合网| 色都都狠狠色都都色综合色| 年轻的妺妺伦理HD中文 | 色五月天电影| 五月WWW| 激情综合婷婷五月| 人人干99| 日本三级片片| 99在线看视频| 激情综合五月婷婷| 亚洲综合99| 婷婷社区五月天| 九九婷婷五月天影视| 26UUU| 99热新网址| 91九色无码内射| 色婷婷伊人激情在线观看| 天天日日夜夜| 成人丁香五月| 欧美三级欧美一级| 亚洲综合激情五月久久| 丁香五月天欧美| 成人五月天婷婷| 亚洲一级色电影| 久久嘟嘟丁香| 五月丁香婷婷激情爱爱| 99热综合在线观看| 狠狠CAO日日穞夜夜穞AV | 操日视频| 99热这里只有精品在线| www.色色色色| 99综合色| 天天天天天久久久久久| 亚洲热综合网在线观看| 五月天婷基地| 六月丁香综合| 97碰超级人人看| 九九色大香蕉| 九九热在线99| 99日本视频| 天堂爱啪啪| 97人妻碰碰碰久久久久-最近国语高清| 丁香五月停停av| 丰滿爆乳一区二区三区| 亚洲AV成人无码精品| 激情婷婷丁香| 97色干在线观看| 狠狠精品干练久久久无码中文字幕| 高清无码网址| 人人爱操| 五月婷婷激情| 国产精品久久欧美久久一区| 99性爱视频| 97夫妻超碰| 综合色五月亭亭| 丁香狠狠干| 久久九网| 国产亚洲色婷婷久久99精品9j| 婷婷日本色| 97成人超碰免| 天堂中文国产| 99精品久久久久久久婷婷| 色愛综合网| 蜜臀A∨在线水帘洞| 亚洲天堂AAA| 我要射综合| 五月伊人婷婷| 五月网在线| 欧美va在线观看| 日本激情91| 另类图片天天影视在线观看| 久久色五月| 日日综合网| 日本欧美成人片AAAA| 日韩少妇内射免费播放| 国产暴力强伦轩1区二区小说| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 五月综合激情图片| 五月天婷婷色播在线网| 激情深爱五月| 九九在线视频| 另类专区在线观看| 色婷婷导航| 色婷婷在线电影| 一区=区操屄高清大全av| 色婷成人狠干| 五月丁香综合激情网| 色婷婷五月影院| 五月婷婷大香蕉| 六月婷婷无码观看| 99热这里只有精品最新| 久青草影院| 丁香五月欧美| 久久se 综合网| 色情五月天导航| 九九亚洲综合| 五月婷久久| Www.激情| 久久9精品| 久久综合婷婷| 亚洲欧洲一二| 久久婷婷亚洲| 五月天色婷婷视频| 日本色视| 色色热| 欧美A A A A A| 操逼视频一区| 精品成人久久久久久久_一二三四视| 狠狠草婷婷| 精品久久人妻| 人人操五月天| 日本nghangse中文字幕| 伊人久久大香线蕉av最新| 亚洲视频在线观看99| 这里只有精品免费视频| 亚洲1区| 乱精品一区字幕二区| 狠狠爱夜夜| 色婷婷成人在线| www.天天日| 99精品无码| 久久婷婷五月丁香蜜桃网| 色噜噜狠狠色综合网| 天堂五月婷婷| 蜜臀99精品| 婷婷久草| 激情婷婷网| www.夜夜操.con| 亚洲视频99| 国产精产国品一二三在观看 | 九九精品视频在线6| 草草操操| www.玖玖九| 婷婷丁香五月天婷婷| 婷婷五月成人系列| 天天操天天操天天操天天操天天操| 丁香五月婷婷社区| 天天久久66xxx| 色婷婷狠狠干芒果TV| 可以看的AV| 99热欲| 成人婷婷五月天| 九九精品亚洲| 日韩黄色影院| 婷婷综合另类| 午夜精品777| 久热一本| 91主播在线| 亚洲五月天综合| 97丁香五月| 五婷婷综合网| 五月份婷婷| 大天天伊人| 狠狠插.com| 男人天堂伊人五月丁香| 五月丁香网站| 国产操B| www.夜夜操.con| 五月激情网站| 丁香婷婷激情四射五月| 婷婷天天舔| 九九操操| 日韩AV中文字幕在线| 五月丁香六月色婷| 182TV大香蕉| 丁香色色五月| 五月丁香va| 亚洲色五月婷婷| 在线成人视频免费| 97婷婷五月| 丁香婷婷性爱| 久久久久激情网| 激情色视频| 中文毛片无遮挡高潮免费| 一级片sese片.COM| 超碰99资源站| 五月婷婷丁香综合,亚洲天堂| 开心婷婷五月天综合| 成人婷99最新| 婷婷色五月天色| 色五月首页| 黄色网址五月婷婷| 婷婷五月丁香在线观看| 99性色| 99九九在线视频| 狠狠干综合网| 久久久久久久久18久久| 五月丁香激情综合网| 五月丁香操婷逼| 2015WWW永久免费观看播放| 99热日韩| 狠狠色婷| 丁香五月天BBw| 强壮公让我夜夜高潮A片视频| 成人深爱丁香五月| 丁香五月天堂网| 97久人人| 中文字幕婷婷五月天在线观看| 91se视频| www.五月天婷婷姐姐| 中文字幕人妻熟女在线| 99色最新在线视频| 激情婷婷丁香| 九九色中文| 开心深爱激情网| 综合激情五月丁香| 五月天激情图片| 91欧美日韩综合| 色色色婷婷五月天| 91久久精品无码一区二区三区| 亚洲色情网站| 91丨人妻丨国产丨丝袜| 天天做好综合色| 婷婷94s| 天天操人人干| 亚洲精品网址| 婷婷五月天AV| 久久99综合网| 99自拍视频网站| 97色片| 婷婷五月天基地| www.av视频xx999.com| 五月婷婷激情综合| 日日干夜夜撸夜夜骑| 欧美69久成人做爰视频| 森林影视大全,最好看的2019年视频 | 超碰在线人人| 97色婷婷| 色色五月天激情| www.99热视频在线观看| 六月激情婷婷| 五月丁香六月婷婷中合网| 大地资源色婷婷视频在线| 538久久| ..真实国产乱子伦毛片| 九九热这里只有精品31| 开心激情综合| 男人的天堂五月丁香| 在线天堂9| 男女99免费视频| 开心五月六月婷婷| 丰满人妻妇伦又伦精品国产 | 丁香婷婷中文字幕| 夜夜嗨一区二区三区直播内容 | 五月丁香精品| 色性综合| 被强行糟蹋的女人A片| 丁香花五月天| 丁香五月色情av| 网站免费一站二站| 色婷婷av在线| 欧美成人AAA片一区国产精品| 另类激情五月| 久久久久97| 99日本在线| 深爱激情网五月| 2025超碰| 五月丁香六月婷| 99热18| 思思久久99热只有频精品66| 丁香五月婷婷色偷偷| 操逼三区| 五月婷婷综合网| 操逼棍操逼| 午夜婷婷久久| 日本va欧美va国产激情| 五月丁香婷婷中文网| 久久婷婷的综合色丁香五月| 国产熟女一区二区三区五月婷| 国产精品99久久久久久久女警| 337午夜福利| 久久综合中文字幕| 四LLL少妇BBBB槡BBBB| 深情五月天| 操B五月天| 婷婷五月丁香基| 久久久27操| 天天干夜夜操A片| www色哟哟| 超碰在线成人| 天天日人人爽| 久久色天堂| 国产69久久久欧美黑人A片| 色大综合| 超碰人人超碰| 欧美精品在线观看| 五月丁香六月色| 天天 青草 制服丝袜 在线| 影音先锋男人av资源站| 国产67194| 色丁香五月综合网| 亚洲无码成人| 九色亚洲| 超碰在线成人| 欧美婷婷色五月| 26uuu欧美日韩| 99综合99| 日本九九九九| 99热这里只有精品99| 再次出发二| 啪啪黄页网| 中文字幕乱码亚洲精品一区| 九九这里都是精品| 99高级会所久久| 色婷婷激情五月天| 五月天丁香婷婷网| 日韩成人中文字幕| 日本不卡五月婷婷丁香| 日日噜人人人做人| 丁香熟女乱| 亚洲精品久久久久AV无码| 激情六月丁香| 五月丁香激情六月| 久久这里这里有精品免费视频| 丁香五月婷综合| 日本天天操| 超碰在线观看99| 婷婷丁香人妻天天久久| 黄网在线免费观看| 久久天堂加勒比| 五月丁久久| 五月婷婷综合视频| 丁香五月婷婷基地| 五月婷婷六月丁香综合视频在线| www.五月天色色.com| 男女激情久久| 荡乳尤物3HP1V5| 日本综合色色| 可以直接看的AV| 夜夜夜夜做天天天做无码视频| 99操久久| 中文av在线观看| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 草AV9999| 色久在| 久久99网站| 亚洲AV网址|