#include <cstdlib>
#include <cstring>
#include <iostream>
#include <cstdio>
#include <cassert> using namespace std;
#define N 505 int a[N];
long long mat[N][N], cnt[N][N], han[N][N]; int main() {
int n, m, s, e;
while (4 == scanf("%d%d%d%d", &n, &m, &s, &e)) {
for (int i = ; i < n; ++i) {
scanf("%d", a + i);
}
memset(mat, -, sizeof mat);
memset(cnt, , sizeof cnt);
memset(han, , sizeof han);
while (m--) {
int x, y, z;
scanf("%d%d%d", &x, &y, &z);
assert(!cnt[x][y]);
mat[x][y] = mat[y][x] = z;
cnt[x][y]++;
cnt[y][x]++;
han[x][y] = a[y];
han[y][x] = a[x];
}
for (int i = ; i < n; ++i) {
for (int j = ; j < n; ++j) {
if (!cnt[j][i])continue;
for (int k = ; k < n; ++k) {
if (!cnt[i][k])continue;
if (!cnt[j][k] || mat[j][k] > mat[j][i] + mat[i][k]) {
mat[j][k] = mat[j][i] + mat[i][k];
cnt[j][k] = cnt[j][i] * cnt[i][k];
han[j][k] = han[j][i] + han[i][k];
} else if (mat[j][k] == mat[j][i] + mat[i][k]) {
cnt[j][k] += cnt[j][i] * cnt[i][k];
han[j][k] = max(han[j][k], han[j][i] + han[i][k]);
}
}
}
}
if (s == e) {
cout << 1 << ' ' << a[s] << endl;
} else {
cout << cnt[s][e] << ' ' << a[s] + han[s][e] << endl;
}
}
return 0;
} /*
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 */

Pat 1003 甲级的更多相关文章

  1. PAT(甲级)2017年秋季考试

    PAT(甲级)2017年秋季考试 D题红黑树待补21/30 大佬的代码,看着想哭,这才是艺术啊 A Cut Integer 模拟题 #include<bits/stdc++.h> usin ...

  2. PAT(甲级)2017年春季考试

    PAT(甲级)2017年春季考试 A.Raffle for Weibo Followers #include<bits/stdc++.h> using namespace std; int ...

  3. PAT 1003我要通过!

    PAT 1003 我要通过! 答案正确"是自动判题系统给出的最令人欢喜的回复.本题属于 PAT 的"答案正确"大派送 -- 只要读入的字符串满足下列条件,系统就输出&qu ...

  4. PAT 1003 我要通过!(20)(代码+思路)

    1003 我要通过!(20)(20 分)提问 "答案正确"是自动判题系统给出的最令人欢喜的回复.本题属于PAT的"答案正确"大派送 -- 只要读入的字符串满足下 ...

  5. 迪杰斯特拉算法——PAT 1003

    本文主要是将我对于我对于迪杰斯特拉算法的理解写出来,同时通过例题来希望能够加深对于算法的理解,其中有错误的地方希望大家指正. 迪杰斯特拉算法 我将这个算法理解成一个局部到整体的算法,这个方法确实越研究 ...

  6. PAT 1003. 我要通过!(20) JAVA

    参考http://blog.csdn.net/bin8632/article/details/50216297 答案正确"是自动判题系统给出的最令人欢喜的回复.本题属于PAT的"答 ...

  7. PAT 1003. 我要通过!(20)

    "答案正确"是自动判题系统给出的最令人欢喜的回复.本题属于PAT的"答案正确"大派送 -- 只要读入的字符串满足下列条件,系统就输出"答案正确&quo ...

  8. PAT 1003

    1003. Emergency (25) As an emergency rescue team leader of a city, you are given a special map of yo ...

  9. PAT 1003. Emergency (25)

    1003. Emergency (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue As an emerg ...

随机推荐

  1. Spring配置中<bean>的id和name属性

    在BeanFactory的配置中,<bean>是我们最常见的配置项,它有两个最常见的属性,即id和name,最近研究了一下,发现这两个属性还挺好玩的,特整理出来和大家一起分享. 1.id属 ...

  2. docker-compose可持续集成之nexus

    什么是 Nexus 概述 Nexus 是一个强大的仓库管理器,极大地简化了内部仓库的维护和外部仓库的访问. 2016 年 4 月 6 日 Nexus 3.0 版本发布,相较 2.x 版本有了很大的改变 ...

  3. nginx出现403 Forbidden错误

    问题描述:将webpack打包的react前端部署到nginx上,发现出现403 Forbidden错误 解决方案:修改nginx.conf文件,添加user root;配置

  4. ASP.NET Core使用Docker-Compose实现多容器应用部署

    一.需求背景 人生苦短,我用.NET Core!前面的<ASP.NET Core使用Docker进行容器化托管和部署>基础课程我们学习了如何使用Docker来部署搭建ASP.NET Cor ...

  5. mysql5.7报错ERROR 1819解决办法

    MySQL5.6.6版本之后增加了密码强度验证插件validate_password,相关参数设置的较为严格. 使用了该插件会检查设置的密码是否符合当前设置的强度规则,若不满足则拒绝设置.影响的语句和 ...

  6. linux shell获取show slave status方法

    linux shell获取show slave status方法<pre>#!/bin/basharray=($(mysql -u数据库账号 -p数据库密码 -e "show s ...

  7. @Value注解无法为static 变量赋值

    使用@Value给静态变量赋值时,出现空指针异常.经了解Spring 不允许/不支持把值注入到静态变量中.所以需要另一种方式为该变量赋值. 需要注意set方法也不要加static修饰符!

  8. 存储过程中的BeginEnd

    存储过程中的BeginEnd和其它语言中的花括号,本身没有事务作用,主要有两个作用1.使语句结果清晰2.语句块作用,比如在 if 后面使用.

  9. IIS 10 PHP 运行环境

    1.下载php for windows  解压到指定目录 https://windows.php.net/download/ 2.安装iis 勾选CGI 3  ,处理映射 4.添加测试站点测试是否已经 ...

  10. docker系列之三:docker实际应用

    以Docker为基础完成持续集成.自动交付.自动部署: 原理: RD推送代码到git 仓库或者svn等代码服务器上面,git服务器就会通过hook通知jenkins. jenkine 克隆git代码到 ...