鄉村越野滑雪比賽在乙個m×n(1<=m,n<=500)的二維**中進行,每個格仔的海拔在[0,1000000000]之間。滑雪者可以從乙個格仔滑到相鄰格仔,(可以從高處滑到低處,也可以從低處滑到高處),兩者之間的海拔差的絕對值為其難度值。相鄰的格仔是指有公共邊的格仔。一條路徑的難度值是指該路徑上途經相鄰兩格仔的難度值的最大值。現在給出若干個關鍵格仔,求所有這些關鍵格仔相互可達的最小的難度值。
第一行包含兩個整數m、n。
接下來m行,每行包含n個海拔值。
再接下來m行,每行n個數,為1則表示該格仔為關鍵格仔。
輸出格式:
乙個數,表示關鍵格仔相互可達的最小的難度值。
3 520 21 18 99 5
19 22 20 16 26
18 17 40 60 80
1 0 0 0 1
0 0 0 0 0
0 0 0 0 1
std是用的最小生成樹
將格仔看做點,將相鄰的格仔之間的難度係數看做邊權,得到乙個無向圖。
然後求包含給出的關鍵點的最小生成樹.此處的最小生成樹不是對邊求和,而是找邊的最大值。
對每個連通塊記錄其中包含的關鍵點的個數。當某個連通塊包含的關鍵點數等於最大值了,那麼此時就可以退出程式了。
但是!!!
生成樹什麼的完全沒有必要!!!
我們可以直接從乙個關鍵點出發,bfs求它到每個點的最短(最小難度值)路徑,再輸出它們的最大值。
其它點間的的路徑?no need!!!
若有3個關鍵點a,b,c,其中a到b、c的路徑難度值最小分別為x、y
而b->c的可由b->a再a->c,
該線路的最大難度值為max(x,y)
那麼b到c的最小難度值一定不會超過x、y的最大值
bfs還蠻好寫的,就不再詳述了
ps:考試的時候大概想了10分鐘,花20分鐘寫了個大概框架
新增變數,輸入樣例資料,準備除錯
***樣例居然就過了???
膽戰心驚地檢查了半天,果然有問題
難度最大值沒有入隊
那我tm是怎麼過的???
唉交吧交吧
爆零…果然還是有問題
提交至網上測評,執行錯誤
唉慢著這記憶體不對呀 難道陣列開大了
重新提交
ac……
媽的最後附上醜陋的**
#include
#include
#define maxp 501
#define maxn 5000001
using namespace std;
int n,m,x1,y1,z1,x2,y2,z2;
int map[maxp]
[maxp]
;int dp[maxp]
[maxp]
;int que[maxn][3
],head,tail;
int key[maxp*maxp][2
],k,ans;
intzheng
(int a)
intmain()
for(
int i=
1;i<=m;i++
)for
(int j=
1;j<=n;j++)}
que[tail][0
]=key[0]
[0];
que[tail][1
]=key[0]
[1];
tail++
;while
(head!=tail)
} x2-=2
;if(x2>0)
} x2++
; y2++;if
(y2<=n)
} y2-=2
;if(y2>0)
} head++;}
for(
int i=
1;i<=k;i++
) cout<}
動態規劃 skiing
動態規劃 skiing 時間限制 1 sec 記憶體限制 128 mb 提交 34 解決 15 提交 狀態 討論版 第一行表示有幾組測試資料,輸入的第二行表示區域的行數r和列數c 1 r,c 100 下面是r行,每行有c個整數,代表高度h,0 h 10000。後面是下一組資料 輸出最長區域的長度。1...
越野車分類
輕型越野車 豐田bj2,北京212。微型越野車 鈴木jimny 三菱帕傑羅mini 大發特銳。小型城市suv 帕傑羅io 鈴木威特拉 現代途勝 本田crv 路虎神行者。中型越野車 三菱帕傑羅 豐田普拉多 現代特拉卡 長城 哈佛 帕拉丁。大型越野車 豐田陸地巡洋艦 悍馬 吉普大切 賓士g fj酷路澤 ...
用藝術玩轉越野
攬勝極光的設計師芮哲勳曾說 我不是大家通常說的汽車設計師,我想我應該是個創意師 而正在這個暖春,他用實際行動證明了他的話。他的概念設計,無處不震撼著人的心靈,讓人的心處在澎湃的狀態。除了結構,在顏色上面也衝擊著人們的視覺。論是恬靜的羅亞爾河藍,還是張揚的桑給巴爾棕金,11種外觀顏色演繹著各自的風格,...