hdu 2145(迪杰斯特拉)
zz's Mysterious Present
Time Limit: 10000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 1652 Accepted Submission(s): 371
are m people in n cities, and they all want to attend the party which
hold by zz. They set out at the same time, and they all will choose the
best way they think, but due to someone take a ride, someone drive, and
someone take a taxi, they have different speed. Can you find out who
will get zz's mysterious present? The first one get the party will get
the present . If there are several people get at the same time, the one
who stay in the city which is farther from the city where is zz at
begin will get the present. If there are several people get at the same
time and the distance from the city he is at begin to the city where zz
is, the one who has the larger number will get the present.
first line: three integers n, m and k. m is the total number of the
people, and n is the total number of cities, and k is the number of the
way.(0<n<=300, 0<m<=n, 0<k<5000)
The second line to
the (k+1)th line: three integers a, b and c. There is a way from a to
b, and the length of the way is c.(0<a,b<=n, 0<c<=100)
The (k+2)th line: one integer p(0<p<=n), p is the city where zz is.
The (k+3)th line: m integers. the ith people is at the place p[i] at begin.(0<p[i]<=n)
The (k+4)th line: m integers. the speed of the ith people is speed[i];(0<speed[i]<=100)
All the ways are directed.
1 2 2
1 3 3
2 3 1
3
2
1
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <iostream>
#include <stdlib.h>
#include <math.h>
using namespace std;
const double eps = 1e-;
const int N = ;
const int INF = ;
int graph[N][N];
int p[N];
int speed[N];
int n,m,k;
int low[N];
bool vis[N];
double result[N];
int dijkstra(int s){
for(int i=;i<=n;i++){
low[i] = graph[s][i];
vis[i] = false;
}
low[s] = ;
vis[s] = true;
for(int i=;i<n;i++){
int Min = INF;
for(int j=;j<=n;j++){
if(Min>low[j]&&!vis[j]){
Min = low[j];
s = j;
}
}
vis[s] = true;
for(int j=;j<=n;j++){
if(low[j]>low[s]+graph[s][j]&&!vis[j]){
low[j] = low[s]+graph[s][j];
}
}
}
int flag = false;
///这里只要判断m个人就行了..
for(int i=;i<=m;i++){
if(low[p[i]]<INF) flag =true;
}
if(!flag) return INF;
int id = ;
for(int i=;i<=m;i++){
result[i] = low[p[i]]*1.0/speed[i];
if(result[id]>result[i]) id = i;
else if(fabs(result[id]-result[i])<eps){
if(low[p[id]]<=low[p[i]]) id = i;
}
}
return id;
}
int main()
{
while(scanf("%d%d%d",&n,&m,&k)!=EOF){
for(int i=;i<=n;i++){
for(int j=;j<=n;j++) {
if(i==j) graph[i][j] = ;
else graph[i][j] = INF;
}
}
for(int i=;i<k;i++){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
graph[b][a] = min(c,graph[b][a]); ///全部反向
}
int s;
scanf("%d",&s);
for(int i=;i<=m;i++){
scanf("%d",&p[i]);
}
for(int i=;i<=m;i++){
scanf("%d",&speed[i]);
}
int id = dijkstra(s);
if(id>=INF) printf("No one\n");
else printf("%d\n",id);
}
}
hdu 2145(迪杰斯特拉)的更多相关文章
- hdu 1142(迪杰斯特拉+记忆化搜索)
A Walk Through the Forest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Jav ...
- HDU 3339 In Action(迪杰斯特拉+01背包)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=3339 In Action Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 2544最短路 (迪杰斯特拉算法)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2544 最短路 Time Limit: 5000/1000 MS (Java/Others) Me ...
- HDU 3790(两种权值的迪杰斯特拉算法)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=3790 最短路径问题 Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 1874畅通工程续(迪杰斯特拉算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 畅通工程续 Time Limit: 3000/1000 MS (Java/Others) ...
- hdu 1595 find the longest of the shortest(迪杰斯特拉,减去一条边,求最大最短路)
find the longest of the shortest Time Limit: 1000/5000 MS (Java/Others) Memory Limit: 32768/32768 ...
- hdu 3339 In Action(迪杰斯特拉+01背包)
In Action Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- HDU 2680 最短路 迪杰斯特拉算法 添加超级源点
Choose the best route Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- hdu 1874 畅通工程续(迪杰斯特拉优先队列,floyd,spfa)
畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
随机推荐
- Python Map, Filter and Reduce
所属网站分类: python基础 > 函数 作者:慧雅 原文链接: http://www.pythonheidong.com/blog/article/21/ 来源:python黑洞网 www. ...
- mysql 分类
一.系统变量 说明:变量由系统提供,不用自定义 语法: 1.查看系统变量 show[global | session]varisables like ‘ ’:如果没有显示声明global 还是sess ...
- Python 命令总结
本章内容 pip pip install -r requirement.py(里面写入需要安装的包的名字) pip install django==1.9 #需要安装那个版本 P ...
- RemoteFX
RemoteFX 编辑 RemoteFX是微软在Windows 7/2008 R2 SP1中增加的一项桌面虚拟化技术,使得用户在使用远程桌面或虚拟桌面进行游戏应用时,可以获得和本地桌面一致的效果. 外 ...
- 谋哥:App推广最有效的是自推广
[谋哥每天一原创,第一百五十二篇] 目前市场上,各类App已经覆盖到所有你能想到的领域,并且各个山头也被占得差不多了,网上 的说法就是布局已经完成.如果你想现在再插那么一杠子进去,就得看你的真本事了, ...
- 5、CSS基础part-3
1.CSS列表 ①类型 ul.disc {list-style-type: disc} ②位置 ul.inside {list-style-position: inside} ③列表图像 2.表格
- leetcode 【 Reorder List 】python 实现
题目: Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You must do ...
- LR11生成图表后修正Analysis中显示请求的地址长度过短50个字符的问题
在LR11的安装目录下找到LRAnalysis80.ini文件,在其中的[WPB]下添加SURLSize=255内容. 其次还需要修改LR目录下loader2.mdb文件,将其中的Breakdown_ ...
- 【转】MapReduce:默认Counter的含义
MapReduce Counter为提供我们一个窗口:观察MapReduce job运行期的各种细节数据.今年三月份期间,我曾经专注于MapReduce性能调优工作,是否优化的绝大多评估都是基于这些C ...
- 微信小程序--问题汇总及详解之清空电话号码
wxml: <view class="btns" wx:for="{{phoneList}}" wx:key="id"> < ...