2019 ICPC南昌网络赛 B题
英雄灭火问题忽略了一点丫
一个超级源点的事情,需要考虑周全丫




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;
}
我老婆
2019 ICPC南昌网络赛 B题的更多相关文章
- 2019 ICPC 南昌网络赛
2019 ICPC 南昌网络赛 比赛时间:2019.9.8 比赛链接:The 2019 Asia Nanchang First Round Online Programming Contest 总结 ...
- Magic Master(2019年南昌网络赛E题+约瑟夫环)
目录 题目链接 题意 思路 代码 题目链接 传送门 题意 初始时你有\(n\)张牌(按顺序摆放),每一次操作你将顶端的牌拿出,然后按顺序将上面的\(m\)张牌放到底部. 思路 首先我们发下拿走\(1\ ...
- 2019 ICPC 南昌网络赛I:Yukino With Subinterval(CDQ分治)
Yukino With Subinterval Yukino has an array a_1, a_2 \cdots a_na1,a2⋯*a**n*. As a tsundere girl, Yuk ...
- 2019 ICPC上海网络赛 A 题 Lightning Routing I (动态维护树的直径)
题目: 给定一棵树, 带边权. 现在有2种操作: 1.修改第i条边的权值. 2.询问u到其他一个任意点的最大距离是多少. 题解: 树的直径可以通过两次 dfs() 的方法求得.换句话说,到任意点最远的 ...
- 2019 ICPC南京网络赛 F题 Greedy Sequence(贪心+递推)
计蒜客题目链接:https://nanti.jisuanke.com/t/41303 题目:给你一个序列a,你可以从其中选取元素,构建n个串,每个串的长度为n,构造的si串要满足以下条件, 1. si ...
- ACM-ICPC 2019南昌网络赛I题 Yukino With Subinterval
ACM-ICPC 2019南昌网络赛I题 Yukino With Subinterval 题目大意:给一个长度为n,值域为[1, n]的序列{a},要求支持m次操作: 单点修改 1 pos val 询 ...
- ACM-ICPC 2019南昌网络赛F题 Megumi With String
ACM-ICPC 南昌网络赛F题 Megumi With String 题目描述 给一个长度为\(l\)的字符串\(S\),和关于\(x\)的\(k\)次多项式\(G[x]\).当一个字符串\(str ...
- 2019年ICPC南昌网络赛 J. Distance on the tree 树链剖分+主席树
边权转点权,每次遍历到下一个点,把走个这条边的权值加入主席树中即可. #include<iostream> #include<algorithm> #include<st ...
- 2013 ACM/ICPC 长沙网络赛J题
题意:一个数列,给出这个数列中的某些位置的数,给出所有相邻的三个数字的和,数列头和尾处给出相邻两个数字的和.有若干次询问,每次问某一位置的数字的最大值. 分析:设数列为a1-an.首先通过相邻三个数字 ...
随机推荐
- JAVA线程的执行状态统计
jstack `jps|grep Bootstrap|awk '{print $1}'`|grep "java.lang.Thread.State:"|awk '{print $2 ...
- Java练习 SDUT-1132_斐波那契数列
C/C++经典程序训练2---斐波那契数列 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 编写计算斐波那契(Fibon ...
- Python基础:13装饰器
装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的应用有插入日志.性能测试.事务处理等.装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同 ...
- 1月北上广P2P平台之最 平台数成交量现双降
1月北上广P2P平台之最 平台数成交量现双降 今日(2月9日),网贷之家联合盈灿咨询发布了<北上广地区P2P网贷行业2017年1月月报>.月报数据显示,截至2017年1月底,北京.上海 ...
- Python基础10 回顾
从最初的"Hello World",走到面向对象,该回过头来看看,教程中是否遗漏了什么. 我们之前提到一句话,"Everything is Object".那么 ...
- 史上最全的MYSQL备份方法
本人曾经 用过的备份方式有:mysqldump.mysqlhotcopy.BACKUP TABLE .SELECT INTOOUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据文 ...
- 将 vue.js 获取的 html 文本转化为纯文本
我存入数据表中的数据是使用 html 格式,获取数据是使用 vue 获取. 遇到了一个问题,就是界面上显示的数据是 html 格式的,但是我需要它显示纯文本. 怎么做呢?首先在 js 中写一个将 ...
- 异常解决:java.lang.IllegalStateException: Failed to introspect Class
java.lang.IllegalStateException: Failed to introspect Class 异常详情 原因 解决办法 异常详情 Exception encountered ...
- H3C LMI
- Python--day61--Django ORM单表操作之展示用户列表
user_list.html views.py 项目的urls.py文件