51NOD 1459 迷宮遊戲

2022-05-05 19:54:10 字數 884 閱讀 4256

給定乙個圖, 起點以及終點, 每一條邊有兩個引數 \(dis\) , 每個點有乙個引數 \(v\) 求在保證最短路以及最短路情況下的最大 \(\sum v\)

看了直播水一發

這是乙個多關鍵字的最短路(不過第二關鍵字為點權)

那就算複習最短路啦

其做法是跑最短路, 在得到相同最短路長度的時候更新到此點最大 \(v\)

然而這題有乙個說法: 每個點權只能取得一次

因為邊權全部為正, 不存在負環, 因此乙個點不可能經過兩次

故正確性得到確認

#include#include#include#include#include#define ll long long

using namespace std;

int rd()

while(c >= '0' && c <= '9')

return flag * out;

}const int maxn = 100019,inf = 1e9 + 19;

int head[maxn],nume = 1;

struct nodee[maxn << 3];

void add(int u,int v,int dis)

int num, nr, s, t;

int d[maxn], val[maxn], ori[maxn];

bool inq[maxn];

void spfa(int s)

else if(d[u] + dis == d[v])

}} }

int main()

spfa(s);

printf("%d %d\n", d[t], val[t]);

return 0;

}

51NOD1459 迷宮遊戲

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

51Nod 1459 迷宮遊戲

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

51NOD 1459 迷宮遊戲

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