zoukankan      html  css  js  c++  java
  • CF461B Appleman and Tree

    http://codeforces.com/problemset/problem/461/B

    感觉这题有点玄学阿。。。。。怎么说呢。。。

    状态1是x在有黑色的区域里面,状态0是只在白色区域里面,其实看一眼代码就懂了,一直想不出来我很难过。。。。

    好菜呀,还要继续学树形dp才行阿

    #include<iostream>
    #include<cstring>
    #include<vector>
    #include<algorithm>
    #include<queue>
    using namespace std;
    typedef long long ll;
    ll mod = 1e9 + 7;
    const int maxn = 2e5 + 11;
    vector<int>G[maxn];
    void add(int be, int en) {
    	G[be].push_back(en);
    }
    int list[maxn];
    
    ll dp[maxn][3];
    
    
    int dfs(int x, int fa) {
    	for (int i = 0; i < G[x].size(); i++) {
    		int p = G[x][i];
    		if (p == fa) continue;
    		dfs(p, x);
    
    		dp[x][1] = (dp[x][1] * (dp[p][1] + dp[p][0])) % mod + dp[x][0] * dp[p][1] % mod;
    		dp[x][1] %= mod;
    		dp[x][0] = dp[x][0] * (dp[p][0] + dp[p][1]) % mod;
    	}
    	return 0;
    }
    
    int n;
    int main() {
    	cin >> n;
    	int x, y;
    	for (int i = 2; i <= n; i++) {
    		cin >> x;
    		add(x + 1, i);
    		add(i, x + 1);
    	}
    
    
    	for (int i = 1; i <= n; i++) {
    		cin >> list[i];
    		dp[i][list[i]] = 1;
    	}
    	dfs(1, -1);
    	cout << dp[1][1] << endl;
    	return 0;
    }
    

      

  • 相关阅读:
    mysql各个版本下载地址
    hadoop-0.20.2完全分布式集群
    04_Spring中使用Quartz
    03_CronTrigger
    02_SimpleTrigger
    02_ActiveMQ入门
    01_JMS概述
    01_Quartz基础结构
    Java开发高性能网站需要关注的事
    06_Jedis完成MySQL的条件查询案例
  • 原文地址:https://www.cnblogs.com/lesning/p/14056205.html
Copyright © 2011-2022 走看看