当前位置:网站首页>1003 Emergency(25 分)(PAT甲级)
1003 Emergency(25 分)(PAT甲级)
2022-07-04 17:59:00 【相思明月楼】
Problem Description:
As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams in each city and the length of each road between any pair of cities are marked on the map. When there is an emergency call to you from some other city, your job is to lead your men to the place as quickly as possible, and at the mean time, call up as many hands on the way as possible.
Input Specification:
Each input file contains one test case. For each test case, the first line contains 4 positive integers: N (≤500) - the number of cities (and the cities are numbered from 0 to N−1), M - the number of roads, C1 and C2 - the cities that you are currently in and that you must save, respectively. The next line contains N integers, where the i-th integer is the number of rescue teams in the i-th city. Then M lines follow, each describes a road with three integers c1, c2 and L, which are the pair of cities connected by a road and the length of that road, respectively. It is guaranteed that there exists at least one path from C1 to C2.
Output Specification:
For each test case, print in one line two numbers: the number of different shortest paths between C1 and C2, and the maximum amount of rescue teams you can possibly gather. All the numbers in a line must be separated by exactly one space, and there is no extra space allowed at the end of a line.
Sample Input:
5 6 0 2
1 2 1 5 3
0 1 1
0 2 2
0 3 1
1 2 1
2 4 1
3 4 1
Sample Output:
2 4
照着大佬博客敲了一遍,,https://www.liuchuo.net/archives/2359
#include <iostream>
#include <algorithm>
using namespace std;
int n, m, c1, c2;
int e[510][510], weight[510], dis[510], num[510], w[510];
bool visit[510];
const int inf = 999999;
int main() {
scanf("%d %d %d %d", &n, &m, &c1, &c2);
for(int i = 0; i < n; i++) {
scanf("%d", &weight[i]);
}
fill(e[0], e[0]+510*510, inf);
fill(dis, dis+510, inf);
int x, y, v;
for(int i = 0; i < m; i++) {
scanf("%d %d %d", &x, &y, &v);
e[x][y] = e[y][x] = v;
}
dis[c1] = 0;
w[c1] = weight[c1];
num[c1] = 1;
for(int i = 0; i < n; i++) {
int u = -1, minn = inf;
for(int j = 0; j < n; j++) {
if(visit[j] == false && dis[j] < minn) {
u = j;
minn = dis[j];
}
}
if(u == -1) break;
visit[u] = true;
for(int v = 0; v < n; v++) {
if(visit[v] == false && e[u][v] != inf) {
if(dis[u] + e[u][v] < dis[v]) {
dis[v] = dis[u] + e[u][v];
num[v] = num[u];
w[v] = w[u] + weight[v];
} else if(dis[u] + e[u][v] == dis[v]) {
num[v] = num[v] + num[u];
if(w[u] + weight[v] > w[v]) {
w[v] = w[u] + weight[v];
}
}
}
}
}
printf("%d %d\n", num[c2], w[c2]);
return 0;
}
边栏推荐
- 《工作、消费主义和新穷人》的微信读书笔记
- FPGA时序约束分享01_四大步骤简述
- 小发猫物联网平台搭建与应用模型
- Comment utiliser async awati asynchrone Task Handling au lieu de backgroundworker?
- 26. Delete the duplicate item C solution in the ordered array
- Explore the contour drawing function drawcontours() of OpenCV in detail with practical examples
- How test engineers "attack the city" (Part 2)
- Send and receive IBM WebSphere MQ messages
- Download the first Tencent technology open day course essence!
- The latest progress of Intel Integrated Optoelectronics Research promotes the progress of CO packaging optics and optical interconnection technology
猜你喜欢
MySQL数据库基本操作-DDL | 黑马程序员
DeFi生态NFT流动性挖矿系统开发搭建
使用canal配合rocketmq监听mysql的binlog日志
2022CoCa: Contrastive Captioners are Image-Text Fountion Models
关于判断点是否位于轮廓内的一点思考
Nebula importer data import practice
Summary and sorting of 8 pits of redis distributed lock
LM10丨余弦波动顺势网格策略
大div中有多个div,这些div在同一行显示,溢出后产生滚动条而不换行
神经网络物联网应用技术学什么
随机推荐
Qt实现界面滑动切换效果
Using SSH
在线文本行固定长度填充工具
勾股数规律(任意三个数能够满足勾股定理需要满足的条件)
Crawler (6) - Web page data parsing (2) | the use of beautifulsoup4 in Crawlers
每日一题(2022-07-02)——最低加油次数
Send and receive IBM WebSphere MQ messages
HDU 1097 A hard puzzle
Summary and sorting of 8 pits of redis distributed lock
在线SQL转Excel(xls/xlsx)工具
指定输出的字符集
偏移量函数及开窗函数
整理混乱的头文件,我用include what you use
Generate XML elements
请教一下 flinksql中 除了数据统计结果是状态被保存 数据本身也是状态吗
2014合肥市第三十一届青少年信息学奥林匹克竞赛(小学组)试题
2022CoCa: Contrastive Captioners are Image-Text Fountion Models
Leetcode ransom letter C # answer
Pointnet/Pointnet++点云数据集处理并训练
Safer, smarter and more refined, Chang'an Lumin Wanmei Hongguang Mini EV?