• 洛谷——P3946 ことりのおやつ(小鸟的点心)


    P3946 ことりのおやつ(小鸟的点心)

    题目太长,请去链接里看吧

    注意细节:特判终点(即使困住又能怎样,到达就好了),特判高度

    #include<bits/stdc++.h>
    
    #define N 10101010
    #define inf 0x7fffffff
    using namespace std;
    
    int tot,head[N];
    struct nodE{
        int to,next,w;
    }e[N];
    
    void add(int u,int v,int w){
        e[++tot].to=v,e[tot].next=head[u],head[u]=tot,e[tot].w=w;
    }
    
    struct node{
        int to,d;
        friend bool operator < (node A,node B){
            return A.d>B.d;
        }
    };
    struct nxde{
        int h,l;
    }P[N];
    priority_queue<node>Q;
    
    bool vis[N];
    
    int n,m,s,t,g,q,d[N];
    
    void spfa(){
        fill(d+1,d+1+n,inf);
        Q.push((node){s,0});d[s]=0,vis[s]=1;
        while(!Q.empty()){
            int u=Q.top().to;Q.pop();vis[u]=0;
            for(int i=head[u];i;i=e[i].next){
                int v=e[i].to;
                if(d[v]>d[u]+e[i].w){
                    if(P[v].h+(d[u]+e[i].w)*q>P[v].l&&v!=t) continue;
                    d[v]=d[u]+e[i].w;
                    if(!vis[v]) vis[v]=1,Q.push((node){v,d[v]});
                }
            }
        }
    }
    
    int main()
    {
        scanf("%d%d%d%d%d%d",&n,&m,&s,&t,&g,&q);
        
        for(int i=1;i<=n;i++)
            scanf("%d%d",&P[i].h,&P[i].l);
        
        for(int u,v,w,i=1;i<=m;i++){
            scanf("%d%d%d",&u,&v,&w);
            add(u,v,w);add(v,u,w);
        }
        
        spfa();
        
        if(d[t]>g) printf("wtnap wa kotori no oyatsu desu!
    ");
        else printf("%d
    ",d[t]);
        
        return 0;
    }
  • 相关阅读:
    符合RESTful规范的API
    DRF 认证、权限、限制
    RESTful API终极版序列化封装
    RESTful API
    Django REST Framework
    前端之promise
    VueRouter
    Vue的生命周期
    三种常用的js数组去重方法
    dos命令查看端口状态
  • 原文地址:https://www.cnblogs.com/song-/p/9705621.html
Copyright © 2020-2023  润新知