乙個很不錯的搜尋,剛看到題的時候一直沒明白題意。兩天後,也就是昨天下午終於理解了題意,英語不好 好慚愧
題意:給出乙個圖,門都在邊界上。只能從乙個門進去。選擇耗費的最小時間。
『*』是不能走通的牆
'.'是走廊,不耗費任意時間
'1'-'9'是需耗時1-9才能翻過的牆,如果使用乙個炸毀,則不耗費任意時間
'#'、'a'-'z'是門,可以帶1-26個。#是0個的門。
分析:由題意,需要數作為狀態的乙個屬性【數目不同是不同的走法】。
則圖可以分為兩個搜法:
1》到達」.「的時候不需要耗費時間、。
2》到達「1」,有兩個走法,直接走過去耗時1t,使用,耗時0t,耗費1顆。
這個**除錯了很長時間【恍惚有一下午那麼久】,最後的最後才發現row值沒有每組資料都初始化、、、、、
**:#include #include#include#includeusing namespace std;
char map[101][101];
int state[101][101][27];//狀態陣列
int dis[4][2]=;
int row,col;int ss;
struct info
;queueq;
bool operator<(info a,info b)
void bfs()
} }//搜尋
while(!q.empty())
}else if(map[f.x][f.y]>'0'&&map[f.x][f.y]<='9')
if(state[f.x][f.y][e.k]==-1||state[f.x][f.y][e.k]>e.time+map[f.x][f.y]-'0')//不炸
}else if(map[f.x][f.y]=='$'&&e.time
hdu5616(理解01揹包很好的題目)
這題一看到不就是01揹包嗎?直覺想到對不對!有木有!然而,01揹包我們都是正的掃一遍,這裡需要反的再掃一遍,而且揹包裡面不一定非要儲存背的物體的重量,還可以是記錄這個揹包有沒有用過哈 首先要正的掃一遍,就是物品那端不放砝碼,只在另一端放砝碼,看有多少重量可以放到 這裡記錄的是該重量能否被訪問到,所以...
hdu 1180 詭異的樓梯 搜尋
description hogwarts正式開學以後,harry發現在hogwarts裡,某些樓梯並不是靜止不動的,相反,他們每隔一分鐘就變動一次方向.比如下面的例子裡,一開始樓梯在豎直方向,一分鐘以後它移動到了水平方向,再過一分鐘它又回到了豎直方向.harry發現對他來說很難找到能使得他最快到達目...
50道hdu基礎的搜尋題目
dfs 大部分是直接遞迴列舉,即求滿足約束條件下的解,雖不用剪枝,但也需要 能力。練習遞迴列舉的題目 1241 oil deposits dfs的連通塊個數 1016 prime ring problem 1584 蜘蛛牌 簡單dfs 1426 sudoku killer 數獨 2510 符號三角形...