nyoj195 飛翔 動態規劃

2021-08-17 13:55:46 字數 1602 閱讀 4562

鷹最驕傲的就是翱翔,但是鷹們互相都很嫉妒別的鷹比自己飛的快,更嫉妒其他的鷹比自己飛行的有技巧。於是,他們決定舉辦一場比賽,比賽的地方將在乙個迷宮之中。

這些鷹的起始點被設在乙個n*m矩陣的左下角map[1,1]的左下角。終點被設定在矩陣的右上角map[n,m]的右上角,有些map[i,j]是可以從中間穿越的。每乙個方格的邊長都是100公尺。如圖所示:

沒有障礙,也沒有死路。這樣設計主要是為了高速飛行的鷹們不要發現死路來不及調整而發生意外。潘帕斯雄鷹冒著減rp的危險從比賽承辦方戒備森嚴的基地中偷來了施工的地圖。但是問題也隨之而來,他必須在比賽開始之前把地圖的每一條路都搞清楚,從中找到一條到達終點最近的路。(哈哈,笨鳥不先飛也要拿冠軍)但是此鷹是前無古鷹,後無來鷹的吃菜長大的鷹–菜鳥。他自己沒有辦法得出最短的路徑,於是緊急之下找到了學oi的你,希望找到你的幫助。

輸入本題有多組資料。以eof為輸入結束的標誌。

每組測試資料的首行為n,m(0< n,m<=1000000),第2行為k(0< k<=1000)表示有多少個特殊的邊。以下k行為兩個數,i,j表示map[i,j]是可以直接穿越的。

輸出僅一行,1,1–>n,m的最短路徑的長度,四捨五入保留到整數即可

樣例輸入

3 23

1 13 2

1 2樣例輸出

383

二刷:二維lcs問題,佇列優化

#include

#include

#include

#include

#include

using namespace std;

int n, m;

const

int maxn =

1010

;struct point

} point[maxn]

;vector<

int> q;

intmain()

}double ans =

(n + m -

2* q.

size()

)*100+ q.

size()

*sqrt

(20000)+

0.5;

cout <<

(int

)ans << endl;

}}

一刷:dp

#include

#include

#include

#include

#include

using namespace std;

#define maxn 1010

int dp[maxn]

;int n,m,k;

struct node

node

(int x,

int y):x

(x),

y(y)

}point[maxn]

;int ans =0;

intcomp

(node p1,node p2)

void

deep_programming()

intmain()

return0;

}

NYOJ 195飛翔 動態規劃

描述 鷹最驕傲的就是翱翔,但是鷹們互相都很嫉妒別的鷹比自己飛的快,更嫉妒其他的鷹比自己飛行的有技巧。於是,他們決定舉辦一場比賽,比賽的地方將在乙個迷宮之中。這些鷹的起始點被設在乙個n m矩陣的左下角map 1,1 的左下角。終點被設定在矩陣的右上角map n,m 的右上角,有些map i,j 是可以...

nyoj195飛翔(動態規劃)

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 鷹最驕傲的就是翱翔,但是鷹們互相都很嫉妒別的鷹比自己飛的快,更嫉妒其他的鷹比自己飛行的有技巧。於是,他們決定舉辦一場比賽,比賽的地方將在乙個迷宮之中。這些鷹的起始點被設在乙個n m矩陣的左下角map 1,1 的左下角。終點被設定...

NYOJ 飛翔 動態規劃

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 鷹最驕傲的就是翱翔,但是鷹們互相都很嫉妒別的鷹比自己飛的快,更嫉妒其他的鷹比自己飛行的有技巧。於是,他們決定舉辦一場比賽,比賽的地方將在乙個迷宮之中。這些鷹的起始點被設在乙個n m矩陣的左下角map 1,1 的左下角。終點被設定在矩陣...