题意

给定一些国家,和两个国家间的花费,现在有一些询问,询问每次最多转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. linux下json库的编译及例程

    .下载JsonCpp http://sourceforge.net/projects/jsoncpp/files/ .下载scons http://sourceforge.net/projects/s ...

  2. php之opcodes

    opcode是一种php脚本编译之后的语言. 例如: <?php echo "Hello World"; $a = 1 + 1; echo $a; ?> php执行这段 ...

  3. 机器学习(八)—Apriori算法

    摘要:本文对Apriori算法进行了简单介绍,并通过Python进行实现,进而结合UCI数据库中的肋形蘑菇数据集对算法进行验证. “啤酒与尿布”的例子相信很多人都听说过吧,故事是这样的:在一家超市中, ...

  4. MYSQL中防止插入重复记录的解决方案(无重复值更新)

    说明:一般我们使用MYSQL插入记录时,类似于这样的语句: insert into table_name(email,phone,user_id) values(‘test9@163.com’,’99 ...

  5. linux之文件操作

    1. 文件操作思维导图 2. linux系统目录结构及简单说明 linux目录图: root --- 启动Linux时使用的一些核心文件.如操作系统内核.引导程序Grub等. home --- 存储普 ...

  6. Jam的计数法

    Jam的计数法 题目描述 Description Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩.在他的计数法中,每个数字的位数 ...

  7. 对django整个网站搭建文件的总结

    1.比方说现在是写一个使用HTTP 2.0的HTTP服务器,在不改变现有程序配置的情况下,需要重新编译HTTP服务器,比方说,用的是Nginx服务器,需要隐藏服务器版本,如果想要小绿锁 也就是网站安全 ...

  8. 对实体 "useSSL" 的引用必须以 ';' 分隔符结尾。

    <property name="connection.url">jdbc:mysql://127.0.0.1/cache?useUnicode=true&cha ...

  9. 常用map总结

    Map map = new HashMap(); Iterator it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry e ...

  10. MyBatis缓存结构

    Mybatis Cache结构图: CacheKey(statementId, sql, sqlParams,other). 上图展示了Mybatis Cache的结构: 1)每个Mapper对应一块 ...