ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2019南昌icpc网络赛 B

2019-09-08 21:50:24  阅读:252  来源: 互联网

标签:en int 南昌 len icpc vis 2019 include dis


英雄灭火问题忽略了一点丫

一个超级源点的事情,需要考虑周全丫

 

 

 

 

 

 

 

 

 

 

 

2

#include<cstdio>
#include<cstring>
#include<queue>
#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;
#define maxn 1010
#define INF 0x3f3f3f3f
int T, n, m, s, k, c;
struct Node {
	int p;
	int val;
	Node(int _p, int _val) :p(_p), val(_val) {}
};
vector<Node>G[maxn];
void insert(int be, int en, int len) {
	G[be].push_back(Node(en, len));
}
int dis[maxn];
int vis[maxn];
int spfa(int be) {
	queue<int>que;
	memset(vis, 0, sizeof(vis));
	memset(dis, INF, sizeof(dis));
	que.push(be);
	dis[be] = 0;
	while (!que.empty()) {
		int x = que.front();
		que.pop();
		vis[x] = 0;
		for (int i = 0; i < G[x].size(); i++) {
			int p = G[x][i].p;
			if (dis[p] > dis[x] + G[x][i].val) {
				dis[p] = dis[x] + G[x][i].val;
				if (!vis[p]) {
					que.push(p);
					vis[p] = 1;
				}
			}
		}
	}
	return 0;
}
int be, en, len;
int main() {
	scanf("%d", &T);
	while (T--) {
	
		for (int i = 0; i < maxn - 2; i++) G[i].clear();
		scanf("%d%d%d%d%d", &n, &m, &s, &k, &c);
	
		for (int i = 0; i < k; i++) {
			scanf("%d", &be);
			insert(0, be, 0);
		}
		for (int i = 0; i < m; i++) {
			scanf("%d %d %d", &be, &en, &len);
			insert(be, en, len);
			insert(en, be, len);
		}
		spfa(0);
		int ans1 = 0;
		for (int i = 1; i <= n; i++) {
			ans1 = max(ans1, dis[i]);
		}
		int ans2 = 0;
		spfa(s);
		for (int i = 1; i <= n; i++) {
			ans2 = max(ans2, dis[i]);
		}
		if (ans1*c >= ans2) printf("%d\n", ans2);
		else printf("%d\n", ans1);
	}
	return 0;
}

  我老婆

 

标签:en,int,南昌,len,icpc,vis,2019,include,dis
来源: https://www.cnblogs.com/lesning/p/11488675.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有