hdu 1690(Floyed)
Bus System
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 8055 Accepted Submission(s): 2121
of the huge population of China, public transportation is very
important. Bus is an important transportation method in traditional
public transportation system. And it’s still playing an important role
even now.
The bus system of City X is quite strange. Unlike other
city’s system, the cost of ticket is calculated based on the distance
between the two stations. Here is a list which describes the
relationship between the distance and the cost.
Your
neighbor is a person who is a really miser. He asked you to help him to
calculate the minimum cost between the two stations he listed. Can you
solve this problem for him?
To simplify this problem, you can assume
that all the stations are located on a straight line. We use
x-coordinates to describe the stations’ positions.
input consists of several test cases. There is a single number above
all, the number of cases. There are no more than 20 cases.
Each case
contains eight integers on the first line, which are L1, L2, L3, L4, C1,
C2, C3, C4, each number is non-negative and not larger than
1,000,000,000. You can also assume that L1<=L2<=L3<=L4.
Two
integers, n and m, are given next, representing the number of the
stations and questions. Each of the next n lines contains one integer,
representing the x-coordinate of the ith station. Each of the next m
lines contains two integers, representing the start point and the
destination.
In all of the questions, the start point will be different from the destination.
For
each case,2<=N<=100,0<=M<=500, each x-coordinate is between
-1,000,000,000 and 1,000,000,000, and no two x-coordinates will have
the same value.
each question, if the two stations are attainable, print the minimum
cost between them. Otherwise, print “Station X and station Y are not
attainable.” Use the format in the sample.
1 2 3 4 1 3 5 7
4 2
1
2
3
4
1 4
4 1
1 2 3 4 1 3 5 7
4 1
1
2
3
10
1 4
The minimum cost between station 1 and station 4 is 3.
The minimum cost between station 4 and station 1 is 3.
Case 2:
Station 1 and station 4 are not attainable.
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <iostream>
#include <stdlib.h>
using namespace std;
typedef long long ll;
const ll INF =;
const int N = ;
ll graph[N][N];
ll L[],C[];
ll x[N];
ll check(ll dis){
if(dis<=L[]) return C[];
else if(dis>L[]&&dis<=L[]) return C[];
else if(dis>L[]&&dis<=L[]) return C[];
else if(dis>L[]&&dis<=L[]) return C[];
return INF;
}
int main()
{
int tcase;
scanf("%d",&tcase);
int t = ;
while(tcase--){
for(int i=;i<;i++){
scanf("%lld",&L[i]);
}
sort(L,L+);
for(int i=;i<;i++){
scanf("%lld",&C[i]);
}
int n,m;
scanf("%d%d",&n,&m);
for(int i=;i<n;i++){
scanf("%lld",&x[i]);
}
for(int i=;i<n;i++){
for(int j=;j<n;j++){
if(i==j) graph[i][j] = ;
else{
ll dis = abs(x[i]-x[j]);
graph[i][j]=check(dis);
}
}
}
for(int k=;k<n;k++){
for(int i=;i<n;i++){
if(graph[k][i]<INF){
for(int j=;j<n;j++){
graph[i][j] = min(graph[i][j],graph[i][k]+graph[k][j]);
}
}
}
}
printf("Case %d:\n",t++);
while(m--){
int a,b;
scanf("%d%d",&a,&b);
int c = a-,d=b-;
if(graph[c][d]>=INF) printf("Station %d and station %d are not attainable.\n",a,b);
else printf("The minimum cost between station %d and station %d is %lld.\n",a,b,graph[c][d]);
}
}
}
hdu 1690(Floyed)的更多相关文章
- hdu 1690 Bus System(Dijkstra最短路)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1690 Bus System Time Limit: 2000/1000 MS (Java/Others ...
- hdu 1690 构图后Floyd 数据很大
WA了好多次... 这题要用long long 而且INF要设大一点 Sample Input2 //T1 2 3 4 1 3 5 7 //L1-L4 C1-C4 距离和花费4 2 //结点数 询问次 ...
- hdu 1217(Floyed)
Arbitrage Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total S ...
- hdu 1385(Floyed+打印路径好题)
Minimum Transport Cost Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/O ...
- hdu 1181(Floyed)
变形课 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submis ...
- HDU 1690 Bus System
题目大意:给出若干巴士不同价格的票的乘坐距离范围,现在有N个站点,有M次询问,查询任意两个站点的最小花费 解析:由于是多次查询不同站点的最小花费,所以用弗洛伊德求解 时间复杂度(O^3) 比较基础的弗 ...
- hdu 1690 The Balance_母函数
题意:给你n个数,这些数可以互相加或者减,输出在范围[1,sum]里不能通过运算得出的数 思路:套母函数模版 #include <iostream> #include<cstdio& ...
- hdu 1690 Bus System (有点恶心)
Problem Description Because of the huge population of China, public transportation is very important ...
- hdu 1690 Bus System (最短路径)
Bus System Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
随机推荐
- 查询集 QuerySet和管理器Manager
查询集 QuerySet 查询集,也称查询结果集.QuerySet,表示从数据库中获取的对象集合. 当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表): all():返回所有数据. ...
- Java总结 - List实现类ArrayList&LinkedList
本文是根据源码进行学习的,如果我有什么理解不对的地方请多指正,谢谢您 上面基本就是List集合类的类图关系了,图中省略掉了比如Cloneable等标记接口,那么List分别具体的主要实现类有:Arra ...
- docker 学习(1)
Docker与容器和虚拟机 Docker跟虚拟机有什么区别啊?这个问题可以拆成两部分.因为Docker并不是什么完全独创的技术,而是属于很早便有了的容器技术,所以第一个问题就是容器与虚拟机的区别?同属 ...
- Redis实现之链表
链表 链表提供了高效的节点重排能力,以及顺序性的节点访问顺序,并且可以通过增删节点来灵活地调整链表的长度.作为一种常用数据结构,链表内置在很多高级的编程语言里面,因为Redis使用的C语言并没有内置这 ...
- Linux之我有你也有-共享平台NFS服务器搭建
Linux之我有你也有-共享平台NFS服务器搭建 最近因工作需要,所以要搭一个共享的服务器用于存储.实现你有我有大家有的共享的和谐局面.想到了NFS-Network File System.接下来我便 ...
- 【Remove Duplicates from Sorted Array II】cpp
题目: Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? For ex ...
- Windows核心编程小结3
内存映射和堆栈 内存映射文件 内存映射文件可以用于3个不同的目的: 系统使用内存映射文件,以便加载和执行.exe和DLL文件.这可以大大节省页文件空间和应用程序启动运行所需的时间. 可以使用内存映射文 ...
- 成都大学CTF 网络攻防演练平台 WP
web1 输入框那里鼠标右键,审查元素,删除maxlength web2 http://ctf.cdusec.org:8082/web2/?cdusec=tql web3 同上,用火狐hackbar或 ...
- python 列表、元组 详解
python中有6种序列的内置类型,分别为:列表,元组,字符串,Unicode字符串,buffer对象和xrange对象 列表和元组是最常见两种类型. 下面将以列表(list)和元组(tuple)为例 ...
- [python][django学习篇][12]继续设计博客首页,点击博客标题能显示文章的详情
回顾一下开发流程:配置url, 编写视图函数,编写对应模板 配置URL 首页视图匹配的 URL 去掉域名后,是一个空的字符串.每篇文章的详情有着不同的 URL,因此可以设计文章详情页面URl:< ...