【BZOJ3891】【Usaco2014 Dec】Piggy Back bfs+动规?

广告:#include <stdio.h>int main(){puts(“转载请注明出处[vmurder]谢谢”);puts(“网址:blog.csdn.net/vmurder/article/details/43970835”);}题解:

bfs出1、2、n到每个点距离 然后枚举求min{B*f[1]+E*f[2]+P*f[n]};

代码:;struct KSD{int v,next;}e[N<<1];int head[N],cnt;inline void add(int u,int v){e[++cnt].v=v;e[cnt].next=head[u];head[u]=cnt;}int f[N][3];queue<int>q;void bfs(int s,int p){q.push(s),f[s][p]=0;int i,u,v;while(!q.empty()){u=q.front(),q.pop();for(i=head[u];i;i=e[i].next){if(f[v=e[i].v][p]==-1){f[v][p]=f[u][p]+1;q.push(v);}}}return ;}long long A,B,C,n,m;int main(){freopen(“test.in”,”r”,stdin);memset(f,-1,sizeof f);int i,j,k;int a,b,c;cin>>A>>B>>C>>n>>m;while(m–){cin>>a>>b;add(a,b),add(b,a);}bfs(1,0),bfs(2,1),bfs(n,2);long long ans=INF;for(i=1;i<=n;i++)ans=min(ans,A*f[i][0]+B*f[i][1]+C*f[i][2]);cout<<ans<<endl;return 0;}

,再怎么风光明媚的自家山川,

【BZOJ3891】【Usaco2014 Dec】Piggy Back bfs+动规?

相关文章:

你感兴趣的文章:

标签云: