codevs 4052 黎恒健大战YJY
现在,黎恒健与YJY由于身处异地,非常迫切地想在最短的时间内相遇,然后干一架。但是由于双方都在努力地编程序想干掉对方,所以他们希望你来帮他们找到一个最好的方案使得相遇的时间最短。
在此我们定义"相遇"为:两个人皆在同一个有编号的星球上就可以了,并且这两个人均可以站在原地等另外一个人。也就是说,在这里我们不考虑两人在宇宙中间相遇。
输入数据第一行:N和M(用空格隔开) 表示这是一个N个点的图并且有M条边
第二行到第M+1行 为这个图的详细信息。
每行共有被空格隔开的三个数:a b c。表示编号为a的星球到编号为b的星球
有一个双向边,并且要过这条双向边所需要花费的时间为c。
最后一行有两个数:Y和T,Y表示黎恒健所在星球(也就是月球),T表示YJY所处的
星球(也就是天狼星)
输出只有一行,D,表示二者"相遇"的最短时间。当然,如果无法相遇则输出"They are all died!"
3 3
1 2 1
2 3 1
1 3 1
1 3
1
[数据范围]每组都是n=5000 m=5000 并且保证运算过程中的所有值都不会超过117901063
#include <cstring>
#include <cstdio>
#include <queue>
#define N 5005
using namespace std;
bool vis[N];
int n,m,S,T,cnt,ans=0x7fffffff,far[][N],to[N<<],val[N],head[N],nextt[N<<];
struct node
{
int x,y;
bool operator<(node a)const
{
return y>a.y;
}
};
priority_queue<node>q;
void dijkstra(int s,int *dis)
{
memset(vis,,sizeof(vis));
for(int i=;i<=n;++i) dis[i]=0x7fffffff;
dis[s]=;
q.push((node){s,dis[s]});
for(node now;!q.empty();)
{
now=q.top();q.pop();
if(vis[now.x]) continue;
vis[now.x]=true;
for(int i=head[now.x];i;i=nextt[i])
{
int v=to[i];
if(dis[v]>dis[now.x]+val[i])
{
dis[v]=dis[now.x]+val[i];
if(!vis[v]) q.push((node){v,dis[v]});
}
}
}
}
inline int min(int a,int b) {return a>b?b:a;}
inline int max(int a,int b) {return a>b?a:b;}
inline void ins(int u,int v,int w)
{
nextt[++cnt]=head[u];to[cnt]=v;val[cnt]=w;head[u]=cnt;
nextt[++cnt]=head[v];to[cnt]=u;val[cnt]=w;head[v]=cnt;
}
int main(int argc,char *argv[])
{
scanf("%d%d",&n,&m);
for(int a,b,c;m--;)
{
scanf("%d%d%d",&a,&b,&c);
ins(a,b,c);
}
scanf("%d%d",&S,&T);
dijkstra(S,far[]);
dijkstra(T,far[]);
for(int i=;i<=n;++i) ans=min(ans,max(far[][i],far[][i]));
ans!=0x7fffffff?printf("%d\n",ans):printf("They are all died!");
return ;
}
codevs 4052 黎恒健大战YJY的更多相关文章
- codevs 3289 花匠
题目:codevs 3289 花匠 链接:http://codevs.cn/problem/3289/ 这道题有点像最长上升序列,但这里不是上升,是最长"波浪"子序列.用动态规划可 ...
- 3D坦克大战游戏源码
3D坦克大战游戏源码,该游戏是基于xcode 4.3,ios sdk 5.1开发.在xcode4.3.3上完美无报错.兼容ios4.3-ios6.0 ,一款ios平台上难得的3D坦克大战游戏源码,有2 ...
- codevs 1082 线段树练习 3(区间维护)
codevs 1082 线段树练习 3 时间限制: 3 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 给你N个数,有两种操作: 1:给区 ...
- codevs 1285 二叉查找树STL基本用法
C++STL库的set就是一个二叉查找树,并且支持结构体. 在写结构体式的二叉查找树时,需要在结构体里面定义操作符 < ,因为需要比较. set经常会用到迭代器,这里说明一下迭代器:可以类似的把 ...
- codevs 1576 最长上升子序列的线段树优化
题目:codevs 1576 最长严格上升子序列 链接:http://codevs.cn/problem/1576/ 优化的地方是 1到i-1 中最大的 f[j]值,并且A[j]<A[i] .根 ...
- codevs 1080 线段树点修改
先来介绍一下线段树. 线段树是一个把线段,或者说一个区间储存在二叉树中.如图所示的就是一棵线段树,它维护一个区间的和. 蓝色数字的是线段树的节点在数组中的位置,它表示的区间已经在图上标出,它的值就是这 ...
- codevs 1228 苹果树 树链剖分讲解
题目:codevs 1228 苹果树 链接:http://codevs.cn/problem/1228/ 看了这么多树链剖分的解释,几个小时后总算把树链剖分弄懂了. 树链剖分的功能:快速修改,查询树上 ...
- codevs 1082 线段树区间求和
codevs 1082 线段树练习3 链接:http://codevs.cn/problem/1082/ sumv是维护求和的线段树,addv是标记这歌节点所在区间还需要加上的值. 我的线段树写法在运 ...
- codevs 1052 地鼠游戏
1052 地鼠游戏 http://codevs.cn/problem/1052/ 题目描述 Description 王钢是一名学习成绩优异的学生,在平时的学习中,他总能利用一切时间认真高效地学习,他不 ...
随机推荐
- 《Linux内核设计与实现》读书笔记(二)- 内核开发的准备
在尝试内核开发之前,需要对内核有个整体的了解. 主要内容: 获取内核源码 内核源码的结构 编译内核的方法 内核开发的特点 1. 获取内核源码 内核是开源的,所有获取源码特别方便,参照以下的网址,可以通 ...
- jquery筛选元素函数
jquery筛选元素函数 1.过滤匹配第二个p元素: $("button").click(function(){ $("p").eq(1).css(" ...
- 程序员笔记|详解Eureka 缓存机制
引言 Eureka是Netflix开源的.用于实现服务注册和发现的服务.Spring Cloud Eureka基于Eureka进行二次封装,增加了更人性化的UI,使用更为方便.但是由于Eureka本身 ...
- Educational Codeforces Round 52D(ARRAY,模拟最短路)
#include<bits/stdc++.h>using namespace std;int n,x;int chess[17*17];//记录棋盘上的numberarray<int ...
- 清北刷题冲刺 11-03 p.m
三向城 #include<iostream> #include<cstdio> using namespace std; int n,x,y; int main(){ freo ...
- POJ3274-Gold Balanced Lineup
题目链接:点击打开链接 Gold Balanced Lineup Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 16978 ...
- php保存网络图片到本地
//保存网络图片 function getimg($url) { $state = @file_get_contents($url,0,null,0,1);//获取网络资源的字符内容 if($stat ...
- ROS上利用usb_cam读取摄像头图像
电脑需要有USB3.0的接口 我使用的环境为:Ubuntu16.04LTS ROS版本是kinetic 一.usb_cam驱动的安装 1.创建ROS工作空间 mkdir -p myros/src cd ...
- 关于JSON可能出现的错误,待更/todo
今天写到webAppService.js的时候,用fs模块调用json,发现单引号的json被警告了. json就是一段有格式的字符串,如果数据的封装与解析都是我们自己做的时候,单引号和双引号是没啥关 ...
- 非关系型数据库---Memcached
一.概述 1.Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载: 2.Memcached通过 在内存中缓存对象和数据 来减少读取数据库的次数,从而提升网站的 ...