题目背景

小明暑假去国外游玩,到了最后一天,却发现自己的钱还不一定够去机场,于是他开始对国外特殊的交通方式进行研究,但是他发现路段的错综复杂使他头脑昏花,于是他打开电脑,希望你去帮助他(不求上进的小明)。

题目描述

小明有m元,他去机场必须使用一种国外特有的交通方式,是这样的:

有n个站点,k种车,每个站点都可以到达特定的一些站点,所用的费用自然也是不同的,每个站点都有着足够的车,可以让你随到随走。现在知道小明在x站点,他要去y站点,以及每个站点到达某些站点的费用(一个站点不是其他站点都可以到),请问以小明手上的钱,能不能到达y站点。

以上在现实中纯属瞎扯[根本没有这种这种方法]

输入输出格式

输入格式:

共k+2行,第一行是三个整数n,m,k,含义如题,第二行是x和y,代表小明所在的站点和目标站点,然后的k行每行都有三个数,a,b,c,代表从a站点到b站点需要花费c元。

输出格式:

两行,如果小明的钱够从x站点到y站点就输出“Yes”,下一行是小明剩余的钱数。

如果x站点无法到达y站点或小明的钱不够去y站点就输出“No”,下一行是以小明现在的钱数能到达的离y站点最近的一个站点。

输入输出样例

输入样例#1:

10 20 18
1 10
1 2 2
1 3 5
1 4 1
2 5 12
2 6 14
3 5 6
3 6 10
3 7 4
4 5 13
4 6 12
4 7 11
5 8 3
5 9 9
6 8 6
6 9 5
7 9 10
8 10 5
9 10 2
输出样例#1:

Yes
1
输入样例#2:

5 5 2
1 3
1 4 5
1 2 5
输出样例#2:

No
2

说明

  • 数据说明
2<=n<=30
1<=k<=50
10<=m<=32767
1<=单次费用<=100
1<=x<y<=n
1<=a<b<=n
  • 样例1说明 从1到3 ans=5

从3到5 ans=11

从5到8 ans=14

从8到10 ans=19

  • 样例2说明

1无法到3

只能到2或4,根据以下注备,输出No'/n'2。

/n=换行符。

  • 注备

如果小明哪都去不了就输出“No”和他所在的站点

如果y=3,小明无法到达3站点,但是却可以到达2和4站点,优先输出2。

a<b,说明序号低的站点可以到达序号高的站点,反之不行

思路:spfa

#include<iostream>
#include<queue>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define MAXN 60
using namespace std;
queue<int>que;
int n,m,k,s,t,tot;
int dis[MAXN],vis[MAXN],ans,maxn=0x7f7f7f7f;
int to[MAXN],head[MAXN],net[MAXN],cap[MAXN];
void add(int u,int v,int w){
to[++tot]=v;
net[tot]=head[u];
cap[tot]=w;
head[u]=tot;
}
void spfa(int x){
memset(vis,,sizeof(vis));
memset(dis,0x3f,sizeof(dis));
while(!que.empty()) que.pop();
que.push(x);
dis[x]=;vis[x]=;
while(!que.empty()){
int now=que.front();
que.pop();
vis[now]=;
for(int i=head[now];i;i=net[i])
if(dis[to[i]]>dis[now]+cap[i]){
dis[to[i]]=dis[now]+cap[i];
if(!vis[to[i]]){
vis[to[i]]=;
que.push(to[i]);
}
}
}
}
int main(){
scanf("%d%d%d",&n,&m,&k);
scanf("%d%d",&s,&t);
for(int i=;i<=k;i++){
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
add(x,y,z);
}
spfa(s);
if(dis[t]<=m){
cout<<"Yes"<<endl<<m-dis[t];
return ;
}
else{
cout<<"No"<<endl;
for(int i=;i<=n;i++)
if(dis[i]<=m)
if(abs(i-t)<maxn){
ans=i;
maxn=abs(i-t);
}
cout<<ans;
}
}

洛谷 U6254 最低费用的更多相关文章

  1. 洛谷P3381 最小费用最大流

    费用流板子 还是一道板子题..先练练手 #include <bits/stdc++.h> #define INF 0x3f3f3f3f #define full(a, b) memset( ...

  2. 洛谷P4014 分配问题(费用流)

    题目描述 有 nn 件工作要分配给 nn 个人做.第 ii 个人做第 jj 件工作产生的效益为 c_{ij}cij​ .试设计一个将 nn 件工作分配给 nn 个人做的分配方案,使产生的总效益最大. ...

  3. 洛谷P4015 运输问题(费用流)

    题目描述 WW 公司有 mm 个仓库和 nn 个零售商店.第 ii 个仓库有 a_iai​ 个单位的货物:第 jj 个零售商店需要 b_jbj​ 个单位的货物. 货物供需平衡,即\sum\limits ...

  4. 洛谷P3381 最小费用最大流模板

    https://www.luogu.org/problem/P3381 题目描述 如题,给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用 ...

  5. 洛谷 [P3381] 最小费用最大流模版

    #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...

  6. 洛谷P4014 分配问题【最小/大费用流】题解+AC代码

    洛谷P4014 分配问题[最小/大费用流]题解+AC代码 题目描述 有 n 件工作要分配给 n 个人做.第 i 个人做第 j 件工作产生的效益为c ij. 试设计一个将 n 件工作分配给 n 个人做的 ...

  7. 洛谷 P4016负载平衡问题【费用流】题解+AC代码

    洛谷 P4016负载平衡问题 P4014 分配问题[费用流]题解+AC代码 负载平衡问题 题目描述 GG 公司有n个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等.如何用最少搬运量可以使 n ...

  8. 洛谷P4003 无限之环(infinityloop)(网络流,费用流)

    洛谷题目传送门 题目 题目描述 曾经有一款流行的游戏,叫做 Infinity Loop,先来简单的介绍一下这个游戏: 游戏在一个 n ∗ m 的网格状棋盘上进行,其中有些小方格中会有水管,水管可能在格 ...

  9. 洛谷 P4012 深海机器人问题【费用流】

    题目链接:https://www.luogu.org/problemnew/show/P4012 洛谷 P4012 深海机器人问题 输入输出样例 输入样例#1: 1 1 2 2 1 2 3 4 5 6 ...

随机推荐

  1. spark 决策树分类算法demo

    分类(Classification) 下面的例子说明了怎样导入LIBSVM 数据文件,解析成RDD[LabeledPoint],然后使用决策树进行分类.GINI不纯度作为不纯度衡量标准并且树的最大深度 ...

  2. 【转】git rebase简介(基本篇)

    原文网址:http://blog.csdn.net/hudashi/article/details/7664631/ 原文: http://gitbook.liuhui998.com/4_2.html ...

  3. HTML5动态时钟

    实现效果 源码可以去github下载 地址:https://github.com/feifeiliu/jsBlock 参考:慕课网动态时钟

  4. js设计模式-享元模式

    享元模式实际上是一种优化模式,目的在于提高系统的性能和代码的效率. 使用享元模式的条件:最重要的条件是网页中必须使用了大量资源密集型对象,如果只会用到了少许这类对象,那么这种优化并不划算.第二个条件是 ...

  5. SwiftUI 官方教程(五)

    SwiftUI官方教程(五) 5. 同时使用 UIKit 和 SwiftUI 至此,我们已准备好创建 map view 了,接下来使用 MapKit 中的 MKMapView 类来渲染地图. 在 Sw ...

  6. WPF 资源管理器 WPF Explorer

    最近项目中有个功能是读取外部设备的中的文件,同时由于项目样式限制,因此需要需要简单实现一个Window资源管理器功能. 由于为了接下来工作更好地完善功能,因此先一步做了一个DEMO用于参照和不断的修正 ...

  7. 6.Renderer Window

    渲染是实时的,所见即所得.同时还可以输出一些统计信息. Pixel Snoop:获取颜色值,同时把该值复制到剪贴板,主要用户是获取颜色值 Wireframe:开启后可以查看3D节点图形骨架 Stati ...

  8. vuex的状态管理模式

    1.store.js Vuex 通过 store 选项,提供了一种机制将状态从根组件“注入”到每一个子组件中(需调用 Vue.use(Vuex)) state:存放数据. mutations:提交状态 ...

  9. Hoj_平方和与立方和

    平方和与立方和 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  10. WebService 服务接口

    天气预报Web服务,数据来源于中国气象局Endpoint :http://www.webxml.com.cn/WebServices/WeatherWebService.asmxDisco :http ...