1459 迷宫游戏 

基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题

 收藏

 关注

你来到一个迷宫前。该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间,你就可以得到这个分数。还有若干双向道路连结这些房间,你沿着这些道路从一个房间走到另外一个房间需要一些时间。游戏规定了你的起点和终点房间,你首要目标是从起点尽快到达终点,在满足首要目标的前提下,使得你的得分总和尽可能大。现在问题来了,给定房间、道路、分数、起点和终点等全部信息,你能计算在尽快离开迷宫的前提下,你的最大得分是多少么?

Input

第一行4个整数n (<=500), m, start, end。n表示房间的个数,房间编号从0到(n - 1),m表示道路数,任意两个房间之间最多只有一条道路,start和end表示起点和终点房间的编号。
第二行包含n个空格分隔的正整数(不超过600),表示进入每个房间你的得分。
再接下来m行,每行3个空格分隔的整数x, y, z (0<z<=200)表示道路,表示从房间x到房间y(双向)的道路,注意,最多只有一条道路连结两个房间, 你需要的时间为z。
输入保证从start到end至少有一条路径。

Output

一行,两个空格分隔的整数,第一个表示你最少需要的时间,第二个表示你在最少时间前提下可以获得的最大得分。

Input示例

3 2 0 2
1 2 3
0 1 10
1 2 11

Output示例

21 6
#include<iostream>
#include<string.h>
#include<algorithm>
#define inf 9999999
using namespace std;
int len[666][666],val[666],dis[666],sc[666];
bool vis[666];
int n,st,ed;
void dijsk()
{
for(int i=0;i<n;i++)
dis[i]=len[st][i],sc[i]=val[i]+val[st];
//初始化:距离为和起点的直接距离,分数为起点和该点分数的和
dis[st]=0;
sc[st]=val[st];
memset(vis,0,sizeof(vis));
vis[st]=1;
for(int k=0;k<n;k++)
{
int mi=inf,id=-1;
for(int i=0;i<n;i++)
if(!vis[i]&&mi>dis[i])
mi=dis[i],id=i;
if(id==-1)
break;
vis[id]=1;
for(int i=0;i<n;i++)
{
if(dis[i]>dis[id]+len[id][i])
dis[i]=dis[id]+len[id][i],
sc[i]=sc[id]+val[i];
else if(dis[i]==dis[id]+len[id][i])
sc[i]=max(sc[i],sc[id]+val[i]);
}
}
printf("%d %d\n", dis[ed],sc[ed]);
}
int main()
{
int m;
while(scanf("%d%d%d%d",&n,&m,&st,&ed)!=EOF)
{
for(int i=0;i<n;i++){
scanf("%d",&val[i]);
for(int j=0;j<n;j++)
len[i][j]=inf;
}
while(m--){
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
len[x][y]=len[y][x]=z;
}
dijsk();
}
return 0;
}

51 NOd 1459 迷宫游戏 (最短路径)的更多相关文章

  1. 51nod 1459 迷宫游戏 (最短路径—Dijkstra算法)

    题目链接 中文题,迪杰斯特拉最短路径算法模板题. #include<stdio.h> #include<string.h> #define INF 0x3f3f3f3f ],v ...

  2. 51nod 1459 迷宫游戏【最短路拓展】

    1459 迷宫游戏 基准时间限制:1 秒 空间限制:131072 KB   你来到一个迷宫前.该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间,你就可以得到这个分数.还有若干双向道路连 ...

  3. 51nod 1459 迷宫游戏(dij)

    题目链接:51nod 1459 迷宫游戏 dij裸题. #include<cstdio> #include<cstring> #include<algorithm> ...

  4. 51nod 1459 迷宫游戏 dijkstra模板

    链接:迷宫游戏 问题 - 51Nod  http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1459 1459 迷宫游戏  基准 ...

  5. 51 Nod 1430 奇偶游戏(博弈)

    1430 奇偶游戏 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 160 难度:6级算法题 收藏 关注 有n个城市,第i个城市有ai个人.Daenery ...

  6. 51 Nod 1070 Bash游戏v4(斐波那契博弈)

    这题的证明看不太懂,日后再重做... 1070 Bash游戏 V4  基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 有一堆石子共有N个.A B两个 ...

  7. 51 Nod 1066 Bash游戏

    1066 Bash游戏  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 有一堆石子共有N个.A B两个人轮流拿,A先拿.每次最少拿1颗,最多拿K颗,拿到 ...

  8. 51 Nod 1068 Bash游戏v3

    1068 Bash游戏 V3  题目来源: Ural 1180 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 有一堆石子共有N个.A B两个人轮流 ...

  9. 51 nod 1200 石子游戏V2 FWT

    放模板 #include<bits/stdc++.h> #define N 100005 using namespace std; const int p = 1000000007; in ...

随机推荐

  1. RabbitMQ channel 参数详解

    1.Channel 1.1 channel.exchangeDeclare(): type:有direct.fanout.topic三种durable:true.false true:服务器重启会保留 ...

  2. 记录linux 命令

    1.du:查询文件或文件夹的磁盘使用空间 如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间.这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数 ...

  3. 20165325 2017-2018-2 《Java程序设计》第七周学习总结

    一.教材学习笔记 ch11 1.连接数据库 2.条件与排序查询: where子语句 一般格式:select 字段 from 表名 where 条件 排序:用order by子语句对记录排序 3.更新. ...

  4. linux虚拟机网络服务问题

    这里说一下我遇到的一个网络问题,前天修改了虚拟机的主机名,重启虚拟机之后,使用新的主机名和IP都可以访问虚拟机,但昨天开启虚拟机之后,宿主机使用主机名和IP都不能访问虚拟机,于是,我通过ifconfi ...

  5. Python os.remove() 删除文件

    概述 os.remove() 方法用于删除指定路径的文件.如果指定的路径是一个目录,将抛出OSError. 在Unix, Windows中有效 语法 remove()方法语法格式如下: os.remo ...

  6. 牛客国庆训练,CCPC Camp DAY1 J 倍增,括号匹配

    https://www.nowcoder.com/acm/contest/201#question 题意:中文不翻译了 解法的个人理解: 对于一个合法的区间$[L,R]$ 1.显然其左括号的匹配位置都 ...

  7. Linux系统平均负载3个数字的含义

    越来越多人开始接触Linux操作系统,从VPS到无线路由的刷机系统(如OpenWRT.Tomato),同时也必不可少地会在各式各样的探针和系统监测界面上看到"系统平均负载"或者&q ...

  8. c 中打印格式%g

    C语言中打印float或double类型最常用的是%f格式,最近看书时看到有使用%g格式打印. %f  表示按浮点数的格式打印. 小数点后固定6位 %e 表示以指数形式的浮点数格式输出. %g 表示自 ...

  9. Windows10下Django虚拟环境配置和简单入门实例

    环境win10家庭版64位 + python 3.5 + Django 1.8.2 1.创建virtualenv目录 开始/运行/cmd回车,进入cmd窗口,到自己指定的目录下创建virtualenv ...

  10. python笔记---需求文件requirements.txt的创建及使用

    /******************************************/ 感谢大家一直以来的关注与支持. 本站迁移至 http://qingkang.me 也欢迎大家继续关注. /** ...