nyoj195飛翔(動態規劃)

2021-07-31 08:41:20 字數 1093 閱讀 2736

時間限制:

3000 ms  |  記憶體限制:

65535 kb

難度:4

描述

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

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

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

輸入

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

每組測試資料的首行為n,m(0輸出

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

樣例輸入

3 231 13 21 2
樣例輸出

383
思路:該題由於n,m的資料較大,無法根據模擬鷹的位置來進行動態規劃,可以根據特殊的邊這個線索來解決,先將這些特殊的邊進行排序,然後選取最大的上公升子串行個數,選取的特殊邊越多,那飛翔的距離就會越短,有點類似於求區間最長上公升子串行。

#include#include#include#include#define max(x,y)(x>y?x:y)

using namespace std;

double d=sqrt(100*100+100*100);

int dp[1010];

struct point

p[1010];

int comp(point p1,point p2)

else

printf("%d\n",res);

} return 0;

}

NYOJ 195飛翔 動態規劃

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

nyoj195 飛翔 動態規劃

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

NYOJ 飛翔 動態規劃

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