51Nod 1459 迷宮遊戲

2021-08-05 20:07:00 字數 2127 閱讀 1976

你來到乙個迷宮前。該迷宮由若干個房間組成,每個房間都有乙個得分,第一次進入這個房間,你就可以得到這個分數。還有若干雙向道路鏈結這些房間,你沿著這些道路從乙個房間走到另外乙個房間需要一些時間。遊戲規定了你的起點和終點房間,你首要目標是從起點盡快到達終點,在滿足首要目標的前提下,使得你的得分總和盡可能大。現在問題來了,給定房間、道路、分數、起點和終點等全部資訊,你能計算在盡快離開迷宮的前提下,你的最大得分是多少麼?
input

第一行4個整數n (<=500), m, start, end。n表示房間的個數,房間編號從0到(n - 1),m表示道路數,任意兩個房間之間最多只有一條道路,start和end表示起點和終點房間的編號。

第二行包含n個空格分隔的正整數(不超過600),表示進入每個房間你的得分。

再接下來m行,每行3個空格分隔的整數x, y, z (0 輸入保證從start到end至少有一條路徑。

output

一行,兩個空格分隔的整數,第乙個表示你最少需要的時間,第二個表示你在最少時間前提下可以獲得的最大得分。

sample input

3 2 0 2

1 2 3

0 1 10

1 2 11

sample output

21 6
#include 

#include

#include

#define inf 0x3f3f3f3f

using

namespace

std;

int n,m,st,ed;

int mp[510][510];

int val_temp[510];

int val[510];

int dis[510];

int vis[510];

void dijkstra()

else

if(dis[j]!=inf&&!vis[j]&&dis[j]==temp&&val_temp[j]>w)

}vis[m]=1;

for(int j=0;jif(!vis[j]&&dis[j]>dis[m]+mp[m][j])

else

if(!vis[j]&&dis[j]!=inf&&dis[j]==dis[m]+mp[m][j])}}

printf("%d %d\n",dis[ed],val_temp[ed]);

}int main()

dijkstra();

return

0;}

#include 

#include

#include

using

namespace

std;

const

int inf=0x3f3f3f3f;

int n,m,st,ed;

int score[510];

int sum[510];

int mp[510][510];

int dis[510];

int vis[510];

/*又做了一遍這道題,又掛了

還是沒能記住這些細節問題

1。st,ed,又一次記成了 1,n,所以以後我們的點不要用數字,直接上表示符號

2。開始的點,還是這個比較的點,沒有考慮min_dis=inf ,也就是說還沒有鬆弛,還是無窮遠,我們就給了分

3。記錄的點,我們的加和出現了問題,加的也是比較混亂

*/void dijstra()}}

vis[min_id]=1;

for(int j=0;jif(dis[j]>dis[min_id]+mp[min_id][j])

else

if(mp[min_id][j]!=inf&&dis[j]==dis[min_id]+mp[min_id][j])}}

printf("%d %d\n",dis[ed],sum[ed]);

}int main()

memset(mp,inf,sizeof(mp));

for(int i=1;i<=m;i++)

dijstra();

return

0;}

51NOD1459 迷宮遊戲

1459 迷宮遊戲 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 你來到乙個迷宮前。該迷宮由若干個房間組成,每個房間都有乙個得分,第一次進入這個房間,你就可以得到這個分數。還有若干雙向道路鏈結這些房間,你沿著這些道路從乙個房間走到另外乙個房間需要一些時間。遊戲規定了你的...

51NOD 1459 迷宮遊戲

1459 迷宮遊戲 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 你來到乙個迷宮前。該迷宮由若干個房間組成,每個房間都有乙個得分,第一次進入這個房間,你就可以得到這個分數。還有若干雙向道路鏈結這些房間,你沿著這些道路從乙個房間走到另外乙個房間需要一些時間。遊戲規定了你的...

51nod 1459 迷宮遊戲

你來到乙個迷宮前。該迷宮由若干個房間組成,每個房間都有乙個得分,第一次進入這個房間,你就可以得到這個分數。還有若干雙向道路鏈結這些房間,你沿著這些道路從乙個房間走到另外乙個房間需要一些時間。遊戲規定了你的起點和終點房間,你首要目標是從起點盡快到達終點,在滿足首要目標的前提下,使得你的得分總和盡可能大...