八百標兵奔北坡 DP

2022-09-03 06:36:11 字數 1995 閱讀 6371

對於一張地圖上的點都有乙個h[

i][j

]' role="presentation">h[i

][j]

h[i]

[j]來表示這個地方的高度。現在一些人都想要跑到北邊的乙個山坡上。求出離每乙個人最近的靠北的山。

山: 山的周圍沒有比它更高的地方。(四聯通)

在北邊:

令乙個人的座標為a(a,b),山的座標為b(x,y) ,山在人的北邊當且僅當di

s[a]

[b]=

a−x' role="presentation">dis

[a][

b]=a

−xdi

s[a]

[b]=

a−x

inpu

t' role="presentation">inp

utin

put

5 5 5

1 2 3 4 5

2 3 4 5 1

3 4 5 1 2

4 5 1 2 3

5 1 2 3 4

1 22 3

3 44 5

5 1

ou

tput

' role="presentation">out

puto

utpu

t

pool

babingbaboom

!pool

babingbaboom!1

20

很明顯是一道dp

' role="presentation">dpd

p題目。

畫一下圖就可以發現,其實在北邊的位置就是乙個三角形。 設f

[i][

j]' role="presentation">f[i

][j]

f[i]

[j]為

i' role="presentation">ii行

j' role="presentation">j

j列距離北邊最近山峰的距離。

那麼如果這個位置本身就是乙個山峰,那麼f[

i][j

]=0' role="presentation">f[i

][j]

=0f[

i][j

]=0

如果這個位置不是山峰,那麼由於是乙個三角形,就有f[

i][j

]=mi

n(f[

i−1]

[j+1

],mi

n(f[

i−1]

[j−1

],f[

i−1]

[j])

)+1' role="presentation">f[i

][j]

=min

(f[i

−1][

j+1]

,min

(f[i

−1][

j−1]

,f[i

−1][

j]))

+1f[

i][j

]=mi

n(f[

i−1]

[j+1

],mi

n(f[

i−1]

[j−1

],f[

i−1]

[j])

)+1採用離線演算法,o(

1)' role="presentation">o(1

)o(1

)輸出

#include 

#include

#include

#define inf 99999999

using

namespace

std;

int n,m,k,x,y,a[2001][2001],f[2001][2001];

int main()

return

0;}

八百標兵奔北坡 DP

現在在一張n m的地圖上有k只babingbaboom!對於一張地圖上的點都有乙個h i j 來表示這個地方的高度。現在這些babingbaboom都想要跑到北邊的乙個山坡上。求出離每乙個babingbaboom最近的靠北的山。山 山的周圍沒有比它更高的地方。四聯通 在北邊 令乙個人的座標為a a,...

劍橋建校八百周年的紀念

劍橋大學成立於公元1209年,最早是由一批為躲避毆鬥而從牛津大學 university of oxford 逃離出來的老師建立的。12世紀,方濟會修士 本篤會修士和聖衣會修士,來到這片平坦 潮濕的沼澤區定居,劍橋郡由此誕生。劍橋大學 university of cambridge 勳銜 cantab...

八百客力推雲應用打造中國Salesforce?

本文講的是八百客力推雲應用打造中國salesforce?提起雲計算大量的人焦點似乎集中在 伺服器虛擬化等基礎設施建設層面,雲計算遠不止於此,iaas 基礎設施即服務 的重要性固然不容忽視,但沒有強大的saas 軟體即服務 層服務很難發揮基礎設施更大的價值。經歷了多年的沉澱,雲計算saas層面最為人關...