首页 > 其他 > 详细

P4822 [BJWC2012]冻结

时间:2019-09-02 13:30:03      阅读:52      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 


蜜汁紫题


#include<bits/stdc++.h>
using namespace std;
const int bow=100010;
int n,m,a,b,c,ne,k,head[bow],vist[bow],usd[bow<<2],d[bow];
struct node{int nxt,to,dis;}eg[bow<<2];
void adde(int u,int v,int val){eg[++ne].nxt=head[u];eg[ne].to=v;eg[ne].dis=val;head[u]=ne;}
void spfa(){
    queue<int>q;
    memset(d,0x3f,sizeof(d));
    q.push(1);d[1]=0;vist[1]=1;
    while(!q.empty()){
    int u=q.front();
    q.pop();vist[u]=0;
    for(int i=head[u];i;i=eg[i].nxt)
        if(d[eg[i].to]>d[u]+eg[i].dis){
            d[eg[i].to]=d[u]+eg[i].dis;
            if(!vist[eg[i].to]){vist[eg[i].to]=1;q.push(eg[i].to);}
        }  
    }

}
int main()
{
    cin>>n>>m>>k;
    while(m--)
    {
        cin>>a>>b>>c;
        for(int i=1;i<=k+1;i++)
        {
            adde(a+(i-1)*n,b+i*n,c/2);
            adde(b+(i-1)*n,a+i*n,c/2);
            adde(b+(i-1)*n,a+(i-1)*n,c);
            adde(a+(i-1)*n,b+(i-1)*n,c);
        }
    }
    spfa();
    int ans=0x3f3f3f3f;
    for(int i=1;i<=k+1;i++)ans=min(ans,d[n+(i-1)*n]);
    cout<<ans;
}

 

P4822 [BJWC2012]冻结

原文:https://www.cnblogs.com/SFWR-YOU/p/11445663.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!