题意

给定一些国家,和两个国家间的花费,现在有一些询问,询问每次最多转k次飞机,最小花费

分析

最短路的裸题,跑spfa或者dijsktra什么的都行

多开一维来记录转k次飞机时的最短路是什么(拆点?)

 #include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <map>
#include <queue> using namespace std;
const int maxn=+;
const int maxm=+;
const int INF=;
int T,m,n,sz,q;
map<string,int>name;
string num[maxn];
string s;
int d[maxn][maxn];
int vis[maxn][maxn];
int head[maxn],to[maxm],val[maxm],ecnt,Next[maxm];
struct Node{
int u,cnt;
};
void spfa(int s){
memset(vis,,sizeof(vis));
for(int i=;i<=n;i++)
for(int j=;j<=n+;j++)
d[i][j]=INF;
d[s][]=;
vis[s][]=;
queue<Node>q;
q.push((Node){s,});
while(!q.empty()){
Node x=q.front();q.pop();
int u=x.u,cnt=x.cnt;
vis[u][cnt]=;
for(int i=head[u];i;i=Next[i]){
int v=to[i];
if(d[v][cnt+]>d[u][cnt]+val[i]){
d[v][cnt+]=d[u][cnt]+val[i];
if(!vis[v][cnt+]){
vis[v][cnt+]=;
q.push((Node){v,cnt+});
}
}
}
}
}
void add_edge(int a,int b,int w){
ecnt++;
to[ecnt]=b;
val[ecnt]=w;
Next[ecnt]=head[a];
head[a]=ecnt;
}
int main(){
//freopen("out.txt","w",stdout);
scanf("%d",&T);
for(int t=;t<=T;t++){
if(t!=)printf("\n");
memset(head,,sizeof(head));
printf("Scenario #%d\n",t);
sz=;
ecnt=;
scanf("%d",&n);
for(int i=;i<=n;i++){
cin>>s;
sz++;
name[s]=sz;
num[sz]=s;
}
scanf("%d",&m);
for(int i=;i<=m;i++){
string a,b;
int w;
cin>>a>>b>>w;
add_edge(name[a],name[b],w);
}
spfa(); scanf("%d",&q);
int a;
for(int i=;i<=q;i++){
scanf("%d",&a);
int ans=INF;
for(int j=;j<=min(a,n);j++){
ans=min(ans,d[n][j+]);
}
if(ans>=INF){
printf("No satisfactory flights\n");
}else
printf("Total cost of flight(s) is $%d\n",ans);
}
}
return ;
}

UVA-11280 Flying to Fredericton的更多相关文章

  1. UVA 11280 - Flying to Fredericton SPFA变形

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&c ...

  2. UVa 11280 Flying to Fredericton (DP + Dijkstra)

    题意:给出n(2<=n<=100)个城市之间的m(0<=m<=1000)条航线以及对应的机票价格,要求回答一些询问,每个询问是给出最大停留次数S,求从其实城市Calgary到终 ...

  3. UVA-11280 Flying to Fredericton (dijkstra)

    题目大意:一张有向图,n个节点,m条边,有边权.求从起点到终点在最多经过s个中间节点(不包括始末点)时的最小权和. 题目分析:因为起点和终点是固定的,只需一次dijkstra打出表dis[u][k], ...

  4. 【Uva 11280 飞到弗雷德里顿】

    ·你可以尽情地坐飞机,但停留次数遭到限制. ·英文题,述大意:       给出一张有向图,起点是输入的第一个城市,终点是输入的最后一个城市.给出q个询问,每个询问含一个t,表示 #include&l ...

  5. 1.1.1最短路(Floyd、Dijstra、BellmanFord)

    转载自hr_whisper大佬的博客 [ 一.Dijkstra 比较详细的迪杰斯特拉算法讲解传送门 Dijkstra单源最短路算法,即计算从起点出发到每个点的最短路.所以Dijkstra常常作为其他算 ...

  6. 最短路算法详解(Dijkstra/SPFA/Floyd)

    新的整理版本版的地址见我新博客 http://www.hrwhisper.me/?p=1952 一.Dijkstra Dijkstra单源最短路算法,即计算从起点出发到每个点的最短路.所以Dijkst ...

  7. UVA 590 二十一 Always on the run

     Always on the run Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit ...

  8. UVA - 10057 A mid-summer night&#39;s dream.

    偶数时,中位数之间的数都是能够的(包含中位数) 奇数时,一定是中位数 推导请找初中老师 #include<iostream> #include<cstdio> #include ...

  9. uva 1354 Mobile Computing ——yhx

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGcAAANuCAYAAAC7f2QuAAAgAElEQVR4nOy9XUhjWbo3vu72RRgkF5

随机推荐

  1. Helix Server 支持的文件格式

    比如,对于WMV格式的文件,访问路径可以是:mms://192.168.1.1/mov/music.wmv 对于rm格式的文件rtsp://192.168.1.1/mov/123.rm 但,比如对于格 ...

  2. ubuntu 上的ruby安装

    安装 rbenv git clone git://github.com/sstephenson/rbenv.git ~/.rbenv # 用来编译安装 ruby git clone git://git ...

  3. linux之管道

    1. 进程间通信概述 进程是一个独立的资源分配单元,不同进程之间的资源是独立的,没有关联,不能在一个进程中直接访问另一个进程的资源.进程不是孤立的,不同的进程需要进行信息的交互和状态的传递等,因此需要 ...

  4. asp.net core microservices 架构之eureka服务发现

    一 简介 微服务将需多的功能拆分为许多的轻量级的子应用,这些子应用相互调度.好处就是轻量级,完全符合了敏捷开发的精神.我们知道ut(单元测试),不仅仅提高我们的程序的健壮性,而且可以强制将类和方法的设 ...

  5. Windows下Python安装lxml

    1.下载easy_install的安装包,下载地址:https://pypi.Python.org/pypi/setuptools 我是Windows7,所以直接下载Windows(Simplify) ...

  6. shh整合后web.xml、spring配置文件和struts.xml的内容

    1:web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version=" ...

  7. Oracle cursor_sharing 参数 详解

    一. 官网的说明 http://download.oracle.com/docs/cd/E11882_01/server.112/e17110/initparams042.htm#REFRN10025 ...

  8. numpy之统计函数和布尔数组方法

    统计函数 可以通过numpy的统计函数对整个数组或者某个轴向的数据进项统计计算. 所谓的轴向,其实就是n维向量的某一维.或者说某一行,某一列. sum对数组(向量)中全部或某个轴向的元素求和,长度为0 ...

  9. JAVA中常见异常类

    1. java.lang.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对 ...

  10. java md5 函数

    private static final String md5(final String s) { final String MD5 = "MD5"; try { // Creat ...