給定乙個圖, 起點以及終點, 每一條邊有兩個引數 \(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 難度 基礎題 你來到乙個迷宮前。該迷宮由若干個房間組成,每個房間都有乙個得分,第一次進入這個房間,你就可以得到這個分數。還有若干雙向道路鏈結這些房間,你沿著這些道路從乙個房間走到另外乙個房間需要一些時間。遊戲規定了你的...