·你可以尽情地坐飞机,但停留次数遭到限制。

·英文题,述大意:

      给出一张有向图,起点是输入的第一个城市,终点是输入的最后一个城市。给出q个询问,每个询问含一个t,表示中途最多经过个城市的情况下,起点到终点的最短路径长度(即费用)。

·分析:

     经过的点的次数被限制,我们不禁想到使用二元组:(u,t)来表示从起点到节点u最多途径t个点(包括起点)时的最短路径长度。

·BellMan-Ford算法的精髓:枚举每条边,对该边的两点进行路径更新。不要学习了SPFA就忘记了它是哪里来的。在这个算法中,为了保证找到最短路,需要反复更新n-1次。如果我们只更新t次呢(即1~n的循环进行t次)?那么可以使得一个点的从起点到它最优路径只经过t个点,这与我们的需要完美契合。

              

·我们只需要枚举从小到大停留次数t,然后不断地1~n循环,每次完成后记录当前限制下的最短路,那么这样的离线处理就可以完美解决询问了。

·代码来了。

 1 #include<bits/stdc++.h>
2 #define go(i,a,b) for(int i=a;i<=b;i++)
3 #define inf 1000000000
4 using namespace std;string a,b;map<string,int>S;
5 int _,T,n,m,q,u[1002],v[1002],w[1002],d[102][102];
6 int main(){scanf("%d",&T);_=T;while(scanf("%d",&n),T--)
7 {
8 go(i,1,n)cin>>a,S[a]=i,d[i][0]=inf;scanf("%d",&m);d[1][0]=0;
9 go(i,1,m)cin>>a>>b>>w[i],u[i]=S[a],v[i]=S[b];
10 go(t,1,n){go(i,1,n)d[i][t]=d[i][t-1];
11 go(i,1,m)d[v[i]][t]=min(d[v[i]][t],d[u[i]][t-1]+w[i]);}
12 scanf("%d",&q);if(_-T-1)puts("");printf("Scenario #%d\n",_-T);
13
14 while(q--){int t;scanf("%d",&t);
15 d[n][t=min(++t,n)]==inf?puts("No satisfactory flights"):
16 printf("Total cost of flight(s) is $%d\n",d[n][t]);}
17 }return 0;}//Paul_Guderian

·另外,使用Dijkstra算法是否可以呢?可以。同样是用f[u][t]表示到达u点已经途径t个城市。这道题的数据,SPFA、Bellman-Ford更加适合。大米饼代码又不小心达到了排名第一。

那些卑微却炫目的欢愉,只是往昔壮景的悲悯。---汪峰《一瞬间》

【Uva 11280 飞到弗雷德里顿】的更多相关文章

  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. 世界城市 XML

    下载地址:http://www.qlcoder.com/uploads/dd01140921/147988679320159.xml <Location> <CountryRegio ...

  4. JS城市data

    CityData = { "中国": { "北京": ["东城区", "西城区", "崇文区", & ...

  5. JS实现年月日三级联动+省市区三级联动+国家省市三级联动

    开篇随笔:最近项目需要用到关于年月日三级联动以及省市区三级联动下拉选择的功能,于是乎网上搜了一些做法,觉得有一些只是给出了小的案例或者只有单纯的js还不完整,却很难找到详细的具体数据(baidu搜索都 ...

  6. Vue 国家省市三级联动

    在网上查阅一下,基本上是省市区三级联动,国家省市的就只能自己动手了. 样式就根据自己的需要去调整了. JSON数组太长,就折叠放在了后面. 效果图: <!DOCTYPE html> < ...

  7. 世界国省市区SQL语句(mysql)

    CREATE TABLE loctionall ( country VARCHAR(40) , provice VARCHAR(40) , city VARCHAR(40) , CONSTRAINT ...

  8. python爬虫爬取全球机场信息

    --2013年10月10日23:54:43 今天需要获取机场信息,发现一个网站有数据,用爬虫趴下来了所有数据: 目标网址:http://www.feeyo.com/airport_code.asp?p ...

  9. [ An Ac a Day ^_^ ] [kuangbin带你飞]专题八 生成树 UVA 10600 ACM Contest and Blackout 最小生成树+次小生成树

    题意就是求最小生成树和次小生成树 #include<cstdio> #include<iostream> #include<algorithm> #include& ...

随机推荐

  1. 团队作业7——第二次项目冲刺(Beta版本12.05-12.07)

    1.当天站立式会议照片 本次会议内容:1:每个人汇报自己完成的工作.2:组长分配各自要完成的任务. 2.每个人的工作 黄进勇:项目整合,后台代码. 李勇:前台界面优化. 何忠鹏:数据库模块. 郑希彬: ...

  2. 【iOS】swift-文字宽度的计算

    如图所示,需要sectionView的标题宽度可以动态变化 举例说明: 只需在tableView的代理方法 func tableView(tableView: UITableView, viewFor ...

  3. bzoj千题计划165:bzoj5127: 数据校验

    http://www.lydsy.com/JudgeOnline/upload/201712/prob12.pdf 区间的任意一个子区间都满足值域连续 等价于 区间任意一个长为2的子区间都满足值域连续 ...

  4. python小练习之一

    下面的练习本身不难,比如打印1到10,计算1+2+3+...+100 ,最后一个是计算 1-2+3-4...-100 用了类的方法实现 用了列表生成器 用"高级"一丢丢的写法来实现 ...

  5. 基于RNN的音频降噪算法 (附完整C代码)

    前几天无意间看到一个项目rnnoise. 项目地址: https://github.com/xiph/rnnoise 基于RNN的音频降噪算法. 采用的是 GRU/LSTM 模型. 阅读下训练代码,可 ...

  6. centos7.4下离线安装CDH5.7

    (一)安装前的规划 (1)操作系统版本:centos7.4(64bit) [root@hadoop22 etc]# more /etc/centos-release CentOS Linux rele ...

  7. Django REST framework+Vue 打造生鲜超市(二)

    三.Models设计 3.1.项目初始化 (1)进虚拟环境下安装 django2.0.2 djangorestframework和相关依赖mark,filter pillow  图片处理 pip in ...

  8. 聊一聊C#的Equals()和GetHashCode()方法

    博客创建一年多,还是第一次写博文,有什么不对的地方还请多多指教. 关于这次写的内容可以说是老生长谈,百度一搜一大堆.大神可自行绕路. 最近在看Jeffrey Richter的CLR Via C#,在看 ...

  9. VS 2008 开发WinCE程序 编译部署速度慢的解决办法

    1.找到以下文件 C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.CompactFramework.Common.targets 2.用记事本打开该 ...

  10. Spring Cloud的DataRest(二)

    一.创建工程 1.主程序 2.依赖 3.配置 二.案例开发 1.entity 2.repository 三.案例验证 安装postman4.13,启动应用,执行如下案例验证! 1.create - p ...