色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

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

藍(lán)橋杯算法題解:BFS狀態(tài)擴(kuò)展與二維前綴和優(yōu)化實(shí)戰(zhàn)

藍(lán)橋杯算法題解:BFS狀態(tài)擴(kuò)展與二維前綴和優(yōu)化實(shí)戰(zhàn) 1. 從“大胖子”到迷宮尋路一個(gè)算法題的場景化拆解看到“大胖子走迷宮”這個(gè)題目很多參加過藍(lán)橋杯或者準(zhǔn)備算法競賽的朋友可能會(huì)心一笑。這可不是一個(gè)簡單的迷宮尋路問題它巧妙地將“角色體積”和“時(shí)間”這兩個(gè)維度引入了傳統(tǒng)的BFS廣度優(yōu)先搜索框架。我當(dāng)年第一次遇到這類變種題時(shí)也卡了挺久核心難點(diǎn)就在于如何把“胖子會(huì)隨時(shí)間變瘦”這個(gè)動(dòng)態(tài)規(guī)則無縫整合到每一步的狀態(tài)判斷里。今天我們就來徹底拆解這道來自藍(lán)橋杯第十屆國賽Java B組的真題不僅講清楚怎么做更重點(diǎn)剖析為什么這么做以及在實(shí)際編碼中那些容易讓人栽跟頭的細(xì)節(jié)。這道題的本質(zhì)是一個(gè)帶有狀態(tài)擴(kuò)展的圖搜索問題。迷宮是靜態(tài)的但我們的主角“大胖子”是動(dòng)態(tài)的他在某些時(shí)刻占據(jù)多個(gè)格子比如3x3或5x5的范圍并且這個(gè)占據(jù)范圍會(huì)隨著時(shí)間流逝而縮小。這就意味著同一個(gè)坐標(biāo)點(diǎn)(x, y)在不同時(shí)間t對于胖子而言的可達(dá)性是完全不同的。傳統(tǒng)的BFS記錄(x, y)作為狀態(tài)已經(jīng)不夠用了我們必須將時(shí)間t也作為狀態(tài)的一部分形成三維狀態(tài)(x, y, t)。同時(shí)胖子的“體型”決定了他在移動(dòng)時(shí)不僅目標(biāo)點(diǎn)要為空地他身體所覆蓋的所有格子都必須同時(shí)為空地。理解并建模好這個(gè)“體型覆蓋”邏輯是解題的第一道坎。2. 問題定義與核心狀態(tài)建模我們先拋開代碼用最直白的話把題目規(guī)則翻譯一遍。假設(shè)有一個(gè)N x N的網(wǎng)格迷宮用字符矩陣表示‘.’代表空地‘*’代表障礙物。有一個(gè)“大胖子”初始位于(sx, sy)他的目標(biāo)是走到(ex, ey)。胖子的體型隨時(shí)間變化規(guī)則通常如下具體參數(shù)需以題目描述為準(zhǔn)這里是常見設(shè)定在時(shí)間t k時(shí)胖子是一個(gè)以自身為中心、邊長為5的正方形即占據(jù)5x5的格子區(qū)域。在時(shí)間k t 2k時(shí)胖子縮小為以自身為中心、邊長為3的正方形即占據(jù)3x3的格子區(qū)域。在時(shí)間t 2k時(shí)胖子恢復(fù)為正常體型只占據(jù)自身所在的1x1格子。這里k是一個(gè)給定的常數(shù)。胖子可以執(zhí)行兩種操作移動(dòng)向上、下、左、右四個(gè)方向移動(dòng)一格。移動(dòng)的前提是在移動(dòng)完成的那個(gè)時(shí)刻胖子體型所覆蓋的所有格子都必須是空地即‘.’且不能出界。停留在原地等待一個(gè)單位時(shí)間。胖子可以選擇不行走等待自己變瘦。我們需要求解的是胖子從起點(diǎn)到終點(diǎn)的最短時(shí)間。顯然停留操作的存在使得“最短時(shí)間”不一定對應(yīng)“最少步數(shù)”因?yàn)橛袝r(shí)等待變瘦后再走反而比硬闖更省時(shí)。2.1 為什么是BFS以及狀態(tài)維度的擴(kuò)展求最短時(shí)間在無權(quán)圖每次移動(dòng)或停留代價(jià)為1中BFS是天然的選擇。但傳統(tǒng)迷宮BFS的狀態(tài)是(x, y)用一個(gè)二維數(shù)組vis[x][y]記錄是否訪問過。在這里行不通了因?yàn)?x, y)點(diǎn)在不同時(shí)間t的可訪問性不同。舉個(gè)例子起點(diǎn)旁邊緊挨著一個(gè)障礙物。當(dāng)胖子是5x5體型時(shí)他的身體會(huì)覆蓋到那個(gè)障礙物因此他無法移動(dòng)或停留在起點(diǎn)如果起點(diǎn)區(qū)域本身有障礙甚至無法開始。他必須等待時(shí)間t增加到k體型變?yōu)?x3后如果3x3區(qū)域不包含障礙他才能開始移動(dòng)。如果3x3區(qū)域還包含障礙則需要等到t 2k變?yōu)?x1。因此我們必須將狀態(tài)定義為(x, y, t)。訪問標(biāo)記數(shù)組也需要升維vis[x][y][t]這里有個(gè)問題時(shí)間t可能很大我們無法開一個(gè)三維數(shù)組。但仔細(xì)分析時(shí)間維度存在一個(gè)“穩(wěn)態(tài)”當(dāng)t 2k后胖子的體型不再變化始終為1x1。此后的問題就退化成了標(biāo)準(zhǔn)的迷宮BFS。所以我們只需要關(guān)心從t0到t2k這個(gè)動(dòng)態(tài)變化的過程。對于t 2k的狀態(tài)我們可以用一個(gè)統(tǒng)一的“正常體型”狀態(tài)來處理。實(shí)際上更常見的做法是不顯式存儲(chǔ)t而是將“體型階段”作為狀態(tài)的一部分。定義狀態(tài)為(x, y, stage)其中stage表示當(dāng)前的體型階段stage 0: 體型為5x5對應(yīng)t kstage 1: 體型為3x3對應(yīng)k t 2kstage 2: 體型為1x1對應(yīng)t 2k那么時(shí)間t如何體現(xiàn)它蘊(yùn)含在BFS的搜索層數(shù)即步數(shù)/時(shí)間中。當(dāng)我們從隊(duì)列中取出一個(gè)狀態(tài)(x, y, stage)時(shí)我們知道走到這個(gè)狀態(tài)所花費(fèi)的當(dāng)前時(shí)間curTime。根據(jù)curTime我們可以判斷這個(gè)狀態(tài)對應(yīng)的stage是否應(yīng)該更新。例如取出狀態(tài)時(shí)stage0但curTime k說明胖子已經(jīng)變瘦了我們應(yīng)該將stage更新為1再以此為基礎(chǔ)進(jìn)行后續(xù)動(dòng)作的判斷。關(guān)鍵理解stage是胖子在當(dāng)前時(shí)刻的體型屬性而BFS隊(duì)列中每個(gè)節(jié)點(diǎn)攜帶的時(shí)間curTime是用來決定stage是否需要進(jìn)階的依據(jù)。兩者共同定義了胖子在某一時(shí)空下的完整狀態(tài)。2.2 體型覆蓋檢測算法效率的關(guān)鍵無論是移動(dòng)還是停留都需要判斷“以(x,y)為中心根據(jù)當(dāng)前stage決定的體型范圍內(nèi)所有格子是否都是空地”。這是一個(gè)需要頻繁調(diào)用的操作。假設(shè)迷宮大小N最大為300最壞情況下BFS節(jié)點(diǎn)數(shù)可達(dá)N^2 * 3量級約27萬每次判斷如果都樸素地遍歷5x525個(gè)格子或3x39個(gè)格子計(jì)算量約數(shù)百萬次檢查尚可接受但顯然有優(yōu)化空間。優(yōu)化思路二維前綴和我們可以預(yù)處理一個(gè)二維前綴和數(shù)組sum[][]其中sum[i][j]表示從(1,1)到(i,j)這個(gè)矩形區(qū)域內(nèi)障礙物‘*’的個(gè)數(shù)。這樣對于任何以(cx, cy)為中心邊長為len奇數(shù)的正方形區(qū)域其障礙物總數(shù)可以通過前綴和O(1)計(jì)算得出障礙數(shù) sum[cxlen/2][cylen/2] - sum[cx-len/2-1][cylen/2] - sum[cxlen/2][cy-len/2-1] sum[cx-len/2-1][cy-len/2-1]如果這個(gè)“障礙數(shù)”為0說明該區(qū)域全是空地。在本題中我們只需要判斷“是否全為空地”因此等價(jià)于判斷該矩形區(qū)域的“障礙數(shù)”是否為0。預(yù)處理前綴和的時(shí)間復(fù)雜度為O(N^2)之后每次體型檢測都是O(1)極大地提升了效率。實(shí)操心得在算法競賽中遇到需要頻繁查詢子矩陣和的問題一定要立刻想到二維前綴和。它能把一個(gè)O(L^2)的操作降到O(1)是性價(jià)比極高的優(yōu)化。編碼時(shí)注意處理好邊界可以將迷宮數(shù)據(jù)從1開始存儲(chǔ)方便前綴和計(jì)算。3. BFS搜索框架的詳細(xì)實(shí)現(xiàn)有了以上的分析我們可以搭建BFS的搜索框架了。下面我將分步驟給出實(shí)現(xiàn)細(xì)節(jié)并解釋每一步的意圖。3.1 數(shù)據(jù)結(jié)構(gòu)與初始化import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main { static int N, K; static char[][] maze; static int[][] sum; // 二維前綴和記錄障礙數(shù) // 方向數(shù)組 static int[] dx {-1, 1, 0, 0}; static int[] dy {0, 0, -1, 1}; // 訪問標(biāo)記第三維是體型階段 stage (0:5x5, 1:3x3, 2:1x1) static boolean[][][] vis; public static void main(String[] args) { Scanner sc new Scanner(System.in); N sc.nextInt(); K sc.nextInt(); maze new char[N2][N2]; // 從1開始索引方便處理 sum new int[N2][N2]; vis new boolean[N2][N2][3]; for (int i 1; i N; i) { String line sc.next(); for (int j 1; j N; j) { maze[i][j] line.charAt(j-1); // 計(jì)算前綴和如果是障礙物則值為1 int val (maze[i][j] *) ? 1 : 0; sum[i][j] sum[i-1][j] sum[i][j-1] - sum[i-1][j-1] val; } } // 假設(shè)起點(diǎn)為(1,1)終點(diǎn)為(N, N)具體以題目輸入為準(zhǔn) int ans bfs(1, 1, N, N); System.out.println(ans); } }說明數(shù)組開N2是為了方便處理邊界避免在判斷前綴和時(shí)頻繁檢查下標(biāo)是否小于1。vis[x][y][stage]記錄狀態(tài)(x, y, stage)是否已被訪問。注意同一個(gè)坐標(biāo)(x,y)在不同stage下被視為不同狀態(tài)。前綴和sum[i][j]的計(jì)算采用了動(dòng)態(tài)規(guī)劃的思想是這類問題的標(biāo)準(zhǔn)寫法。3.2 核心函數(shù)檢查當(dāng)前位置是否合法這是整個(gè)算法的基石需要根據(jù)當(dāng)前的stage體型來判斷胖子能否位于(x, y)點(diǎn)。// 判斷在階段stage下中心點(diǎn)在(cx, cy)的位置是否合法即體型覆蓋區(qū)域全為空地 static boolean check(int cx, int cy, int stage) { int len; // 體型的邊長 if (stage 0) len 5; else if (stage 1) len 3; else len 1; // stage 2 // 計(jì)算體型區(qū)域的左上角和右下角坐標(biāo) int half len / 2; // 對于5-2, 3-1, 1-0 int x1 cx - half; int y1 cy - half; int x2 cx half; int y2 cy half; // 首先檢查邊界體型區(qū)域不能超出迷宮范圍[1, N] if (x1 1 || y1 1 || x2 N || y2 N) { return false; } // 利用前綴和檢查該矩形區(qū)域內(nèi)是否有障礙物 int obstacleCnt sum[x2][y2] - sum[x1-1][y2] - sum[x2][y1-1] sum[x1-1][y1-1]; return obstacleCnt 0; }避坑提示邊界檢查必須放在前綴和查詢之前。因?yàn)槿绻w型區(qū)域越界我們?nèi)ゲ樵僺um[x2][y2]時(shí)下標(biāo)可能非法導(dǎo)致數(shù)組越界錯(cuò)誤。這是一個(gè)非常常見的編碼失誤點(diǎn)。3.3 BFS搜索過程詳解BFS隊(duì)列中的節(jié)點(diǎn)需要存儲(chǔ)x坐標(biāo)、y坐標(biāo)、到達(dá)該狀態(tài)的時(shí)間以及到達(dá)時(shí)的體型階段。由于stage可以從curTime推導(dǎo)也可以顯式存儲(chǔ)。顯式存儲(chǔ)邏輯更清晰。static class Node { int x, y, time, stage; Node(int x, int y, int time, int stage) { this.x x; this.y y; this.time time; this.stage stage; } } static int bfs(int sx, int sy, int ex, int ey) { QueueNode queue new LinkedList(); // 初始狀態(tài)檢查如果起點(diǎn)在初始體型下就不合法則無法開始 if (!check(sx, sy, 0)) { // 可能需要等待不題目通常保證起點(diǎn)初始合法或允許等待。這里先嘗試加入。 // 更嚴(yán)謹(jǐn)?shù)淖龇ㄊ菍⑵瘘c(diǎn)狀態(tài)加入時(shí)其stage應(yīng)根據(jù)當(dāng)前時(shí)間0計(jì)算。 } // 初始節(jié)點(diǎn)時(shí)間0階段0。但加入隊(duì)列前其stage應(yīng)根據(jù)時(shí)間0確定。 int initStage getStage(0); if (!check(sx, sy, initStage)) { // 如果起點(diǎn)在初始階段就不合法說明需要等待。但BFS起點(diǎn)就是等待的開始。 // 我們可以選擇將(時(shí)間0, 階段0)加入在彈出時(shí)處理階段更新。 // 另一種思路直接將(sx, sy, 0, 0)加入但在處理節(jié)點(diǎn)時(shí)先根據(jù)其time更新stage。 } vis[sx][sy][initStage] true; queue.offer(new Node(sx, sy, 0, initStage)); while (!queue.isEmpty()) { Node cur queue.poll(); int cx cur.x, cy cur.y, ct cur.time, cs cur.stage; // 彈出節(jié)點(diǎn)后首先根據(jù)當(dāng)前時(shí)間ct更新其真實(shí)的體型階段rs (real stage) int rs getStage(ct); // 注意如果cs與rs不同意味著我們在隊(duì)列中存儲(chǔ)的stage是過時(shí)的。 // 我們需要以更新后的rs為準(zhǔn)進(jìn)行后續(xù)操作。 // 因此檢查當(dāng)前狀態(tài)是否合法應(yīng)用rs。 if (!check(cx, cy, rs)) { continue; // 當(dāng)前狀態(tài)不合法跳過例如在隊(duì)列中等待時(shí)體型縮小后發(fā)現(xiàn)當(dāng)前位置被障礙卡住 } // 到達(dá)終點(diǎn)判斷必須在體型為1x1時(shí)即rs2站在終點(diǎn)才算成功 if (cx ex cy ey rs 2) { return ct; } // 擴(kuò)展動(dòng)作停留和四個(gè)方向的移動(dòng) // 動(dòng)作1停留 int nt ct 1; int ns getStage(nt); // 下一時(shí)刻的體型階段 if (!vis[cx][cy][ns]) { vis[cx][cy][ns] true; queue.offer(new Node(cx, cy, nt, ns)); } // 動(dòng)作2向四個(gè)方向移動(dòng) for (int i 0; i 4; i) { int nx cx dx[i]; int ny cy dy[i]; // 移動(dòng)后的階段使用下一時(shí)刻的階段ns if (nx 1 nx N ny 1 ny N !vis[nx][ny][ns]) { // 關(guān)鍵判斷移動(dòng)是否合法要看在下一時(shí)刻ns階段下新位置(nx, ny)是否合法 if (check(nx, ny, ns)) { vis[nx][ny][ns] true; queue.offer(new Node(nx, ny, nt, ns)); } } } } return -1; // 無法到達(dá) } // 根據(jù)時(shí)間t返回對應(yīng)的體型階段 static int getStage(int t) { if (t K) return 0; else if (t 2 * K) return 1; else return 2; }逐段解析節(jié)點(diǎn)定義與初始化Node類包含了位置、時(shí)間和階段。初始化時(shí)根據(jù)時(shí)間0計(jì)算出初始階段initStage并標(biāo)記訪問。這里隱含了“起點(diǎn)在初始時(shí)刻必須是合法的”這一常見題目條件。狀態(tài)更新從隊(duì)列中取出節(jié)點(diǎn)cur后第一件事就是用cur.time重新計(jì)算真實(shí)的階段rs。為什么因?yàn)楣?jié)點(diǎn)入隊(duì)時(shí)存儲(chǔ)的stage是基于入隊(duì)時(shí)的time計(jì)算的。在隊(duì)列中等待被處理的過程中time沒有變但當(dāng)我們處理它時(shí)是以它被取出時(shí)的視角來看的。實(shí)際上由于BFS按時(shí)間遞增順序擴(kuò)展cur.time就是該狀態(tài)發(fā)生的時(shí)刻用這個(gè)時(shí)刻計(jì)算rs是準(zhǔn)確的。cscur.stage在入隊(duì)后就沒有意義了我們以rs為準(zhǔn)。合法性復(fù)查用rs檢查當(dāng)前位置是否合法。這一步很重要考慮一種情況胖子以5x5體型移動(dòng)到一個(gè)位置然后這個(gè)位置在3x3體型下是合法的但他在隊(duì)列中“等待”時(shí)時(shí)間流逝體型變?yōu)?x3此時(shí)需要復(fù)查該位置是否依然合法。如果因?yàn)轶w型縮小原來被身體邊緣覆蓋的障礙物現(xiàn)在“進(jìn)入”了身體內(nèi)部導(dǎo)致位置非法那么這個(gè)狀態(tài)就應(yīng)該被丟棄。終點(diǎn)判斷題目通常要求胖子以正常體型1x1到達(dá)終點(diǎn)。所以判斷條件不僅是坐標(biāo)匹配還要rs 2。動(dòng)作擴(kuò)展停留時(shí)間1階段變?yōu)間etStage(ct1)。如果該新狀態(tài)未訪問則入隊(duì)。這里有一個(gè)關(guān)鍵點(diǎn)停留后位置不變但時(shí)間增加了階段可能變化。移動(dòng)計(jì)算下一個(gè)位置(nx, ny)時(shí)間同樣是ct1階段為ns。移動(dòng)的合法性判斷是在下一時(shí)刻nt處于下一階段ns的胖子其身體覆蓋區(qū)域在新位置(nx, ny)上必須全部是空地。這個(gè)判斷調(diào)用的是check(nx, ny, ns)而不是check(nx, ny, rs)。3.4 為什么不需要在移動(dòng)判斷中檢查當(dāng)前狀態(tài)細(xì)心的讀者可能會(huì)問移動(dòng)時(shí)不需要保證從當(dāng)前位置移動(dòng)一格這個(gè)動(dòng)作本身是合法的嗎比如胖子當(dāng)前是5x5他向右移動(dòng)一格在移動(dòng)過程中他5x5的身體是否會(huì)蹭到右邊的障礙物在我們的模型里這個(gè)檢查已經(jīng)蘊(yùn)含在check(nx, ny, ns)之中了。我們假設(shè)移動(dòng)是瞬時(shí)的在t時(shí)刻末胖子還在(cx, cy)在t1時(shí)刻初胖子已經(jīng)到達(dá)(nx, ny)。我們只關(guān)心在t1時(shí)刻胖子在(nx, ny)處是否合法。這符合題目的離散時(shí)間模型。不需要考慮移動(dòng)過程中的“碰撞檢測”。4. 常見錯(cuò)誤與性能優(yōu)化陷阱即使理解了算法實(shí)現(xiàn)時(shí)依然會(huì)遇到不少坑。下面我結(jié)合自己的調(diào)試經(jīng)驗(yàn)列舉幾個(gè)高頻錯(cuò)誤點(diǎn)。4.1 狀態(tài)重復(fù)訪問與剪枝BFS必須要有訪問標(biāo)記來避免重復(fù)訪問否則隊(duì)列會(huì)無限膨脹。這里的狀態(tài)是(x, y, stage)。為什么是stage而不是time因?yàn)閷τ谕粋€(gè)(x, y)如果stage相同那么無論time是多少胖子在此處的“行動(dòng)能力”是相同的因?yàn)轶w型相同。后續(xù)從該狀態(tài)出發(fā)能擴(kuò)展出的路徑其時(shí)間差是固定的。如果允許相同(x, y, stage)的狀態(tài)被多次訪問后訪問的狀態(tài)其time一定大于等于先訪問的狀態(tài)因此不可能產(chǎn)生更優(yōu)解時(shí)間更短。所以用vis[x][y][stage]剪枝是正確的。一個(gè)易錯(cuò)場景胖子在(x,y)點(diǎn)stage05x5時(shí)間t1時(shí)被訪問。之后他在別處等待時(shí)間tK此時(shí)stage應(yīng)變?yōu)?時(shí)又想到達(dá)(x,y)點(diǎn)。此時(shí)他訪問的是(x,y, stage1)這是一個(gè)新狀態(tài)即使坐標(biāo)相同也是允許的。我們的vis數(shù)組第三維正好區(qū)分了這一點(diǎn)。4.2 時(shí)間與階段更新的同步問題這是最核心的易錯(cuò)點(diǎn)??匆韵掠袉栴}的偽代碼// 錯(cuò)誤示例 Node cur queue.poll(); if (cur.stage 0 cur.time K) { cur.stage 1; } // ... 然后用cur.stage去進(jìn)行check和擴(kuò)展錯(cuò)誤在于修改了cur對象的屬性并且用更新后的stage去判斷移動(dòng)合法性。但移動(dòng)發(fā)生在下一時(shí)刻cur.time1其階段應(yīng)該是getStage(cur.time1)而不是更新后的cur.stage。正確的做法如前文所述引入一個(gè)局部變量realStage getStage(cur.time)用于當(dāng)前狀態(tài)判斷而擴(kuò)展動(dòng)作時(shí)使用nextStage getStage(cur.time1)。4.3 起點(diǎn)/終點(diǎn)合法性處理的邊界情況題目可能不會(huì)明確保證起點(diǎn)在初始時(shí)刻t0,stage0是合法的。例如起點(diǎn)本身是空地但胖子初始5x5的身體覆蓋了周圍的障礙物。根據(jù)規(guī)則此時(shí)胖子無法“存在”于起點(diǎn)。那該怎么辦題目通常隱含允許“等待”。也就是說胖子的起始狀態(tài)是“在起點(diǎn)等待直到體型縮小到可以容納為止”。我們的BFS初始化需要處理這種情況。一種方法是不直接將(sx, sy, 0, 0)設(shè)為初始狀態(tài)而是將“在起點(diǎn)等待”這個(gè)動(dòng)作也納入BFS。我們可以虛擬一個(gè)開始或者更簡單地檢查getStage(0)下的起點(diǎn)是否合法。如果不合法則根本不能將起點(diǎn)狀態(tài)加入隊(duì)列。但題目要求求最短時(shí)間如果起點(diǎn)初始不合法最短時(shí)間可能就是他從“不存在”到“存在”的等待時(shí)間。更通用的初始化方法是// 尋找第一個(gè)可以使起點(diǎn)合法的時(shí)刻作為BFS起點(diǎn) int startTime 0; while (startTime 2*K !check(sx, sy, getStage(startTime))) { startTime; } if (startTime 2*K) { // 即使變?yōu)?x1也不合法說明起點(diǎn)有障礙直接輸出-1或根據(jù)題意處理 } int startStage getStage(startTime); vis[sx][sy][startStage] true; queue.offer(new Node(sx, sy, startTime, startStage));這樣BFS的起點(diǎn)時(shí)間就不是0而是胖子在起點(diǎn)能夠“站穩(wěn)”的第一個(gè)時(shí)刻。這個(gè)邏輯更完備。4.4 二維前綴和的邊界處理這是實(shí)現(xiàn)細(xì)節(jié)上的坑。我們的迷宮下標(biāo)從1開始sum[0][j]和sum[i][0]都應(yīng)初始化為0。在check函數(shù)中計(jì)算矩形和時(shí)x1-1或y1-1可能為0這正是前綴和公式能正確工作的前提sum[0][*] sum[*][0] 0。如果數(shù)組從0開始存儲(chǔ)就需要在計(jì)算時(shí)增加更多的條件判斷容易出錯(cuò)。因此強(qiáng)烈建議將迷宮數(shù)據(jù)存儲(chǔ)在1-indexed的數(shù)組中。5. 完整代碼參考與測試思路將上述所有部分整合并加入一些健壯性判斷得到完整代碼。這里假設(shè)輸入格式為第一行兩個(gè)整數(shù) N 和 K接下來 N 行每行 N 個(gè)字符表示迷宮起點(diǎn)(1,1)終點(diǎn)(N,N)。import java.util.*; public class FatManMaze { static int N, K; static char[][] g; static int[][] sum; static boolean[][][] vis; static int[] dirx {-1, 1, 0, 0}; static int[] diry {0, 0, -1, 1}; static class Node { int x, y, time, stage; public Node(int x, int y, int time, int stage) { this.x x; this.y y; this.time time; this.stage stage; } } public static void main(String[] args) { Scanner sc new Scanner(System.in); N sc.nextInt(); K sc.nextInt(); g new char[N2][N2]; sum new int[N2][N2]; vis new boolean[N2][N2][3]; for (int i 1; i N; i) { String s sc.next(); for (int j 1; j N; j) { g[i][j] s.charAt(j-1); int val g[i][j] * ? 1 : 0; sum[i][j] sum[i-1][j] sum[i][j-1] - sum[i-1][j-1] val; } } int ans bfs(); System.out.println(ans); sc.close(); } static int bfs() { QueueNode q new LinkedList(); int startX 1, startY 1, endX N, endY N; // 初始化找到起點(diǎn)第一個(gè)合法時(shí)刻 int startTime 0; while (startTime 2 * K !check(startX, startY, getStage(startTime))) { startTime; } if (startTime 2 * K) { // 即使變成1x1起點(diǎn)也不合法起點(diǎn)是障礙 return -1; } int startStage getStage(startTime); vis[startX][startY][startStage] true; q.offer(new Node(startX, startY, startTime, startStage)); while (!q.isEmpty()) { Node cur q.poll(); int cx cur.x, cy cur.y, ct cur.time, cs cur.stage; // 根據(jù)當(dāng)前時(shí)間確定真實(shí)階段 int rs getStage(ct); // 復(fù)查當(dāng)前狀態(tài)合法性針對等待后體型變化的情況 if (!check(cx, cy, rs)) { continue; } // 終點(diǎn)判斷 if (cx endX cy endY rs 2) { return ct; } int nt ct 1; int ns getStage(nt); // 動(dòng)作1: 停留 if (!vis[cx][cy][ns]) { vis[cx][cy][ns] true; q.offer(new Node(cx, cy, nt, ns)); } // 動(dòng)作2: 移動(dòng) for (int d 0; d 4; d) { int nx cx dirx[d]; int ny cy diry[d]; if (nx 1 || nx N || ny 1 || ny N) continue; if (vis[nx][ny][ns]) continue; if (check(nx, ny, ns)) { vis[nx][ny][ns] true; q.offer(new Node(nx, ny, nt, ns)); } } } return -1; // 無法到達(dá) } static boolean check(int cx, int cy, int stage) { int len; if (stage 0) len 5; else if (stage 1) len 3; else len 1; int half len / 2; int x1 cx - half; int y1 cy - half; int x2 cx half; int y2 cy half; // 邊界檢查 if (x1 1 || y1 1 || x2 N || y2 N) { return false; } // 前綴和查詢區(qū)域是否有障礙 int obs sum[x2][y2] - sum[x1-1][y2] - sum[x2][y1-1] sum[x1-1][y1-1]; return obs 0; } static int getStage(int t) { if (t K) return 0; else if (t 2 * K) return 1; else return 2; } }測試建議簡單通路小迷宮無障礙直接測試BFS基本功能。需要等待設(shè)置一個(gè)狹窄通道寬度為1但長度方向無障礙。起點(diǎn)在通道一端。初始5x5體型無法進(jìn)入通道必須等待至3x3或1x1才能進(jìn)入。驗(yàn)證程序是否選擇了等待。起點(diǎn)被卡起點(diǎn)是空地但周圍緊挨著障礙物使得5x5體型不合法。驗(yàn)證程序是否能通過等待找到起始時(shí)間。混合路徑設(shè)計(jì)一個(gè)迷宮其中一條路徑短但需要長時(shí)間等待如穿過一個(gè)最初很窄的走廊另一條路徑長但無需等待。驗(yàn)證程序是否能正確選擇總時(shí)間更短的路徑可能是等待短路徑。大尺寸壓力測試N300隨機(jī)生成障礙物測試程序在極限數(shù)據(jù)下的運(yùn)行時(shí)間和內(nèi)存是否可接受Java下應(yīng)能在1-2秒內(nèi)完成。這道“大胖子走迷宮”題目融合了BFS、狀態(tài)壓縮、前綴和優(yōu)化以及對題目規(guī)則的細(xì)致建模是檢驗(yàn)選手綜合思維和代碼實(shí)現(xiàn)能力的一道好題。理解其核心——將時(shí)間維度轉(zhuǎn)化為體型階段并將此階段作為狀態(tài)的一部分進(jìn)行搜索——是解決所有類似動(dòng)態(tài)障礙或動(dòng)態(tài)角色問題的鑰匙。在編碼時(shí)時(shí)刻分清“當(dāng)前狀態(tài)”和“動(dòng)作后的狀態(tài)”處理好階段與時(shí)間的同步關(guān)系就能穩(wěn)穩(wěn)拿下這類題目。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
婷婷综合网站| 日本一二区不卡| 国产99精品一区二区三区免费| 91天堂视频| 激情国产乱伦Av| 婷婷人妻激情| 久都青青视频| 色人久久| 亚洲精品国语在线播放| 98超碰日本| 久热这里| 中文字幕中文字幕一区二区| 蜜臀久久99精品久久久久久成人小说 | 国产成人在线观看网址| 91无码人妻| 午夜福利视频在线一区| 啪啪性爱免费视频| 伊人久久AV诱惑悠悠| 日韩精品人妻中文字有码在线 | 黑丝少妇在线观看| 伊人久久大香线蕉无码| 偷拍精品一区二区三区| 欧亚 另类 久| 亚洲好色人妻| 国产白丝在线| 丰满人妻一区二区三区四| 亚洲啪啪视频一区二区| 日本免费一级AAA大片器 | 四虎影视永久在线观看精品免费网站 | 91操人视频| 日韩欧美大力操| 99re热有精品视频国产| 蜜臀久久99精品久久久久久无删减 | 999岛国大片| 精品国产Av无码久久久亚洲| 夜夜爽夜夜操| 91劲爆| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 色制服丝袜夫妻av一区| 伊人991| 中文字幕视频2区| 91综合在线| 极品综合| 亚洲视频中文一区| 亚洲一区在线观看欧洲| 在线日韩日本亚洲国产| www亚洲免费| 国产 亚洲 一二三四| 精品人妻一区二区三区在线视频不卡| www欧美91| 国产国产亚洲一二三久久| 97频视在线| 超碰欧美在线欧美| 色香91| 亚洲欧洲第二视频在线观看色图| 午夜久久久| 麻豆色99999| 麻豆天美在线| 欧美成人一级麻豆| 亚洲一级性爱视频免费看| 人人看人人插| 久久久久久精品免费看A级| 日小BB小视频| 精品然女一区二区| 国语精品av| 啊啊啊啊好疼| 大香蕉综合网| 久久精品久久久久久久久| 波多野结衣先锋影音| 深夜国产一区二区三区在线看| 双插性欧美一二三区| 亚洲国产欧美一区二区潘金莲| 一级性爱视频免费观看 | 亚洲一卡2卡3卡4卡乱码网站 | 丁香久久| 国产天天看| 欧美性生活内射| 日本不卡一区二区三区| 99在线精品观看视频中文| 亚洲情色 自拍| 国产精品不卡少妇白| 久久久性少妇| 1769一区| 国产盗摄美女如厕大神作品在线观看| 亚洲丝袜在线观看| 亚洲啪啪视频免费| 欧美大香蕉在线观看| 国产av青草| 久久天堂网| 日韩猛交| 色99在线| 99热国产精品| 91久久久亚洲| 日韩成人性爱电影在线播放| 天天肏美女| 久久黄色性爱视频| 好淫网一二三视区| 大白逼三四级| 日韩亚洲Av人人夜夜澡人人爽| 天综合网| 亚洲在线观看| 日本熟女不卡视频| 新版天堂中文资源8在线| 天天综合精品| 操熟女91| 偷看洗澡一二三区美女| 97国产亚洲中文在线| 中文字幕无码不卡啪啪| 欧美 亚洲 在线| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 国产a级精品| 老熟妇一区二区三区| 国产强奸乱伦无码视频| 一区二区三区视频在线观看免费| 久久超碰免费的| 青青在线视频日韩欧美| 熟女丰满人妻一区| 亚洲一区二区中文字幕| 亚洲h片在线免费观看| 综合色图区| 亚洲日韩东京热一区| 午夜毛片亚洲精品片国产久久久| 久久激情网| 亚洲成人妻日韩在线| AV乱伦国产| 九九RE视频在线精品| 蜜屁Av| 天天干天天燥| 嫩草伊人久久精品| 2017av无码免费无线播| 国产精品大香蕉| 人妻喷水| 人妻av在线| 精品9区| 国内毛片无遮挡国产| 成人资源中文字幕在线观看天天| 欧美激情区| 99ri精品| 精品人妻一区二区三区免费视频| 国产白丝网站| 999久久久精品国产| 亚洲婷婷五月天| 欧姜老司机| 激情综合色| www.久久超碰| 亚洲91网。| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 天天操夜夜操狠很操| 夜夜嗨av午夜成人| 国产久久成人| 密臀成人视频久久久| 性做久久久久久免费观看软件| 伦理日韩国产久久| 五月婷婷色色| 97九色| 蜜臀久久99精品久久久久免费观| 亚洲国产欧美另类自拍| 色色青青久久| 亭亭丁香激情| 国产精品无码av嫩草| 久久青娱乐| 黄污污污污| 中文字幕99999| 久久久久精| 久久伊人亚洲AV无码网站| 香蕉免费一区二区三区不读| 中文字幕 国产 精品| 唯美清纯 妖精视频| 天天色香欲综合网| 日韩,欧美,中文在线| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | av凤凰久久久| 蜜臀久久99精品久久久久久婷婷| 黄色高清久久无码依人| 久久肏大逼| 人妻少妇精品| 青青草啪啪网| 91蜜桃婷婷狠狠久久综合9色| 大香蕉中文201| 嫩草 人人网精品| 岛国黄色大片网站| 日语五十路和六十路亚洲国产精品| 欲香欲色天天天综合和网| 色婷婷五月综合激情中文字幕| 无码天堂| 97超碰色情| AV高清一区| 日本片日本片祼观看网站在线看中文版网页在线看 | 麻豆区99999| 人人摸人人叼| 国产精品国产亚洲区艳妇糸列| www被窝色com| 成人日韩中文字幕| 夜夜嗨一区二区| 激情综合二| 亚洲乱码精品一区二区| 欧美青青视频| 亚洲性猛| wuyechaopeng| 久久久久久中文版| 区日韩亚洲乱码av电影| 婷婷色在线| 特级毛片特黄久久免费看| 综合另类| 国产精品香蕉| 99re6国产精品99re| 三级片网站在线播放| 一区二区三区免费视频入口| 色欧美综合| 日韩射图| JuliaAnnXXX888| 亚洲欧美日韩中文久久自慰| 亚洲情色在线| 亚洲成人妻日韩在线| 亚殴在线| 啊啊啊com| 国产 无码 一区二区| 日B操| 欧美亚洲综合高清在线| 欧美天天在线| 日韩无码服务区| 日本免费一区二区不卡| 东京热99999| 国产精品视频播放| 91女优在线观看| 日日骚精品视频| 97色97好| 中字一区| 精品国产99999| 久9精品| 婷婷爽人人婷婷爽视频| 18禁看网站一区| 国产亚洲精品A在线观看下载| 91天天看| 国模无码一区二区三区在线| 大香蕉综合网| 人人摸人人干| 超碰偷拍| 午夜福利国产欧美日韩夜夜| 国产日韩欧美亚洲精品95| 国产网站在线播放| 亚洲色图91欧美日韩| 色妹子A V| 91av天美性媒精品视频| 大屁股国产在线视频| 成人开心网在线视频| 狠狠色五月亚洲91| 精品无码一区二区三区色欲| 日本高清_区二区三区 | 一区二区影视| 嗯啊抽插大香蕉网页| 亚洲操人| 欧美日韩大陆黑人少妇99| 日韩大香蕉精品在线视频| 色淫网站优优视频| 色综合av男人天堂| 精品无码久久久| 国产精品动态一区二区三区四四| 午夜精品久久一区二区| 国产九九九九九九九九| 日韩图区| 国产一级内射高清视频| 亚洲超碰在线| 蜜汁欧美| 国产精品成人福利在线| 久九干| 久久成人网站| 欧美日韩日产免费网站看| 色色婷| 亚洲中文字幕一区| 亚洲无线码欧洲精品区别| 欧美色图天堂在线| 中文字幕一二三av| 国产 无码 一区二区| 色97| 天美传媒婬乱在| 一区三区啪啪| 91天天爱| 欧美aa一级片| 中文字幕少妇色| 3P丝袜熟女 色综合| 太久视频| 曰韩少妇无码| 性爱乱伦网址| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 91色图| 综合熟女| 久久久精品网| 夫妻四区五区六区| 欧美v亚洲v综合v国产v妖精| 国内精品999| 久久久久久久久999| 色一情一乱一乱一区91Av| 亚洲清纯唯美| 日本高清久久| 欧美日韩色| www五月| 国产夫妻性生活视频| 国产尤物AV尤物在线观看不卡| 91国产大片| 日韩欧美午夜一区二区| 啊啊啊97视频| 成人av在线播放| 精品国产国产AV| 亚洲国产av中文字幕久久| 黄色二级片网站| 国产无码久久高清| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 欧美淫乱视频| 一二三区在线| 亚洲国产精品99久久久| 九九九热精品| 国产热RE99久久6国产精品首| www. 男人天堂成人在线| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 国产Av超碰| 青青青艹在线视频| 亚洲激情在线一区二区| 果冻传媒A片麻豆熟妇人妻| 猛交交| 亚洲春色一区二区三区| 屌妞视频久久久久久久久久久久| 午夜欧美女人操逼| 少妇久久久久久久| 精品人妻一区二区三区视频| 亚洲αv一区二区三区| 怡红院久久老司机| 青青草日本中文字幕| 国产欧美一级在线观看| 亚洲高清欧美总合| 国产精品欧美激在线| 亚洲一区二区精品福利| 亚洲视频中文一区| 九草九九九| 久操九九九九| 自拍偷拍2025在线观看| 日韩精品资源专区二区| 色偷偷2020免费视频播放| www.欧精品| 成人福利视频网| 玖草在线视频| 亚洲青青草| 黑操B| 激情五月天插| 国语对白露脸XXXXXX| 日本一级不卡一二区| 中文字暮97| 另类一区| 国产精品久久天天干| 久久这里只精品| wwe 天天干.com| 久久久成人国产精品无码| 天天日天天操天天射河南省| 亚洲97网站| 日韩紧密久久| 精品少妇一区二区三区免费观看| 手机在线观看不卡无码av| 一区二区三区视频| 亚洲欧美首页| 日日骚网站| 国产精品乱码久久久久久久| 国精综合一二三区影视| 日本美女性生活久久久久久久| 乱伦Av网| 亚洲精品官网在线观看| 色y情视频免费看| 天天激清| 另类天堂| 成人三级片一区二区三区视频| 亚洲日韩熟女人妻高清在线| 亚州久久9| 神马久久中文字幕| 四季AV综合网址| 日韩乱码Av| 色999;丁香五月| 欧美成人黄网色网站| 国产精品69人妻无码久久久| 999久久久免费精品国产牛牛| 亚洲骚逼少妇| 俞拍久久国应视频| 欧美美女视频| 精品黄色电影| 婷婷超| 亚洲 欧美 日韩 国产一区二区| 色色九区| 亚洲加勒比| 夜夜骑夜夜操| 性爱网站一区二区| 蜜乳成人AV| 国产精品久久妻无码网站| 色图综合网| 国产成人超碰在线| 午夜乱轮操逼视频免费看| 2017人人操,人人摸| 岛国大片国产| 亚洲超碰AV| 视频分类 国内精品| 激情视屏国产乱伦强奸| 九九色精品| 97天天摸天天碰| 操九九九九九九| 成人久久无码www| 97一区二压| 性交一区二区在线播放| 欧美激情一| 大香蕉日韩| 国产色产精品在线观看| 欧美日韩日产免费网站看| AV污污污污| 99色在线视频| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 91足交| 亚洲欧洲综合视频在线| www四虎| 日韩欧美偷拍美女视频| 91狠狠狠| a亚洲欧美色欲| 亚洲免费成人在线高清无码视频| 狼人久草| 日本男人插女人的逼黄色| 一本色道久久综合狠狠操| 久夜视频| 看日韩操逼| 天天操女人| 亚洲精品黑丝| av黄图片在线观看| 人人做人人妻人人夜视频| 婷婷啪啪| 91五月天| 精品国产乱码久久| 无码国产精品午夜不卡( | 久9re热视频这里只有精品| 日韩人成网站在线播放| 国产偷仑| 久久久人妻| 色哟哟511老熟女| 日韩三四五区| 亚洲精品乱码久久久久久蜜桃麻豆| 加勒比伊人| 动漫爆乳3D奶水一区在线观看| JULIA人妻风俗店中出电影| 超碰在线1234区| 亚洲高清视频在线免费观看| 99热精品在线| 日韩大香蕉AV影片| 欧美刺激色黄片免费看| 成人黄页| 少妇人妻太紧太深av| 爱爱动态120秒| 有码专区最新中文字幕有码| 99热99在线播放激情| 成人影 天天操 亚洲| 99999国产| 在线精品福利免费播放| 日本熟妇精品九九| 日本黄色大片一级视频免费麻豆| 台湾佬中文娱乐自偷自拍| 超碰97久| 男人的天堂不卡一区二区| 日韩电影免费网站麻豆视频| 精品欧美А∨无码黑人大荫蒂 | 亚洲图片视频小说| 九九色逼| 欧美综合色,www| 婬女免费一二三区A片| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 91无码西班牙视频在线| 久久熟女人| 91人人操| 久久99黄色卞西瓜| 美女被啪到深处抽搐视频| 欧美极品女人的天堂| 啊啊啊啊啊啊啊啊在线观看| 色婷婷电影网| 亚洲丝袜诱惑| 天堂日本亚洲欧美| 国产精品亚洲无码| 青青草久草AV| 日韩黄色成人性爱| 国产综合久久久麻桃个| 激情小说五月天| 亚洲色宗合| 中文字幕亚洲欧美在线不卡| 成人精品一区二区91毛片不卡| 九九九九精品一区| 91热爆在线| 97这里有精品| 日本丝袜美腿人妻九九| 人人操人人插人人摸人人干| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 在线天堂资源亚洲| 欧美色图片91| 久久久久久久久成人av解说| 大香蕉伊人75| 天天综合欧美综合| 久久精品色欧美aⅴ一区二区| 无码人妻一区二区三区四区老鸭窝| 长长久久88视频| 私人尤物在线精品不卡| 男人的天堂日本东京热| 丁香五月天堂网| 蜜臀久久99精品久久久久| 欧美性后入| 强奸乱伦大香蕉网| 丝袜亚洲综合| 男人的天堂无码| 欧苏综合色综合| 激情文学 国产一二三aV| 2020中文在线一区二区三区| 99re28在线观看| 中文字幕加勒比海高清无码免费视频| 国模不卡| 日韩免费a级毛片无码a∨| 99精品丰满人妻| 开心五月深爱五月| 成人免费看吃奶视频网站| 久久成人东京热人妻| 麻豆AV一区二区| 久久精品店| 国产一区二区成人av在线播放| 东北操逼| 久久av色| 99re在线视频这里只有精品| 老熟女乱伦片| 美女诱惑1区2区| 国产精品久久久久无码A√| 97操综合| 久久25| 国产吞精a级片激情电影| 狠狠干91| 亚洲丝袜在线观看| 97精品中文字幕| 日产国产精品中文久久婷婷| 亚洲色欲天天人妻无码系列专区| AV不卡在线| 久久性爱视频免费看| 后入合集| 久久中文字幕人妻熟av女蜜柚| 99xav| 亚洲色图久久成人| 婷婷操逼| 色综合色综合网| 免费精品人妻一区二区三| 欧美成人一级麻豆| 97精品视频| 青青青青青手机视频| 日韩亚洲97| 东京热精品97综合网| 麻豆国产原创AV色哟哟| 亚洲,欧美,春色,另类| 另类专区在线观看| 亚洲福利中文字幕在线| 18禁的网站在线| 韩国一级婬片A片无码天美 | 亚洲性综合11| 热热色国产一二区AV| 日韩资源网| 天天干天天日天天射黄色片| 爱啪精品一区| 色网在线| 试看60秒| 亚洲色图片区| 亚洲熟妇A V黑人| 欧美色图第一页| 亚州性色| 精品人妻一区二区三区在| 97色97干| 无码动漫av中文字幕| 欧美日韩在线视频网站| 熟妇综合一区二区三区| 亚洲av性爱电影| 国产无马在线| 亚欧视频在线| 国产在线精品偷| 亚洲五月天激情| 婷婷四五区| 激情文学 国产一二三aV| 少妇天堂网络| 亚洲日韩少妇一道本视频| 精品无码产区一区二| 亚洲双插| 亚洲97| 国产久久成人| 亚洲各类熟们中文字幕| 长长久久免费视频| 日韩国产十八禁| 日韩欧美中文字| 中文有码9| 日本精品999| 成人欧美日超碰| 91N综合网在线| 91老熟女91老女人| 999综合网| 精品免费视频国产一区| 久久国产乱子伦精品免费女,网站| 啪啪自拍九九综合| 9美女超碰在线免费观看| 78精品在线| 美国黄片aaa| aaaa少妇高潮大片| 婷婷99狠狠躁天天躁| 热天堂一区二区| 99久久亚洲精品无码毛片潘甜甜| 欧美少妇性爱网站| 五月婷婷六月天| 99re久久| 亚洲情色一区二区三区| 67914在线兔费成人视频| 东京热男人的天堂| 国产无码一二三区| 少妇一区二区三区在线观看| 啊啊啊要高潮了| 黄页| 亚洲欧美日韩夜夜| 蜜桃精品一区二区三区ww| 精品久久9| 欧洲精品一级二级精品综合视频综合| 青娱乐国产精品| 久久国产精品一级二级三级| 狠操91,com| 日韩欧美大片免费高清啪啪| 欧美日韩岛国大片在线观看| 亚洲色图欧美色图制服丝袜| 久久久久久无码人妻中文字幕| 另类天堂| 26uuu国产| 日本黄色XXX| 亚洲国产91精品一区二区久久| 超碰在线国产| 欧美色图小说综合| 天天日天天搞天天干| 九九热免费视频| 亚洲久草AV色图| 日本精品中文字幕视频| 97资源超碰| 91国产伊人大香蕉| 欧美aaaaaaa| 男人的天堂激情| 五月天九九日国产精品一区二区三区| 粉嫩av久久一区二区三区| 吻戏激情性巴克| 蜜臀99久久国产| 国产亚州高清国产拍精| 东京热大香焦| 日韩国产欧美伦理在线| 自偷自拍的亚洲视频| 俺也射| 日韩欧美成人性爱在线| 久久人妇| 亚洲第一狼人丝袜美女另类| 97一区二区三区视频| 91免费看一区二区三区| A V少妇特黄三级| 96国产精品| 亚洲精品美女久久久久久久久| 丰满人妻一区二区三区四区| 青青草亚洲一区 | V A在线| 爆乳免费黄网站| 人人妻人人澡人人爽久久av| 久久久久久人妻| 日韩大香蕉精品在线视频| 国产一区二区精品久久99| 吉川爱美亚洲二区在线| 国产亲戚伦亲在线| 欧美激情亚洲情色| 久久久精品国产亚洲AV无码| 超碰97人人乐| 2020视频1区2区3区| 91精品人妻| 99久久综合网| 亚洲欧美小说| 精品久久99| 国产精品女生av| 激情小说亚洲视频| 色九月婷婷| 亚洲欧美不卡线| 操死我干死我| 狠狠中文字幕| 国产美女91| 日韩久久三区| 国产婷婷综合在线观看| 国产精品在线网站| 日韩在线观看中文字幕视频| 欧洲久久一二线| 欧美天天谢综合网| 黄色欧美性爱视频| 色777999综合| 国产精品小视频一区二区三区| 中文字幕第9页萱萱影音先锋| 麻豆国产成人精品| 久久亚洲av成人无码国产| 熟妇女伦乱视频| 99re99视频在线免费观看| 五月天婷精品激情| 亚洲**2021在线观看| 玖玖草久草99蜜月一区二区三区| 国产精品大香蕉| 亚洲av国产av综合av卡| 在线洲亚线| 蜜臀人妻少妇久久在线观看| 强免费黄色网址| 久久婷婷电影网| 97超碰逼| 亚洲熟妇自偷自拍另欧美| 国产精品久久久久久高清无码免费看| 九九九不卡| 综合网亚| 花野真衣| 日韩AV熟女乱伦| 97人人夜夜精品视频| 伊人网在线点播| 97精品视频网站| 久久久人体| 九久9精品| 欧美性爱18观看| 麻豆天美传媒毛片| 久男人久久| 熟女精品一区二区三区| 岛国成人av在线播放网址| 亚洲巨爆乳一区二区三区四季网| 国产美女高潮视频| 免费的黄片有限公司| 大逼色网站| 亚洲国产丝袜在线观看| 啊啊啊好舒服好爽啊啊啊视频| 日本色色色| 婷婷亚洲五月***久久| 国产精品99精品视频网站| 精品在线蜜臀| 五月天婷婷社区| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 91久久国产综合精品| 懂色AV一区二区三区| 日本99视频| 人人干人人操人人..com| 国内毛片婷婷六月色| 久草尤物| 日韩免费三级黄片电影| 免费精品无码一级毛片牛牛影视| 欧美不在线| 欧洲亚洲人妻无码高清久久三区四区| 一区 欧美 日韩 麻豆| 丝袜制服字幕在线| 91精品国产综合久久久蜜臀| 久操九九九九| Julia在线播放亚洲久久| 激情丁香五月婷婷| 天天拍天天操| 亚洲欧洲偷拍一区| 国产剧情一区在线观看| 黄色污污污污污污网站| 夜夜操二区| 内射中出日韩在线观看视频| 人妻啊啊人妻啊| 国产精品小视频一区二区三区| 色综合98| 操逼内射干逼白丝91| 丝袜综合色图| 亚洲日韩东京热一区| 人人澡人人弄| 欧美在线综合| 新91视频.cmp| V A在线| 2025年A片视频精品| 成人性爱AV在线免费观看| 自怕偷自怕亚洲精品| 国产成人亚洲精品无码古代早漏男| 免费精品中文字幕| 免费一级毛片在线视频观看| 自拍鲍鱼一区在线高清观看免费| 99激情视频| 97精品国产97久久久久久免费| 一级黄碟在线观看| 日韩一级二级三级免费看完整版国语版 | 亚洲另类综合欧美| 97在线视频网站| 影音先锋日本乱伦| 一牛影视成人片免费| 99久在线精品99re8热| caorenqi shipin| 九九久久国产精品| 国产精品一级二级在线| 大香蕉淫人| 2025年A片视频精品| 国产欧美日韩精品中文| 欧美色婷婷| 国产精品久久久久久久久久久久久久久久久久 | 插B在线观看| 天天cao在线| 五月婷网站| 久久99综合| 久久久久亚洲一区女同性恋中文字幕| 超碰这里有精品| 中文字幕精品探花视频| 综合在线导航一区| 黄页大片在线观看| 在线中文AV| 一中国女人毛片水真多| 国产精品自在线发布| 精品久久久久,69国产成人精| 国产欧美日韩臀| 一起草视频在线| 欧美一级久久久久久久大片动画| 欧美另类色图片| 亚洲电影91| 俺去啦俺来也久久综合| 操婷婷逼| 99黄页网站| 亚洲天堂男人的天堂| 在线国产一区二区av| 国产精品久久9| 欧美第五页| 国产亚洲日韩欧| 伊人综合色网| 日本国产二线女色| 国产操操日韩三级黄| 亚州操操穴网| 大香蕉线| 丰满人妻大屁一区二区| 少妇色综合| 天美麻豆一区二区三区| 在线观看黄色电话| 久9久9精品| 亚洲国产美女久久久久| 女色视频社区| 男女啊啊啊啊啊| 国产高潮AA片免费看| 青青草五月天| 影音先锋少妇| 江都AV在线| 天天日天天干天天操| 色色婷婷五月天| 凹凸 69堂 在线播放| 国产av波波国产精品| 美女毛片999| 操逼无码操逼| 青娱乐大香蕉| 亚洲欧洲自拍图片专区满春格| 国产精品经典一卡久久久 | 日本精品无码三级网站| 欧美成人精品一区二区三区| 人人弄人人摸| 99999精品视频| 一级性爱网| 精品无码久久久| 亚洲不卡三级手机播放| 久久久草成人网站久久久草成人久久久草久久久 | 91天天综合在线| 中文字幕在线高清男人的天堂| 九九九精品色乱九九九| 欧美日韩精品一区二区三区高清| 自拍盗摄一区| 中文字幕黄色一起草| 国产成人精品日本视频| 九九九精品一区二区无码| 亚洲男人天堂2017| 又黄又爽在线观看视频| 26uuu久久| 欧洲射精91| 欧美成人四级在线播放| 91成人国产综合久久精品蜜月| 免费看黄视频亚洲网站| 欧美中字二区| 国产亚洲精品农村妇女| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 蜜乳中文字幕a在线| 亚洲精品 超碰| h4610国产人妻| 99精品丰满人妻无码| 色五月首页| 干少妇视频| 久久亚洲不卡一区二区三区| 啪啪AV导航| 精品97久久| 宅男91视频在线播放| 91c色| 97国产中文| 四虎永久在线精品免费网址| 日韩欧美国产一区二区三区四区| www.av不卡中文字幕| 91亚州日韩高清| 中文人妻av高清一区| 啊啊啊操死我了| 97超碰国产精品| 中文字幕精品一区二区精| 欧美狠狠狠| 亚洲污一污二| 天天综合,91综合永久| 女同女同恋久久级三级| 国产sv美女内射| 超碰97玖玖爱| 日韩欧美女优电影| 久久男人精品| 亚洲97在线观看| 骚乳在线| 国产99热| 日韩欧美亚洲一区二区三区影院| 91天天综合| 日本免费二区三区| 99re95| 天天综合色电影| 成人26uuu| 天天射夜夜| 黄页18禁| 久99视频| 人人艹亚洲| 欧美裸体美女日麻屄| 啊啊啊啊啊操我视频| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 久久久一区二区三区三州| 色偷偷综合91久久噜噜| 白丝少妇一区二区| 国产激情久久| 国产女乱淫真高清免费视频| 性色亚洲| 亚洲97资源| 日韩不卡一二三四| 色女综合| 天天干2019| 六月丁香五月婷婷| 日本午夜精品理论片A级APP发布| 婷婷去俺也去六月色| 探花视频免费观看国产专区| 欧美AB在线| 超碰色大香蕉| 久久精品噜噜噜成人看免欧美大片| 亚洲 se图 欧美电影| 久久久久9久久久久| 玖玖97综合| 红杏大香蕉| 亚洲欧美精品91| 亚洲国产欧美中日韩成人综合视频| 成人亚欧免费视频| 高清国产成人无码| 免费久久一级毛片大黄| a男人的天堂久久一级A毛片| 熟女人妻一区二区三区免费看 | 亚洲精品性爱片| 欧美黄色手机在线观看| 亚洲高清视频在线免费观看| 91亚洲人| 婷婷超| 强乱老妇中文字幕| 日韩久射综合| 神马久久午夜| 精品国产乱码久久久久久蜜臀| 久久精品国产亚洲av水密被窝| 久久超碰天天| 97久久国产| 天天日天天操天天射河南省| 综合夜夜| 澳门黄片一香蕉视频| 欧美片第一页| 国产日逼视频| 亚欧韩av| 婷婷五月在线视频| 性色avv| 国产一区麻豆免费观看| 韩日巨乳美女免费视频在线观看| 四虎AV无码| 亚码人妻| 情色图区| 97超碰欧美精品| 日韩欧美性吧婷婷乱伦大香蕉| 日韩无码极品| 变态乱伦伪娘灌肠一区二区| 成人免费在线网站| 色综合色欲色综合色综合色综合| 九九综合| 亚洲丝袜天堂| 无码九九九九| 啊啊啊啊啊啊在线观看| 91久久久亚洲| 99性爱在线观看| 亚洲欧美在线观看2021| 天天综合,91综合永久| 亚洲蜜臀懂色| 国产高清在线自在拍69| 国产女人视频三四五区| 日日干日日摸| 午夜男女爽爽大片免费观看| 国产综合网站在线播放| 天堂种子在线www网资源| 观看视频图片一区二区三区| 日韩伦理视频| 黑白配性爱AV成| 亚洲一卡二卡在线免费| 日日摸夜夜夜夜爽| 久久婷婷国产一区二区色| 亚州九九九精品视频| 91美| 国产高清成人mv在线观看| 精品婷婷| 久草精品视频| 免费试看60秒| 丁香六月东京热| 国产一级久久久| 91亚洲丝袜熟女| 亚洲阿v天堂无码z2018| 97中文超碰| 天天天堂影视日韩亚洲91| 精品视频一区二区| 丁香九月激情啪| 亚洲av热热色| 日本一区二区不卡| 99热只有这里有精品| 美国久久一二三四| 免费a v| 人人做人人妻人人夜视频| 超碰人妻久久人妻中文97| 91精品国产91熟女| 岛国黄| 色盈盈影院| 欧美亚洲特P| 亚乱色| 欧美一区二区成人一卡| 亚洲色宗合| 91美女丝袜诱惑视频| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 日韩精品色呦呦| 五月天激情小说| 天天影视91看看| 26uuu性物| 91挑色欧美| 国产深喉| 日韩中文字幕在线视频观看| 欧美论理片| 国产精品麻豆成人av| 青娱乐av在线| 久久久久久9| 五月丁香综合激情| 久久久精品视频欧州站| 亚洲乱码国产乱码精网站| 久噜噜| 欧美精品23| 看黑丝美女操逼青青网站| 欧美一区二区三熟女剧情| 综合欧美日韩在线观看| 嗯嗯啊啊啊啊轻点视频| 国产成人 综合亚洲 天堂| 国产人伦精品一区二区三区| 搡老女人911熟妇老熟女| 男人的天堂亚洲| 国产精品熟女一区二区三区| 97爱爱爱综合| 爱逼综合| 久久超碰亚洲人| 欧美精品精品一区二区| 亚洲国产一区二区三区在线| 亚洲无线观看久久| 青青草九九九九九| 久久精品一区二区一8| 欧美一区二区传媒| 亚洲欧洲中文日韩女优乱码| 九九久久99| 亚洲国产精品无码AV在线| 欧美色图成人网一区二区| 亚洲字幕一区二区| 亚洲欧美综合网站| 全球成人中文在线| 91欧美网| 中文字幕片| 亚洲日韩在线a不卡99精品| 欧洲亚洲人妻无码中字久久三区四区| 吖在线不卡一区二区国产剧情 | 色综合av男人天堂| 天天日天天射天天干| 丰满人妻一区二区三区四区| 四季av一区二区凹凸精品小说| 97最新在线播放视频| 屁股久久久久久| 成人综合网 欧美| 亚洲精品天堂久久A∨51成人漫| 国产日产欧产美韩系列麻豆免费| 120分钟婬片免费看| 碰碰97| 国产第二页| 日韩有码免费视频| 无码动漫av中文字幕| 四虎在线免费视频| 激情文学网伊人| 亚洲黄片免费在线播放| 日韩av不卡在线看| 中文字幕天堂在线| 加勒比海成人视频网| 日韩精品中文字幕二区| 久久久日本电影| 亚洲www91| 欧美黄色大片在线观看| 大香蕉人妻久久| 99国产精品免费| 爱做久久久久久| 欧美的性爱网站免费| 日韩成人小视频| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 黄色乱论网站| 深夜激情无码| 久久久96| 久热99999| 久久夜嗨| www.99在线| 可能人人看人人摸| 试看日韩黄片| 久久人妻少妇| 九九热五区| 一区二区日韩欧美久久| 国产在线观看91精品一区| 色色九区| 日韩青久久| 亚州人妻| 九九九网页| 长长久久曰曰夜夜成人网| 日韩黄色av中文字幕| 亚洲97| 精品免费囯产一区二区三区 | 性色生活片久久毛片婬片免费放女人一级毛片 | 亚洲天堂人人妻| 伊人影院在线理论播放| 在线另类| 啪啪啪精品视频| 国产在线强奸视频| 国内毛片欧美香蕉精品| 中文字幕熟女人妻丝袜丝| 亚洲宗合网| 欧美亚洲日韩16色| 日韩在线视频1234| 久久性爱视频| 久久精品99| 日本三级日本三级99| 欧美性爱中文字幕无线码| 久久精品国产99精品亚洲蜜...| 国产成年女黄特黄| 一二三区精品视频| 国产搭汕a级片| 国产精品农村妇女精品| 欧美色日| 九九九精品色乱九九九| 久久久久久久久久久久久久久久9 亚洲成人妻日韩在线 | 330Dv国产女人终合视频极品人与兽| 午夜偷拍久久熟女| 人人操人人搞人人草| 久久社区一区二区三区| 性在久久久久久| 在线无码视频| 金莲网址| 婷婷五月天激情网| 人人操人人搞人人草| 国产高清MV操逼视频| 在线综合色| 国产一区二区三区精品观看啪| 国产 日韩 欧美高清| 精品成人动漫一区二区| 99久久e免费热视| 青青操综合网| 黄网色一区二区三区四区精品| 色色色色电影网| 性影在线视频| 日韩av影片在线观看| 婷婷在线精品|