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 ...
随机推荐
- STM32的四种输出模式(转载)
1.普通推挽输出(GPIO_Mode_Out_PP): 使用场合:一般用在0V和3.3V的场合.线路经过两个P_MOS 和N_MOS 管,负责上拉和下拉电流. 使用方法:直接使用 输出电平 ...
- JVM内存管理:深入Java内存区域与OOM
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来. 概述: 对于从事C.C++程序开发的开发人员来说,在内存管理领域,他们即是拥有最高权力的皇帝 ...
- luogu2023 [AHOI2009]维护序列
线段树加乘懒标记裸题. #include <iostream> #include <cstdio> using namespace std; typedef long long ...
- Session超时和莫名丢失的原因与处理办法
原因: 改动global.asax,Web.config,bin目录里的东西,导致Web Applicatioin重启. 有些杀毒软件会去扫描你的Web.config文件,也会导致Session丢失. ...
- 【Partition List】cpp
题目: Given a linked list and a value x, partition it such that all nodes less than x come before node ...
- 启用hyper后无法打开vmware
十万火急,想办法先让虚拟机能够打开,毕竟经常用. 网上看了无数教程都是让在控制面板中关闭hyper-v,然而并没有用. 找了好久说是不能那样关闭,得用指令.管理员运行powershell,输入下列指令 ...
- 批量自动修改windows系统时间
windows下测试时,也许你的系统有一个功能,需要将服务器时间改到未来的某一天,但由于每一天可能都有定时的任务要走,所以直接改到未来某一天,可能系统或数据会不正常,需要一天一天改直到那一天. 如果人 ...
- LeetCode——Problem2:Add Two Numbers
这又过了一周了,总感觉刷这个好花时间呀.每次都一两个小时.让我不好安排时间.应该是我太菜了.对,没错,就是这样 1.题目 You are given two non-empty linked list ...
- sql2008查看备份进度
SELECT session_id, request_id, start_time, status, command, sql_handle --,statement_start_offset, st ...
- [oldboy-django][6其他]备份数据库和导入数据库
# 备份数据库 - 简单备份 mysqldump -uroot -pec494904 ecmangent-mobile > /tmp/backfile.sql 表结构+数据 - --opt my ...