zoukankan      html  css  js  c++  java
  • bzoj2763 分层图

    #include<bits/stdc++.h>
    #define MAXN 200005
    using namespace std;
    
    int n,m,k,tot,beg,end;
    int h[MAXN*15],dis[MAXN*15];
    bool vis[MAXN*15];
    
    struct node{
        int from,to,next,cost;
    }e[MAXN*15];
    
    void init(){
        tot=0;
        memset(vis,false,sizeof(vis));
        memset(dis,0x7f,sizeof(dis));
        memset(h,-1,sizeof(h));
    }
    
    int zhuan(int x,int y){//x号节点第y层 
        return x+(n+1)*y;
    }
    
    void add(int x,int y,int z){
        tot++;
        e[tot].from=x;
        e[tot].to=y;
        e[tot].cost=z;
        e[tot].next=h[x];
        h[x]=tot;
    }
    struct node2{
        int id,num;
        bool operator<(const node2&a)const{
            return num>a.num;
        }
    };
    
    
    int dijkstar(){
        priority_queue<node2>q;
        q.push((node2){zhuan(beg,0),0});
        dis[zhuan(beg,0)]=0;
        while(!q.empty()){
            node2 u=q.top();q.pop();
            if(vis[u.id]==true)continue;
            vis[u.id]=true;
            for(int i=h[u.id];i!=(-1);i=e[i].next){
                if(dis[e[i].to]>u.num+e[i].cost){
                    dis[e[i].to]=u.num+e[i].cost;
                    q.push((node2){e[i].to,dis[e[i].to]});
                }
            }
        }
        return dis[zhuan(end,k)];
    }
    
    
    int main(){
        while(scanf("%d%d%d",&n,&m,&k)==3){
            init();
            cin>>beg>>end;
            for(int i=1;i<=m;i++){
                int x,y,z;cin>>x>>y>>z;
                for(int j=0;j<=k;j++){
                add(zhuan(x,j),zhuan(y,j),z);
                add(zhuan(y,j),zhuan(x,j),z);    
                }
                for(int j=0;j<k;j++){
                add(zhuan(x,j),zhuan(y,j+1),0);
                add(zhuan(y,j),zhuan(x,j+1),0);    
                }
            }
            cout<<dijkstar()<<endl;
        }
    }
    View Code

    模板题

  • 相关阅读:
    记一次 css样式的使用
    Vue -- element
    Ubuntu系统 ,鼠标双击搜索框内容 ,内容会被自动删除
    MetInfo Password Reset Poisoning By Host Header Attack
    wechall writeup
    SQL常用语句
    PHP Tips
    PHP版本差异备忘录
    Docker入门
    JetBrains系列软件用法
  • 原文地址:https://www.cnblogs.com/shatianming/p/12296056.html
Copyright © 2011-2022 走看看