#include <iostream>
#include <stdio.h>
#include <queue>
#include <string.h>
using namespace std;
#define inf 10000000000000
__int64 map[101][101];
__int64 d[101];
bool hash[101];
__int64 a[101];
__int64 l1,l2,l3,l4,c1,c2,c3,c4;
__int64 n,m;
__int64 start,end;
struct node{
__int64 adj;
__int64 weight;
node* next;
}node,*pnode;
struct Heap{
bool operator<(Heap T)const{
return T.dis < dis;
}
__int64 x;
__int64 dis;
};
priority_queue<Heap> Q;
__int64 bfs(){
__int64 i;
for(i = 0 ; i <= 100 ; ++i){
hash[i] = 0;
d[i] = inf;
}
Heap min,in;
while(!Q.empty()){
Q.pop();
}
in.x = start;
in.dis = 0;
d[start] = 0;
Q.push(in);
while(!Q.empty()){
min = Q.top();
Q.pop();
if(min.x == end){
return min.dis;
}
if(hash[min.x]){
continue;
}
hash[min.x] = true;
for(i = 1 ; i <= n ; ++i){
if(d[i] > d[min.x] + map[min.x][i] && !hash[i]){
in.x = i;
in.dis = map[min.x][i] + d[min.x];
d[i] = in.dis;
Q.push(in);
}
}
}
return -1;
}
int judge(int dis){
if(dis > 0 && dis <= l1){
return c1;
}else{
if(dis >l1 && dis <= l2){
return c2;
}else{
if(dis > l2 && dis <=l3){
return c3;
}else if(dis > l3 && dis <= l4){
return c4;
}else{
return -1;
}
}
}
}
int main(){
int t;
scanf("%d",&t);
int p = 1;
while(t--){
scanf("%I64d%I64d%I64d%I64d%I64d%I64d%I64d%I64d",&l1,&l2,&l3,&l4,&c1,&c2,&c3,&c4);
scanf("%I64d%I64d",&n,&m);
__int64 i,j;
for(i = 1 ; i <= n ; ++i){
for(j = 1 ; j <= n ; ++j){
map[i][j] = inf;
}
}
for(i = 1 ; i <=n ; ++i){
scanf("%I64d",&a[i]);
}
for(i = 1 ; i <= n ; ++i){
for(j = 1 ; j <= n ; ++j){
// a[i] - a[j] :计算站于占志坚的距离
__int64 l = a[i] - a[j];
if( l < 0){
l = -l;
}
//judge(l) :计算这个距离所对应的费用
__int64 s = judge(l);
if(s < 0){
s = inf;
}
map[i][j] = s;
map[j][i] = s;
}
}
printf("Case %d:\n",p++);
for(i = 1 ; i <= m ; ++i){
scanf("%I64d%I64d",&start,&end);
bfs();
if(d[end] == inf){
printf("Station %I64d and station %I64d are not attainable.\n",start,end);
}else{
printf("The minimum cost between station %I64d and station %I64d is %I64d.\n",start,end,d[end]);
}
}
}
}
hdu 1690(简洁版)
原创CAIHONGSHIJIE6 博主文章分类:acm ©著作权
©著作权归作者所有:来自51CTO博客作者CAIHONGSHIJIE6的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
hdu 1690 Bus System(最短路)
hdu 1690 Bus System
#include #define i++ -
artTemplate 简洁语法版
artTemplate 简洁语法版
artTemplate 简洁语法版 -
线程池简洁版
每个人有自己的生活方式,每个人有自己对待感情的态度使用线程池的好处降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁
java jvm juc 后端 线程池 -
hdu 1690 Bus System (Floyd,spfa 没一直wa)
小记:我开始写的spfa,然后一直wa。。。后来改成Floyd,
#include #define ios