P1713 麥當勞叔叔的難題(90分)

2022-08-24 20:15:14 字數 965 閱讀 4903

話說我們銘銘小朋友成功的回答了爸爸的問題,自然少不了要去索要些獎勵,摳門的爸爸一看報紙,嘿,門口的麥當勞在搞活動,還有免費午餐哦,不過前提條件:得正確回答麥當勞叔叔的問題。

問題是這樣描述的:

「我面前有很多個小朋友,我希望你幫我找到乙個最聰明的小朋友。我心目中最聰明的就是第乙個跑進麥當勞大門的,我希望你幫我找出最聰明和最不聰明的小朋友,可能的最大的到達時間差。但是,小朋友只能按照乙個特殊的規則前進。小朋友面前有乙個n*n的格仔矩陣,左下角的格仔是起點,右上角的格仔是大門。每個孩子每秒可以走向 上、下、左、右 前進乙個格仔,每個格仔只能經過一次。但矩陣中間有一些障礙區,不能通過,只能繞過。」

例如,4*4的矩陣,格仔(1, 1),(2, 3),(4, 2)為障礙區,黑格仔就是一條可行的路線。時間為7。

第1行為兩個整數 n, m (2≤n≤10, 0≤m≤100)。

第2至第m+1行裡,每行描述乙個障礙區。用兩個整數表示x, y (1≤x, y≤n)。

僅1行,那個最大的時間差。

輸入 #1複製

4 3

1 12 3

4 2

輸出 #1複製

4

玄學超時

開三個陣列,記錄當前步數f,最小步數d以及最大步數u

#include

using namespace std;

int n,m,a[102][102],book[105][105],res=0x7ffffff,res1=-1;

int dfs(int now , int x , int y)

if( x == 1 && y == n )

book[x][y]=1;

dfs(now+1,x+1,y);dfs(now+1,x-1,y);dfs(now+1,x,y+1);dfs(now+1,x,y-1);

book[x][y]=0;return 0;

}int main()

P1171 售貨員的難題

資料有更改 某鄉有n個村莊 11輸入格式 村莊數n和各村之間的路程 均是整數 輸出格式 最短的路程。輸入樣例 1 3 0 2 1 1 0 2 2 1 0 輸出樣例 1 3 輸入解釋 3 0 2 1 1 0 2 2 1 0 solution 法一 經典的狀壓dp題目。設f i j 表示某個狀態的最短距...

P1171 售貨員的難題

題目描述 某鄉有nn個村莊 1 1 all 1 路徑總長度最小 除錯日誌 又把 1 i 1 寫成了 1 num 1 小插曲 卡空間卡到阿蘇發稿地方od撒龍捲風no,然後這題常規做法只能開 o 過 經典狀壓dp dp i j 表示 i 狀態下最後乙個點走 j 的最短路徑長度 轉移見 include i...

洛谷 P1171 售貨員的難題

經典的旅行商問題 dp i j 表示從j出發,去遍歷狀態為i的點,並且回到起點的最短路徑長度 初始化 dp 0 i dis i,起點 即從點i哪兒哪兒也不遍歷,直接回到起點的路徑長度 對於每乙個狀態i,列舉要從哪個點出發,去遍歷這個狀態 然後列舉這個點要直接前往的狀態中的某個點 最後輸出dp 總狀態...