当前位置:网站首页>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;
}
边栏推荐
- One question per day (2022-07-02) - Minimum refueling times
- 876. 链表的中间结点
- The 300th weekly match of leetcode (20220703)
- 牛客小白月赛7 I 新建 Microsoft Office Word 文档
- php伪原创api对接方法
- “只跑一趟”,小区装维任务主动推荐探索
- 2021 合肥市信息学竞赛小学组
- Summary and sorting of 8 pits of redis distributed lock
- 2022CoCa: Contrastive Captioners are Image-Text Fountion Models
- Wechat reading notes of "work, consumerism and the new poor"
猜你喜欢
如何使用Async-Awati异步任務處理代替BackgroundWorker?
FPGA timing constraint sharing 01_ Brief description of the four steps
MySQL数据库基本操作-DDL | 黑马程序员
联想首次详解绿色智城数字孪生平台 破解城市双碳升级难点
物联网应用技术的就业前景和现状
Bi skills - permission axis
2022CoCa: Contrastive Captioners are Image-Text Fountion Models
Introduction to polyfit software
Comment utiliser async awati asynchrone Task Handling au lieu de backgroundworker?
PolyFit软件介绍
随机推荐
DeFi生态NFT流动性挖矿系统开发搭建
Hough Transform 霍夫变换原理
使用canal配合rocketmq监听mysql的binlog日志
Hough transform Hough transform principle
Is it safe to open an account at Great Wall Securities? How to open an account when buying stocks
Oracle with as ora-00903: invalid table name multi report error
神经网络物联网平台搭建(物联网平台搭建实战教程)
The kth largest element in the array
Have you guys ever used CDC direct Mysql to Clickhouse
2022CoCa: Contrastive Captioners are Image-Text Fountion Models
ftp、sftp文件传输
国元期货是正规平台吗?在国元期货开户安全吗?
MySQL数据库基本操作-DDL | 黑马程序员
Online sql to excel (xls/xlsx) tool
876. 链表的中间结点
Caché WebSocket
Detailed explanation of issues related to SSL certificate renewal
Summary and sorting of 8 pits of redis distributed lock
Use canal and rocketmq to listen to MySQL binlog logs
请教一下 flinksql中 除了数据统计结果是状态被保存 数据本身也是状态吗