zoukankan      html  css  js  c++  java
  • 【BZOJ】1596: [Usaco2008 Jan]电话网络

    【算法】树上贪心

    【题解】

    因为一个点必须被覆盖,那么它如果没有被子树节点覆盖的话,就覆盖它的父节点

    从叶子开始贪心。

    注意,如果它自己已经被选了就不需要选父节点了。

    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<cctype>
    using namespace std;
    const int maxn=10010;
    struct edge{int v,from;}e[maxn*3];
    int first[maxn],n,tot,ans,g[maxn];
    
    int read()
    {
        char c;int s=0,t=1;
        while(!isdigit(c=getchar()))if(c=='-')t=-1;
        do{s=s*10+c-'0';}while(isdigit(c=getchar()));
        return s*t;
    }
    void insert(int u,int v)
    {tot++;e[tot].v=v;e[tot].from=first[u];first[u]=tot;}
    void dfs(int x,int fa){
        bool ok=0;
        for(int i=first[x];i;i=e[i].from)if(e[i].v!=fa){
            dfs(e[i].v,x);
            if(g[e[i].v])ok=1;
        }
        if(!ok&&!g[x]&&!g[fa])g[fa]=1,ans++;
    }    
    int main(){
        n=read();
        int u,v;
        for(int i=1;i<n;i++){
            u=read();v=read();
            insert(u,v);insert(v,u);
        }
        ans=0;
        dfs(1,1);
        printf("%d",ans);
        return 0;
    }
    View Code
  • 相关阅读:
    MVC 小demo
    单例模式
    简单工厂模式
    有关ajax中的URL问题
    SqlHelper++
    C# 操作XML
    C# 注册DLL(使用cmd)
    图片延迟加载库Layzr
    解决Ajax跨域问题:Origin xx is not allowed by Access-Control-Allow-Origin.
    HTML5 + SOCKET视频传输
  • 原文地址:https://www.cnblogs.com/onioncyc/p/7457753.html
Copyright © 2011-2022 走看看