zoukankan      html  css  js  c++  java
  • SRM 570 div2

     250pt 和 500pt都是简单题,500pt暴力就可以。。。

    1000pt:

    题意:给一棵树,求这棵树中不同子树的个数。

    解:f[i]表示以i点为根节点所包含的子数的个数。

    f[i] *= (f[j] + 1)  其中i -> j有边相连,+1表示不选以j为根的这棵子树;

    dfs;

    int mp[60][60];
    bool vis[60];
    LL ans;
    
    class CentaurCompanyDiv2 {
    public:
        LL dfs(int u) {
            int i;
            vis[u] = true;
            LL cnt = 1;
            for(i = 1; i <= 51; ++i) {
                if(mp[u][i] == 0)   continue;
                if(!vis[i]) {
                    cnt = cnt * (dfs(i) + 1);
                }
            }
            ans += cnt;
            //printf("%lld %lld\n", ans, cnt);
            return cnt;
        }
    
        long long count(vector <int> a, vector <int> b) {
            int i, n = a.size();
    
            CL(mp, 0);
            CL(vis, false);
            for(i = 0; i < n; ++i) {
                mp[a[i]][b[i]] = 1;
                mp[b[i]][a[i]] = 1;
            }
            ans = 1;
            dfs(a[0]);
            return ans;
        }
    };
  • 相关阅读:
    Ajax
    Linux安装SmartSVN及破解
    JQuery异步提交
    动画效果
    事件
    表单选择器
    DOM操作
    JQuery基础
    PHP环境配置
    DP--钢条切割
  • 原文地址:https://www.cnblogs.com/vongang/p/2916576.html
Copyright © 2011-2022 走看看