E - Souvenir(图论典型例题)

E - Souvenir(图论典型例题)_第1张图片

思路:对于有很多询问的题,一般都是先初始化。我们求出每个点到其他点的最短路径以及相同路径下最大的价值和即可。

代码:

#include 
#define pb push_back
#define a first
#define b second
using namespace std;
typedef long long int ll;
typedef pair  P;
typedef unsigned long long ull;

char str[1005];
int main(){
	int n;
	scanf("%d",&n);
	vector  A(n);
	for(int i=0;i > mp(n);
	for(int i=0;i > ans(n);
	vector < vector > vd(n);
	for(int i=0;i dist(n,n+1);
		queue  que;
		dist[i]=0;
		ans[i][i]=A[i];
		que.push(i);
		while(!que.empty()){
			int v=que.front();que.pop();
			for(int j=0;j

你可能感兴趣的:(图论,算法)