免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

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
返回資訊列表
婷婷九月激情| 婷婷五月综合国产精品| 人人摸人人摸| 久草免费福利视频| 丁香五月成人婷婷| 综合久| 婷婷五月电影| 天天色天天噜| 五月激情婷婷综合| 精品一二三区久久AAA片| 久久婷婷六月天| 大学生高潮无套内谢视频| 亚洲在线激情婷婷五月| 五月婷婷丁香| 亚洲视频二区| 五月天婷a在线| 殴美日韩成人| 免费试看小视频 99| 中文字幕乱码亚洲精品一区| 99.N在线视频| 五月婷婷激情综合| 99色精品| 伊人AV五月婷| yazhou seshipin| 丁香五月最新网址| 久久精品一区二区三区四区| 六月婷婷激情图片| 亚洲色综合性| 丁香六月婷婷综合激情欧美| 任你搞网站| 夜夜爱网站| 婷婷 激情 五月| 无码AV大香线蕉伊人| 婷婷激情五月综合| caopeng97日韩| 欧美成综合在线观看| 色五月天丁香| 欧美激情综合色综合啪啪五月| 51成人| 懂色av蜜臀av粉嫩av永陈冠希| 五月激情六月宗合| 激情图片久久| 亚州色色色| 久久这里只有欧美| 五月丁香婷婷五月色| 五月丁香六月色婷| 久婷婷| 婷婷五月天综合亚洲| 夜夜资源站| 婷婷五月激情欧美大胆视频| 亚洲激情网站| 色色五月天婷婷丁香| 五月天久久婷婷| 婷婷五月天伊人在线| 丁香婷婷激情四射五月| 久久五月综合| 色情综合| 婷婷五月花| 激情五月天婷婷| 激情五月天网| 免看黄大片AA | 亚洲精品久久久久AV无码| 婷婷五月天视频免费在线观看| 一起草性爱不卡视频| 另类五月激情| 啪啪六月婷婷| 五月丁香六月香香蕉| 久操人妻| 五月婷婷六月天| 色五月色图| 五月停亭六月,六月停亭的英语| 色婷婷电影网| 丁香婷婷六月| 99精品在线| 欧美搡BBBBB摔BBBBB| 丁香五月婷婷图片综合| 久久电影4399| 大香蕉院线| 九九国产精视频| 激情婷婷丁香五月天| 色综啪啪啪啪啪啪| 五月天婷婷日日爱| 99热国产这里只有精品| 色婷婷电影网| 久久六月综合| 六月撸婷婷| 性爱网六月丁香| 婷婷五月天综合久久日美女| 婷婷六月丁香激情| 情久久综合五月天| 色婷婷狠狠18禁| 91色逼| 99视频内射三四| AV大片在线播放| 伊人网色婷婷五月天| 日都一级A片| 亚洲免费看片| 丁香婷婷色五月合集| site:ornaments52.com| 大香蕉啪啪网| 停停综合色色| caobi四区| 激情五月天综合图片小说网站| 777精品成人a v久久| 天天噜噜| 亚洲黄网在线| 操人91| 嫩草AV久久伊人妇女超级a| 夜色综合网| 色色丁香| 亚洲五月天综合色| 9色在线| 99久久欧美| 五月天婷婷黄色视频| 深爱激情五月天色婷婷| 久99久99精品免| 性爱久久| 97色色色色色色色| 天天干天天日天天操| 五月婷婷亚洲综合在线 | 激情五月天在线观看色婷婷| 97人人做| 亚洲六月综合激情久久下卡| 亚洲人妻av伦理| 成人在线视频网| 伊人综合婷婷| 思思久久精品| 综合五月丁香97| 天天干天天日日| 丁香久久综合| 婷婷五月香蕉| 999热在线视频| 日本在线观看91| 涩九九九九| 6月丁香婷婷| 精品久久这里热66| 成人午夜天| 丁香五月天婷婷91| 婷婷六月综合激情| 五月丁香婷婷成人版| 精品夜夜澡人妻无码AV| 色九九综合| 99精品爱| 亚洲超碰在线| 天天综合情| 91婷婷在线| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 天干干夜夜操| 激情综合网激情五月丁香五月俺也去| 99热1| 日日操夜夜爽| 婷婷六月久久| 91热视频色网站| 婷婷综合另类| 美英法精品无码免费视频| 综合网啪| 五月激情丁香五月| 五月桃花网综合| 天天操夜夜夜拍拍拍| 99久久五月婷婷| 亚洲成人av在线观看| 五月天婷婷在线啪啪视频| 欧美99| 好吊丝aV| 一区二区三区视频| 轮奸综合网| 99精品久久久久久久婷婷| 91精品丝袜久久久久久久久粉嫩| 狠狠999| 五月丁香婷婷AV天堂| 久久久97| 综合狠狠干| 狠狠爱深色婷婷综合| 五月婷婷婷综合网| 久久婷婷婷| 99操逼| 婷婷五月天视频| 蜜桃婷婷五月| 九月婷婷综合在线| 狠狠操狠狠操| 亚洲色情激情丁香五月| 亚洲爱婷婷| 欧美狠狠色| 久久久大香蕉| 少妇高潮呻吟A片免费看软件| 五月婷婷六月激情网| 国产亚洲AV人片在线| 激情综合五月婷婷六月丁香| 久久女婷| 五月丁香天堂| 天天日天天色| 亚卅毛片| AAA久久| 色区久久| www.精品99| 黑人熟妇一区二区三区| 99自拍视频| 色偷偷狠狠| 丁香久月| 久久久aaa| 97韩国久久电影院| 激情综合五月婷| 中文成人在线| 翔田千里 50岁 无码| 99热综合| 五月丁香性| 无码四色色色| 婷婷久久性爱| 97在线天堂| 日日操夜夜撸| 欧美久久婷婷| 婷婷五月丁香狠狠| 激情五月天久久丁香| 婷久久高清| 婷婷午夜精品久久久| 噜噜噜噜在线| 无码G高清天| 五月丁香六月婷婷的女人| 激情小说五月天| 天天日天天爽夜夜爽| 久久综合激情五月天| 色原狠狠综合| 婷婷丁香五月天操逼| 狠狠综合网| 激情綜合網址| 99在线热视频| 丁香五月天色婷婷| 五月天综合在线观看| 噜噜色五月| 视频一二区| 色香蕉婷婷| 色丁香五月婷婷| 色色色国产| 国产成人亚洲综合A∨婷婷| www一起操在线观看| 成人无码髙潮喷水A片| 夜夜撸夜夜骑| 亚洲欧美成人在线| 日本女人久久| 五月激情婷婷综合| 亚洲第一黄网| 欧美婷婷五月丁香| 久久综合五月| 丁香啪啪| 中文字幕日产A片在线看| 激情五月天婷婷五月天| 俺去也婷婷| 在线成人网站| 激情五月综合| 五月丁香婷婷色色| 色综合网上班开心婷婷久久| 五月天婷婷激情网| 久综合| 婷婷五月丁香国产| 九九九AAA热视频| 久久精品国产AV一区二区三区 | 中文成人在线| 极品五月天| 五月做爱| 久久人人超| 欧洲亚洲午夜| 国产色丁香| av在线超清中文| 亚洲性视频| 99人人操人人操人人精| 九九色中文| 99亚洲精美视频在线观看| 91黄色五月天视频| 日本三级毛片| 91人人操人人| 激情久久五月天| 色色五月婷婷久久| 亚洲激情丁香五月天色| 婷婷五月天另类网站| 五月婷婷基地| 九九久久精品| 人妻第九页| 色约约视频一区二区三区四区五区| 嫩草视频。| 五月天色欧美| 亭亭五月丁香综合欧美| 丁香色五月婷婷91桃色| 99热这里只有精品50| 五月天综合影院| 99视频在线精品| 婷婷五月天黄色| 日本三级大片| 久久这里只有国产精品视频| 成人短视频在线免费观看| 91天天操天天干天天射| 久久精彩视频18| 97干在线看| 婷婷天堂综合| 香蕉AV777XXX色综合一区| 毛片新网地| 五月丁香成人网| 国产干逼片| 一起草aV| 婷婷一本和五月丁香| 六月色播| 嫩草AV久久伊人妇女超级A| 99久久偷拍视频| 亚洲成人综合在线| 婷婷丁香激情综合色情| 色玖玖综合| 色婷网| 色爱爱综合网| 天天拍夜夜撸 | 五月天另类激情在线| 免费观看的av| 操逼视频一区| 国产资源91在线| 碰碰女| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 丁香五月天av| 久久久噜噜噜久久人妻| 激情五月色综合网| 五月丁香中文字幕| 欧美婷婷色| 五月婷婷色综图片| www.久操| 九九热视频网站| 婷婷成人在线| 99热亚洲精品| 日本99在线视频| 五月草影视| 岛国av网站| 久热免费视频| 激情综合五月激情XXXX| 五月天色区| 4438国产免费看| 天天干天天操天天爱| 激情五月天丁香| 八戒青柠影视剧在线观看| 91xxxx九色| 青青福利网| 91欧美| 伊人五月天久久| 天天色天天舔天天爱天天爽| 亚洲色无码A片一区二区麻豆| 久久99激情| 日日操天天爽| 婷婷日韩| 丁香五月天论坛| 婷婷五月天综合亚洲| Se.婷婷五月天| 久9久9热久热| 激情性爱五月天| 五月天淫乱视频| 新男人天堂人妻| 99亚洲色| 国产女生爱爱AA| 天天碰天天插天天操| 婷婷五月婷婷| 97人人超| 日韩色色色99| 99精品在线| 99热大全在线观看| 第九色区av天堂| 丁香婷婷六月激情文学| 五月丁香狠狠爱| 五月天激情综合在线| 久久99久久99精品免视看婷| 超碰久热| 中文字幕在线日亚洲9| 久九色| 五月综合久久| 五月综合婷婷网| 亚洲日韩乱码一区二区三区四区 | 男人的天堂av俄罗斯热| 色五月婷婷五月天激情综合| 久久久久久久久久久97| 欧美激情综合| 久久这里只有精品16| 国产婷婷婷| 99精品7| 99久久人人| 色五月婷婷丁香五月| 影音先锋91男人资源在线播放| 91成人性爱视频| 最新无毒无码AV| 五月丁香婷婷激情澎湃四射| 色色五月天丁香婷婷| 人人操插| 婷婷五月天在线观看av| 婷婷成人在线| 99热婷婷| 99热这里只有精品国产精品| 久热一本| 人人摸人人操人人爱| 丁香五月婷婷俺也要去| 婷婷激情五月综合| 婷婷视频在线| 国产成人高清| 色婷婷五月婷婷五月婷婷五月| 99久久婷婷国产综合亚洲| 丁香五月婷综合| 婷婷九月综合| 久久99色色| 国产性爱色| caop在线视频| 亚洲va欧洲va国产va不卡| 超碰无码318604| 丁香婷婷影院| 亚洲视频色婷婷| 丁香婷婷色五月| 日B日潘金莲BB| 另类精品视频在线观看| 婷婷五月天视频在线观看| 色婷在线视频| 成人国产网站在线免费看| 丁香五月天成人网站| 色婷婷丁香五月天| 五月婷婷色啪| 182tv992tv人之初午夜免费观看| 天天天天天日| 99热只有| 夜夜爽天操| 国产韩日亚洲美州欧亚综合在线| 久热婷婷在线视频| 中文字幕中文有码在线| 天天日天天爽| 日本久久高清| 99爱精品| VfJxEwPH| 天天干天天干天天干天天干天天干天天干天天 | 99热这里只有精品国产首页| 无码一区二区日韩| 久久久久网站| 欧美日韩中国| 曰本久久女| 99爱在线视频| 色色网站| 91操在线视频| 14色综合婷婷| www激情网站| 亚洲综合在线视频| 婷婷性爱| 欧洲亚洲免费视频9| 五月婷AV| 丁香五月婷婷激情视频播放| 六月丁婷婷| 99热亚洲| 激情婷婷五月| ww久久| 伊人三级激情| 亚洲精品网址| 99久久.www| WWW色五月| 最近中文字幕大全免费版在线| 成人婷99最新| 久久五月网| www.天天干| 五月好婷婷| 亚洲精品五月| 亚洲综合色棒| 五月丁香五月婷婷在线观看| 人人摸人人摸| 色99色| www婷婷| 色色cOm| 天天色天天色天天色天天色天天色| eeuus五月婷| 亭亭五月丁香综合欧美| 77799热| 六月婷婷五月丁香首页| 国产va在线视频| 成人婷婷五月天| 99色看这里只有精品| 思思热思在线精品视频| 九九在线免费观看| 99热这里全是精品| 六月婷婷啪啪| 五月天com| 国产67194| 久久在线视频免费观看| 五月天久久婷| 婷婷久久在线| 在线另类| 五月丁香啪啪激情| 久久视频这里99| 天天草天天摸| 色情婷婷五月天| 狠狠色丁香| 色五月丁香com| www久久久久久久久久久久久久久久久| 久爱综合| 久久伦乱| 日日天天天| 美女主播野战视步页| 激情色情五月天| 五月婷婷影| 日本在线视频www色| 婷婷综合激情| 91性人人| 99热精在线九九久久保| www,99热| 日日干日日| 97碰91| 综合AV在线| 综合逼五月激情婷婷| 亚洲精品一二三| 日日操夜夜操中国无码| 久久久人妻人伦| 99热日本| 另类专区在线| 五月天丁香婷婷久久九| 色婷婷亚洲婷婷| 久久人妻情侣| 狠狠操综合| 大香蕉色婷婷伊人在线| 97综合在线| 五月丁香六月婷婷综合伊人| 婷婷综合激情| 91窝窝| 在线va网站| 天天摸天天舔| 婷婷丁香色五月天| 久久欧洲久久| 久久人人九| 精品人妻伦九区久久AAA片| 中文字幕人妻AV| 婷婷久久欧美| 久热黄色| 日本99婷婷| 亚洲精品操一操、噜一噜、摸一摸、爽 | 成人综合视频在线| 91干99| 深爱丁香网| 丁香五月六月婷婷综合| 五月丁香 狠狠爱| 99这里只有精品视频免费| 欧美成人色婷婷| 亚洲成av人影院| 996热re视频精品视频| 日日夜夜小色哥| 亚洲激情在线| 九九国产视频| 九九99九九99| 婷婷网影院| 亚洲激情免费视频| 少妇人妻偷人精品无码视频新浪| 丁香五月激情宗合网| 激情小说婷婷| www.狠狠艹| 亚洲欧美婷婷五月色综合| 影音先锋男人资源站一区二区 | 色五月激情| 极品人妻VIDEOSSS人妻| 熟女激情网| 色综合久久天天综合网| 久久九九中文字幕| 久re热视频| 一级七香蕉| 婷激情五月| 欧美性色A片免费免费观看的| 婷婷五月色情天| 五月天成人在线播放| 狠狠干狠狠操狠狠爱| 天天天摸夜夜夜玩| chaopeng在线人人| 丁香成人色情五月天| 免费在线观看欧美激情xx小视频| 视色综合| 精品久9| 五月婷婷免费| 久久加勤综合| 国产三级秋霞| 激情 婷婷| 人人播| 中文字幕av亚洲| 大香蕉75线| 色婷婷婷婷五月天| 色情婷| 99热官网| 无码人妻电影| 丁香六月婷| 国产精品色色666| 国产乱子轮XXX农村| 99高级会所久久| 国产精品久久久爽爽爽麻豆色哟哟| 五月丁香婷婷AV天堂| 日本欧美成人片AAAA| 五月丁香综合久久| 五月婷久久综合| 激情五月色婷婷| 人人操AV| JAPANRCEP老熟妇乱子伦视频 | 91婷婷| 婷婷综合五月激情| 超碰A V在线| 色欲午夜无码久久久久久张津瑜| 大香蕉啪啪啪| 丁香五月婷婷色综合| 亚洲欧美国产高清vA在线播放| 五月丁香综合网| 五月天婷婷免费视频| 久9视频| 白人荫道BBWBBB大荫道| 婷婷五月在线播放| 久久久久这里都是精品| 久777| www.夜夜操.com| 色婷婷久久综合| 欧美人与性动交CCOO| 四月婷婷丁香| 丁香婷婷六月激情文学| 91丁香婷婷综合久久欧美| 久热一本| www.狠狠干com| 婷婷五月色影视先锋| 91精品久久久久久综合五月天| 色噜综| 成人av播放| 新激情婷婷| 人人97碰| 亚洲欧州色情在线观看| 狠狠做五月| 亚洲第二AV| 色吧综合网| 色停停五月,在线观看| 五月婷婷 欧美| www.com在线操视频免费观看| 二色AV| 丁香涩涩五月天| 97资源欧美日韩大香蕉超碰一区| 91色五月在线观看| 丁香五月激情婷婷| 色五月激情| 99热这里只有精品 搜| 色色婷婷丁香| 色播五月丁香综合| 精品婷婷五| 超碰9在| 极品人妻VIDEOSSS人妻| 五月激情啪啪啪| 激情亚洲网| 成人色五月天| 激情五月天丁香| 吾爱AV导航| 久热在线中文字幕色999舞| 国产精品视频| 亚洲激情五月| 丁香五月综合在线观看| 久久伊人日日夜夜| 色五月成人婷婷| 9操在线| 色99视| 丁香六月婷婷激情| AV网在线| 年轻的妺妺伦理HD中文| 丁香五月性爱| 久久99网| 久热这里只有| 深爱开心激情| 狠狠综合久久| 五月天大香蕉| 无码动漫av| 99无码黄色视频| www.狠狠干com| 97深爱伊人综合| 色五月成人婷婷| 26UUU| 五月天丁香六月综合| 999婷婷综合| 久久免费丁香| 五月丁香婷婷成人版| 伊人五月天久久| 国产91在线视频| 超级碰碰99| 亚洲欧美日韩另类| 色五月综合97| 五月天另类图片区99| 精品一区二区三区三区| 亚洲精品成人片在线播| 伊人五月天97| 99精品热视频| 99这里只有精品视频免费| 99热最新精品| 婷婷瑟五月天久久综合| 五月综合亚洲| 久久久精品人妻录| 五月丁香六月成人| 欧美色九| 大香蕉婷婷丁香天堂AV| 91性高潮久久久久久久久| 欧美日韩成人在线| 婷婷五月天xxx| 色色色.com| 久久久久思思热| 操一操干一干| 99色在线观看| 久久性爱视频| 丁香五月天日韩无码| 久久的爱大香蕉| 婷婷五月电影| www色婷婷久久综合久色| 99热这里只有精品33| 综合五月丁香六月婷婷| 久热黄色| 亚洲12p| 九九超碰人人| 五月丁香六月综合情在线观看| 六月激情婷婷综合| 丁香六月婷婷综合缴| 99ri视频| 91九色PORNY肉丝在线| 久久婷婷亚洲无码一起| 色婷婷五月天中文字幕| 丁香五月婷婷综合网| pacopacomama 070722_670 素人奥様初撮りドキュメント 103 大久保純子 | 色狠狠色| 婷婷五月天首页| 蜜臀av粉嫩av懂色av| 五月激情小说| 天天网曰日曰夜夜综合永久免费| 丁香五月婷婷激情小说| 婷婷五月图片小说网| 久草性爱| 欧美性爱丁香五月| 91丨九色丨43老版熟女| 夜夜爽天天日| 99热这里只有精品1| 9热超碰| 六月激情婷婷| 五月丁香六月婷婷亚洲综合| 开心深爱激情网| 婷五月天| 六月婷五月丁香| 热99精品视频五月| 高清a片基地| 亚洲婷婷五月天在线激情综合网| 99免费热视频在线| 激情五月婷婷| 色婷婷综合网站| 婷婷五月天成人小说| 99久久99久久综合| 97人人操| 亚洲va欧美va天堂v国产综合| 九九热精品| 色99在线视频| 天天操夜夜操| 五月丁香另类图片| 五月婷婷丁香婷婷| 97久久综合网| 五月丁香婷婷AV天堂| √天堂资源在线人妻熟女| 天天日P天天射P| 六月色色综合| 色激情五月天| 中文字幕在线日亚州9| www.婷婷五月天| 天天日日| 久久婷婷五月综合色播| 久久婷婷五月天| 亚洲啪啪视频| 玖玖午夜视频| 丁香五月黄色| 五月婷亚洲精品| 黄色av高清| 婷婷性爱无码视频| 无码少妇高潮喷水A片免费| 色色操| 97干网站| 影视av久久久噜噜噜噜噜三级| 丁香婷婷深情五月亚洲| 97干在线免费| 久久精品只有这| 婷婷综合久久综合| 五月天色视频| Av中文在线| 五月天色婷婷伊人网| 欧美婷婷色| 五月丁香 啪啪啪| 色天堂婷婷| 九热电影av| 六月婷婷五月天| 五月婷中文娱乐综合| 天天日天天干天天天| 亚洲操女| 丁香色五月婷婷| 狠狠色丁香久久综合婷婷亚洲成人福利| 久久婷婷丁香六月天| 日本久久激情| 曰日爽日日操| 色欲色香,www,com| 天天日天天操心| 91|九色|动漫| 国产亚洲色婷婷久久99精品91| 五月久久婷婷丁香| 色色色色色色网站| 婷婷综合网在线| av中文字幕免费观看| www,婷婷| 99超级碰碰| 五月婷久久| 99惹在线精品免费观看| A片试看120分钟做受视频红杏| 五月婷免费视频久久久| 久cao香蕉影院| 亚洲婷婷五月天激情| 综合久久久| 99精品视频在线观看| 天天网站天天爽| 综合网精品99| 神马欧美精| 99热精品在线观看| 成人国产欧美大片一区| 天天爱夜夜爽| 大香蕉久久久久| 婷婷激情四射| 婷婷开心六月| 99久久综合网| 男女啪啪做爰高潮无遮挡| 色欲久久久久| 久久99婷婷| 四川BBB搡BBB爽爽视频| 五月婷婷综合视频| 免费AV黄在线播放| Y11111111111少妇电影院| 色婷天天| 婷婷五月丁香基| 久久婷婷综合拍| 能看的AV| 天天草天天摸| 五月婷婷开心亚洲无| 狠狠爱丁香婷| 国产成人亚洲综合A∨婷婷| 久久99热精品a片在线观看| 成人免费在线电影| 亚洲综合五月天婷婷丁香| 五月天开心激情综合网| 久热只有这里有精品| 婷婷碰碰| 婷婷丁香久久| 丁香五月婷婷色偷偷| 97色婷婷| 婷婷综合av| 久久人妻精品| 五月婷婷九| 97精品欧美91久久久久久久| http:色情日本com| 丁香婷婷五月天激情四射| 玖久精品视频9| 九九色影视| 丁香五月 无码| 日本欧美成人片AAAA| 亚洲视频图片婷婷五月| 亚洲第一色色色| www.色九月| 超碰色碰碰| 国产成人+综合亚洲+天堂| 日婷婷久久开心| 五月婷婷co.m| 九九热这里只有精品556| 九热视频精品| 婷婷五月天久草在线| 五月天激情网站| 婷丁香五月天| 婷婷五月天精品| wwccc久久久| WWW,色五月| 久久五月天色婷婷| 9在线9在线婷婷在线国产| 99精品视频在线观看| 丁香六月欧美| 色色免费网站| pacopacomama 070722_670 素人奥様初撮りドキュメント 103 大久保純子 | 97色在线视频| 婷婷五月丁香色播| 五月天堂六月丁香亚州中文字幕久久| 三男玩一女三A片| 99爱视频在线| 97操视频| 99视频在线播放大全| 五月婷婷免费在线观看视频| 新激情五月天色播| 国产精品-第3页-91JQ就要激情网91JQ5.JQJQ926.XYZ | 中文字幕乱轮| 五月天影院| 综合激情深爱| 久热这里只有精品在线| 婷婷丁香五月天狠狠| 日批在线看| 伊人丁香五月| 色高清无码视频| 欧美天天干五月丁香| 五月天婷五月天综合网在线观| 天天色天天搡| 色婷婷综合久色AV五色最新| 婷婷久久久| 99热啪啪| 激情图片亚洲| 亚州激情网站无码| 日本www五月婷婷| 五月天成人在线视频丁香| 婷婷基地成人五月天| 五月丁香在线视频观看| 99久久国产成人精品| 五月综合亚洲色| 九热在线这里有精品6| 婷婷五六月丁香| 精品国产va久久久久久久| 午夜性爱影视一区77| 久久伊人日日夜夜| av人人操| 婷婷五月天六月丁香| 99爱精品| 9久视频| 婷婷五月天激情网| 成熟妇人A片免费看网站| 国产伦亲子伦亲子视频观看| 黄色中文字目| 色五月开心久久网| 天堂久久婷婷| 精品国产va久久久久| 日本ww亚洲| 99国产这里只有精品| EEUSS鲁片一区二区三区| 丁香激情网| 在线播放中文字幕| 99久久超级| 99精品97| renrencaoni| 青青福利网| 伊人色综合网| 99爱视频在线观看| 牛牛澡牛牛爽| 久久九九@| 午夜美女人啪最红院| av操一操| 丁香色婷婷| 青柠影视免费高清电视剧 | 99干视频| 色噜噜狠狠色综无码久久合欧美| 色婷婷色和| 国产激情综合五月久久| 五月婷婷黄色视频| 99色色| CHINESE熟女老女人HD视频| 91碰操| 538午夜激情| 午夜丁香五月天综合| 婷婷丁香五另类网站| 亚洲综合网在线| 久久综合丁香| 六月亭亭久久综合激情| 99久在线精品| 亚洲丁香花五月丁香花| 日本久久综合| 婷婷色丁香六月| 五月天婷婷丁香| 国产黄色av| site:esunnet.com| 色播五月天激情| 丰满老熟妇BBBBB搡BBB| 婷婷欧美激情| 五月婷婷co.m| 五月天社区| 久久久久久久久久久久久久久久久精典| 成人日韩欧美| 五月天播播中文字幕| 中文中文在线| 成人视频一区| 激情五月天开心总和网| 成人国产欧美大片一区| 久热 91| www,五月天激情| 色色亚洲视频| 中文字幕av在线播放| WWW.99热| 五月婷婷综合网| 在线观看中文字幕亚洲| 色婷婷裸体色性在线| 丁香激情五月| 99re在线观看| 99久久久久久www| 日韩中出视频| 色播五月丁香婷婷| 六月丁香激情网| 九九十99视频| 开心激情网在线| 激情九月婷婷九月| 26uuu淫色| 99久在线精品99re8热| 久久超级碰视频| 色色色色色色色色色色色色色色,网站| 人妻久久久| 99小视频在线| 五月丁香啪啪啪综合网| 五月丁香性| 欧美亚洲色色色色| 欧美日韩大黄| 婷婷99狠狠| 99欧美| 97干免费视频| 中文字幕综合| 99视频网址| 色婷亚洲五月丁香| 天天干夜夜谢| 亚洲在线播放| 欧美综合激情丁香五月六月婷| 丁香五月伊人| 婷婷丁香综合| 久草视频大香蕉99| 女人天堂 AV| 九九久久色| 99热99这里只有精品| 97午夜一区二区| 婷婷色欧美激情| 123日本不卡在线| 国产资源91在线| 97超喷视频在线观看| 国产成人99久久亚洲综合精品| 婷婷中文综合网| 九九久热| 丁香五月婷婷亚洲另类| 播五月开心婷婷欧美综合| 欧美色色色色色色| 激情AV在线| 丁香五月婷婷色| 超碰人人草| 成人色情五月天婷婷丁香| 国产美女无遮挡裸体毛片A片| 免费精品66| 激情操逼婷婷| 五月婷在线播放| 91互操| 欧美一级色| 丁香五月激情天AV无码| 开心五月婷婷| 97五月天婷婷| 亚洲午夜Av| 99色在线| 欧爱综合视频| BlACKEDRAW视频一区二区| 一本色道久久综合狠狠躁小说| 亚洲综合无码| www.婷婷| 婷婷成人综合五月| 涩玖玖免费视频| 玖玖综合网| 伦乱美欧| 九九热青青草| 色综合色五月| 狠狠va| 卡视频1区2区| 婷婷五月丁香基地| α久久| 色射7856五月天激情四射| 成人婷99最新| 天天射射夜| 丁香五月综合首页| 天天射影院| 深爱1激情网| 欧美99热| 超碰九热| 97久久视频| 五月天激情婷婷小说| 久久99激情| 97色婷婷| 天天综合五月天| 99热香港| 日韩无码91| 激情六月天| 噜噜狠狠色| 久er7久热| 欧美操逼天堂| 激情五月婷婷| 激情五月婷| 人人看人人草人人摸| 丁香六月婷婷久久高清| 免费观看全黄做爰的视频| 综合网亚洲| 婷婷五月免费观看| A级毛片高清免费不卡播放谢谢谢谢| 99热免费| 91热网址| 操一操| 播五月婷婷开心| 综合激情在线观看| 美国少妇性做爰| 色99视频| 五月天播播| 狠狠狠狠狠狠狠狠狠狠狠色宗合图片| 久久婷婷五月综合成人d啪| 国产免费性爱| 丁香五月婷婷影院| 99热66| 亚洲激情综合五月婷婷啪啪| www久久99| 97碰碰人人视频| 日韩成人无码| 99视频内射三四| 天天天天天天操| 亚洲精品性色| 天天天操天天天爰| 操逼毛片国语对白| 99碰在线视频| 99九九这里有免费视频| 国产免费一区二区在线A片视频| 丁香五月婷婷五月天| 久久婷婷五月综合啪| 婷婷丁香五月久久| 五月综合色| 婷婷五月天激情综合| 怡红院91a√| 就去色色五月丁香婷婷久久久| 色婷婷成人做爰A片免费看网站| www.丁香五月| 激情伊人| 五月丁香六月激情综合| www.五月天婷婷| 久久这里只| 色噜噜狠狠狠综合曰曰曰| 天天色天天操天天射| 超碰成人在线观看| 色婷婷天堂| 影音先锋天天日| 综合图片色色| 天天久| 人人干人人操人人摸| 亚洲bt丁香五月天婷婷激情小说| 久热中文字幕在线线观看 | 五月丁香婷婷激情视频| 国产精品A片| 亚洲va欧美va国产综合久久久| 九九操综合网| 久久精彩视频99| WWW.夜夜| 99热精品免费在线观看| 亚洲另类噜噜| 婷婷五月综合激情免费视频| 激情五月天色婷婷| 六月丁香婷婷五月| 99精品大片| 久热免费| 色九月婷婷丁香| 亚洲视频五区| 色婷婷五月在线| 久久五月视频| 99在线精品免费视频| 国产69久久久欧美黑人A片| 日本强伦片中文字幕免费看| 日本女色人人| 中文字幕丰满乱孑伦无码专区 | 婷婷色五月天色| 欧美大道不卡| 色五月色五天色情网| 亚洲视99| 六月色五月天天婷婷| 色五狠狠| 欧美丁香五月| 久9热| 全部老头和老太XXXXX| 日本V在线观看不卡视频网站| 五月婷婷五月丁香综合| 99热精品免费| 嫩草AV久久伊人妇女超级A| 日本色色影片| 激情碰碰碰| 美女激情综合| 色婷婷成人丁香| 热99re| xx人人xx| 亚洲操b| 爱超碰性| 午夜成人在线免费视频| 色99在线视频| 天天肏夜夜肏| 东京热五月婷婷| 色婷婷文字幕| 亚洲sesesese| 99re这里有精品手机在线| 可以免费看AV网站| 久久婷婷五月天激情四射| 久热伊人| 欧美日韩日韩成人| 人妻AV在线| 欧美Va在线| 激情九色| 亚洲综合五月天| 99婷婷色| 级情九色| www.狠狠干com| 97视频.干com| 天天躁日日躁狠狠躁日日躁2022年5月9日| 婷婷综合天堂| 色色婷| 5月丁香六月情| 色色激情网| 婷婷综合仓库中文| 日本久久爽| 99视频在线观看视频| 天天操夜夜操| 日本精品人妻无码77777| 五月五月婷婷| 五月丁香六月婷婷在线小说视频| 五月开心激情| 最近韩国日本免费高清观看| 激情五月婷婷啪啪| 久久婷五月综合色| 亚洲成人无码网站| 超碰在线观看三级片| 色婷婷导航| 天天日天天干天天天| 婷婷精品| 98色花堂98t.R| 久久精品永久免费| 久久五月天婷婷| 婷婷丁香色性爱| 亚洲综合视频一下| 99久久6| 成人在线视频男人的天堂4399| 婷婷综合五月天| 久久9情免费| 久久五月天综合视频网站| 色色无码| 20253AV| 国产夫妻操逼内射视频| 婷婷五月综合久久中文字幕| 男人的天堂av俄罗斯热| 色婷婷丁香五月观看| 九九久久99| 五月天婷婷AV| 国产裸舞表演WWWW| 国产在线aaa片一区二区99| 色五月首页| 亚洲免费观看高清完整版AV线| 亚洲精品性色| 成人综合网站| 五月天亚洲图片婷婷| 六月丁香色色| 激情丁香五月AV| 99久久免费精品| 字幕网AV中文字幕| 激情欧美婷五月| 日本狠狠干| 日韩操人| 日本一道久久| 26.uuu丁香五月婷婷| 久久九九热视频| 五月婷婷黄网站大全| 只有久久精品免费| 丰满老熟妇BBBBB搡BBB| 丁香五月婷婷无码AV| 伊人五月天在线| 欧美婷婷日本| 久久九区| 激情九月婷婷| 五月丁香激情综合网| 狠狠久久婷五月| 超碰大香蕉网| 久久久久久久97| 在线中文av| 色综合激情| 色综合色综合网| 99久久99九九九99九他书对| www.色五月.com| 色射影院| 五月天婷婷色综合| 久久er这里只有精品| 婷婷丁香五月天激情| 色综合色婷婷色伊人| 色婷婷小说| 开心五激情网|