二哥與女朋友到黃山旅行。他們在山上玩了一整天,發現天色已晚,該回家了。而突然又開始下起了雨,二哥的女朋友表示非常不爽:「都是你搞的,早知道就不和你來了。」
二哥當然不能拋下女朋友不管,並且二哥也不想露宿在山上。於是他攤開被雨淋溼的地圖。
黃山地圖是乙個n*n的矩陣,矩陣中的每一項表示那個地方的高度。二哥與女朋友處在左上角,他們的住處在右下角。在矩陣中可以朝上下左右走,但不能沿著對角線行走。二哥的女朋友不喜歡顛簸,所以二哥需要找到一條回到住處的路徑,使得路徑上的最高點與最低點之差盡量小,而不需要管這條路徑有多長。
第一行:n 接下來n行 n*n的整數矩陣,(0≤每
點的高度
≤110
'>0≤每點的高度≤110
)。 (2≤n
≤100
'>2≤n
≤100
'>2≤n≤100
乙個整數,表示顛簸最小的路徑中最高點與最低點的高度差。
5
1 1 3 6 8
1 2 2 5 5
4 4 0 3 3
8 0 2 3 4
4 3 0 2 1
2
usaco 2003 u s open
#include #includeusing
namespace
std;
struct
node;
int n,map[101][101]; //
地圖邊長及資料
bool bfs(int low,int
);int
main()
high = max -min;
low = 0
;
while (high>low+1
) }
if (flag) high =mid;
else low =mid;
}cout
}bool bfs(int low,int
high) ,to_y[4] = ; //
便於掃瞄四周點
bool state[101][101] = ; //
判斷是否已經掃瞄
queueopen; //
待掃瞄佇列
if (map[1][1]1][1]>high ||map[n][n]
high) return
false
; node open_in,open_out;
open_in.col = 1
; open_in.raw = 1
; open.push(open_in);
state[
1][1] = 1
;
while (open.size()>0
) state[x][y] = 1
; }
}return
false
;}
1008 二哥買期貨
對起始年份和結束年份,可以對每一天單獨判斷 對中間的每個整年,週末總的天數分為兩部分 1.每個整年恰有完整的52個周,所以至少有 2 52 天是週末 2.閏年時,366 7 2,需要判斷12 31和12 30是否為週末即可,平年需要判斷12 31是否為週末 對中間的每個整年,都有11天假日,注意週末...
1003 二哥養細菌
類似bfs擴充套件的思想 將第一代細菌位置入佇列 佇列中細菌到上下左右沒有細菌的位置進行繁殖 更改這些位置的標記 0 1 繁殖出的新一代細菌入棧 如果棧空,結束,否則佇列清空,棧中的新一代細菌入佇列 如果棧空,說明培養皿已經充滿了 題目保證最終能夠充滿培養皿 複雜度o n 1 include 2 3...
1038 二哥的約瑟夫
話說二哥當年學習資料結構的時候遇到了那道猴子報數的題目,其實這就是經典的約瑟夫問題。可是當年的二哥還是個毛頭小子,只會用模擬的方法,而其他同學卻使用了一些令二哥完全摸不到頭腦的方法。二哥一怒之下改了題目 話說當年花果山的猴子要選大王,選舉辦法如下 所有猴子按1 m編號圍坐一圈,二哥站在圈中心,由二哥...