zoukankan      html  css  js  c++  java
  • 题解—— 洛谷 p1269 信号放大器(贪心)

    深刻的教训,不要写错读入

    #include <cstdio>
    #include <algorithm>
    using namespace std;
    const int MAXN = 150001;
    const int MAXM = 250001;
    int cnt=0,u[MAXM],v[MAXM],w[MAXM],first[MAXN],next[MAXM];
    int dis[MAXN],st,ans=0,n,fa[MAXN];
    inline int qread(void){
        int x=0;
        char s;
        s=getchar();
        while(s>'9'||s<'0')
            s=getchar();
        while(s>='0'&&s<='9'){
            x*=10;
            x+=s-'0';
            s=getchar();
        }
        return x; 
    }
    inline void qwrite(int x){
        if(x>9){
        qwrite(x/10);
        }
        putchar(x%10+'0');
    }
    void addedge(int ux,int vx,int wx){
        ++cnt;
        u[cnt]=ux;
        v[cnt]=vx;
        w[cnt]=wx;
        next[cnt]=first[ux];
        first[ux]=cnt;
    }
    void dfs2(int x,int f){
        for(int i=first[x];i;i=next[i]){
            if(v[i]==f)
                continue;
            fa[v[i]]=w[i];
            dfs2(v[i],x);
            dis[x]=max(dis[v[i]]+w[i],dis[x]);
        }
        if(dis[x]+fa[x]>st){
            ans++;
            dis[x]=0;
            }
    }
    int main(){
        n=qread();
        int m=0;
        for(int i=1;i<=n;i++){
            int mid;
            mid=qread();
            for(int j=1;j<=mid;j++){
                int vx,wx;
                vx=qread();
                wx=qread();
                addedge(i,vx,wx);
                m=max(m,wx);
            }
        }
        st=qread();
        if(m>=st){
            printf("No solution.
    ");
            return 0;
        }
        dfs2(1,1);
        qwrite(ans);
        return 0;
    }
  • 相关阅读:
    UVA 439 Knight Moves
    UVA 673 Parentheses Balance
    UVa 536 Tree Recovery
    UVA 712 S-Trees
    UVA 12657 Boxes in a Line
    UVA 679 Dropping Balls
    UVA 1603 Square Destroyer
    UVA 1343 The Rotation Game
    UVA 1374 Power Calculus
    UVA 12558 Egyptian Fractions (HARD version)
  • 原文地址:https://www.cnblogs.com/dreagonm/p/9420046.html
Copyright © 2011-2022 走看看