USACO2010 驮运
来源:互联网 发布:java开发人员要求 编辑:程序博客网 时间:2024/06/02 04:39
此题为一道SPFA的水题,对于不同的起点我们可以求出以其为源点的最短路,之后枚举每一点三段距离之和即可。
#include<cstdio>#include<queue>#include<cstring>using namespace std;typedef long long ll;const int M=4e4+5;const int inf=~0u>>1;ll b,e,p,n,m,top=0;int f[M];ll fb[M],fe[M],fn[M];struct edge{ int nex,to;}a[M*4];inline void add(int u,int v){ a[++top]=(edge){f[u],v}; f[u]=top;}inline void init(){ for(int i=1;i<=n;++i) fb[i]=fe[i]=fn[i]=inf; fb[1]=fe[2]=fn[n]=0;}bool inq[M];queue<int> q1;void spfa(int x){ bool flag; memset(inq,false,sizeof(inq)); q1.push(x); inq[x]=1; while(!q1.empty()){ int u=q1.front(); for(int i=f[u];i;i=a[i].nex){ int v=a[i].to; flag=false; if(x==1){ if(fb[v]>fb[u]+1) fb[v]=fb[u]+1,flag=true; } else if(x==2){ if(fe[v]>fe[u]+1) fe[v]=fe[u]+1,flag=true; } else if(x==n){ if(fn[v]>fn[u]+1) fn[v]=fn[u]+1,flag=true; } if(flag){ if(!inq[v]){ inq[v]=1; q1.push(v); } } } q1.pop(); inq[u]=0; }}int main(){ scanf("%lld%lld%lld%lld%lld",&b,&e,&p,&n,&m); int x,y; for(int i=1;i<=m;++i){ scanf("%d%d",&x,&y); add(x,y); add(y,x); } init(); spfa(1); spfa(2); spfa(n); ll ans=inf; for(int i=1;i<=n;++i) //printf("%lld %lld %lld\n",fb[i],fe[i],fn[i]); ans=min(ans,fn[i]*p+fb[i]*b+fe[i]*e); printf("%lld",ans); return 0;}
阅读全文
4 0
- USACO2010 驮运
- 洛谷 [P3110] 驮运
- 【洛谷3110】【USACO14DEC】驮运Piggy Back
- 洛谷 P3110 [USACO14DEC]驮运Piggy Back spfa
- Usaco2010 Dec Treasure Chest
- 【bzoj1828】[Usaco2010 Mar]
- Usaco2010 Dec Treasure Chest
- chocolate giving[usaco2010 Feb]
- bzoj1916[Usaco2010 Open]冲浪
- bzoj1785 [Usaco2010 Jan]telephone
- [Usaco2010]Chocolate Eating
- 【bzoj2016】[Usaco2010]Chocolate Eating
- [Usaco2010 Mar]balloc 农场分配
- BZOJ 1785 [Usaco2010 Jan]telephone
- bzoj2100 [Usaco2010 Dec]Apple Delivery
- bzoj2014 [Usaco2010 Feb]Chocolate Buying
- bzoj2015 [Usaco2010 Feb]Chocolate Giving
- [BZOJ2015][Usaco2010 Feb]Chocolate Giving
- UML
- 连接mysql服务器出现 10038
- 牛客网 求一个整数可以由多少素数对组成
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 >
- CentOS 7 安装 netmap
- USACO2010 驮运
- Today Extension
- oracle ddl
- android进程/线程的迷思
- 嵌入式Linux驱动笔记(十一)------i2c设备之mpu6050驱动
- 机器学习入门概念--心血总结--史上最强--入门必读--回味无穷
- 总结const的主要作用
- 【编程题】黑白卡片
- SQLServer2008修改数据库默认密码