题目描述

Bessie 和 Elsie在不同的区域放牧,他们希望花费最小的能量返回谷仓。从一个区域走到一个相连区域,Bessie要花费B单位的能量,Elsie要花费E单位的能量。

如果某次他们两走到同一个区域,Bessie 可以背着 Elsie走路,花费P单位的能量走到另外一个相连的区域,满足P<B+E。

相遇后,他们可以一直背着走,也可以独立分开。

输入输出样例

输入样例#1:

4 4 5 8 8
1 4
2 3
3 4
4 7
2 5
5 6
6 8
7 8
输出样例#1:

22 
3次SPFA就可以了
可以知道,他们在相遇后就不分开了,因为背到终点一定最优
dist1[x]表示从1出发到x最短路
dist2同理

dist3表示到n的最短路
ans=min(dist1[x]*b+dist2[x]*e+dist3[x]*p)
 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct Messi
{
int next,to;
}edge[];
int head[],num,n,m,f[][],ans,dist[],vis[];
void add(int u,int v)
{
num++;
edge[num].next=head[u];
head[u]=num;
edge[num].to=v;
}
void bfs(int x)
{int q[]={},h,t,u,v,i;
q[]=x;h=;t=;
while (h<t)
{
h++;
u=q[h];
vis[u]=;
for (i=head[u];i;i=edge[i].next)
{
int v=edge[i].to;
if (dist[u]+<dist[v])
{
dist[v]=dist[u]+;
if (vis[v]==)
t++,q[t]=v;
}
}
}
// cout<<x<<' ';
// for (i=1;i<=n;i++)
// cout<<dist[i]<<' ';
// cout<<endl;
}
int main()
{int b,e,p,i,u,v;
cin>>b>>e>>p>>n>>m;
for (i=;i<=m;i++)
{
scanf("%d%d",&u,&v);
add(u,v);
add(v,u);
}
memset(dist,/,sizeof(dist));dist[]=;memset(vis,,sizeof(vis));
bfs();
for (i=;i<=n;i++)
f[i][]=dist[i];
memset(dist,/,sizeof(dist));dist[]=;memset(vis,,sizeof(vis));
bfs();
for (i=;i<=n;i++)
f[i][]=dist[i];
memset(dist,/,sizeof(dist));dist[n]=;memset(vis,,sizeof(vis));
bfs(n);
for (i=;i<=n;i++)
f[i][]=dist[i];
ans=2e9;
for (i=;i<=n;i++)
ans=min(ans,f[i][]*b+f[i][]*e+f[i][]*p);
cout<<ans;
}

最新文章

  1. asp.net mvc5 伪静态
  2. iOS TextField用法大全
  3. Replication的犄角旮旯(四)--关于事务复制的监控
  4. MongoDB学习笔记——MongoDB 连接配置
  5. 文件I/O(不带缓冲)之文件共享
  6. ADB Server Didn’t ACK ,failed to Start Daemon 解决方法
  7. 一个好看的Input样式
  8. 实现JQuery_Accordion功能
  9. LCS最大公共子序列问题
  10. libconfig第二篇----两个小例子
  11. 使用Typescript来写javascript
  12. java面试题及答案
  13. 时光轴三之 ExpandableListView版时光轴效果
  14. http 400错误【原】
  15. Socket看法
  16. 简述一下MVC和MVVM
  17. 【ProtoBuffer】windows上安装ProtoBuffer3.1.0 (附已编译资源)
  18. C#正则表达式_简单梳理_Emoji表情字符处理
  19. 『TensorFlow』函数查询列表_数值计算
  20. django 路由系统中name应用

热门文章

  1. 网络1711c语言第3次作业总结
  2. linux服务器操作系统,在相同环境下,哪个做lamp服务器更稳定点?哪个版本更稳定?
  3. 《javascript设计模式与开发实践》阅读笔记(14)—— 中介者模式
  4. PCB名詞解釋:通孔、盲孔、埋孔(转载)
  5. SpringMVC之数据传递一
  6. Ubuntu16.04 + Zabbix 3.4.7 邮件报警设置
  7. 快速搭建ssm框架
  8. JMeter入门(01)概念和样例
  9. 表单提交中的input、button、submit的区别
  10. Java8新特性第3章(Stream API)