Codeforces Round #263
来源:互联网 发布:linux源码目录 编辑:程序博客网 时间:2024/05/22 12:09
http://codeforces.com/contest/461
B.太挫了,居然被hack了一发。。。。
C.贪心。。居然没看出来时哈夫曼编码问题
D.题目大意:给一棵树,每个点为白色或黑色,切断一些边,使得每个连通块有且仅有一个黑点,问划分方案数。
树形DP,
设状态:
dp[v][0]表示以v为根的子树中没有黑点,dp[v][1]有一个黑点。
状态方程:
dp[v][1] = dp[v][1]*dp[son][0] + dp[v][0]*dp[son][1] + dp[v][1]*dp[son][1]
dp[v][0] = dp[v][0]*dp[son][0] + dp[v][0]*dp[son][1]
#include<bits/stdc++.h>using namespace std;typedef long long LL;const int mod=1000000007;const int maxn = 100000 + 100;vector<int> g[maxn];int clr[maxn];LL dp[maxn][2];int n;void dfs(int u, int p){ dp[u][clr[u]] = 1; for(int i=0; i<g[u].size(); ++i) { int &v = g[u][i]; if(v==p) continue; dfs(v, u); dp[u][1] = (dp[u][1]*dp[v][0]%mod + dp[u][0]*dp[v][1]%mod + dp[u][1]*dp[v][1]%mod) % mod; dp[u][0] = (dp[u][0]*dp[v][1]%mod + dp[u][0]*dp[v][0]%mod) % mod; }}int main(){ scanf("%d", &n); int x; for(int i=1; i<n; ++i) { scanf("%d",&x); g[i].push_back(x); g[x].push_back(i); } for(int i=0; i<n; ++i) { scanf("%d", &clr[i]); } dfs(0, -1); printf("%I64d\n", dp[0][1]); return 0;}
E.
Div1 D Appleman and Complicated Task
Div1 E Appleman and a Game
1 0
- Codeforces Round #263
- Codeforces Round #263 (Div. 2)
- Codeforces Round#263(Div.2)
- Codeforces Round #263 (Div. 2)
- Codeforces Round #263 (Div. 2)
- Codeforces Round #263 (Div. 1)
- Codeforces Round #263 (Div. 2)
- Codeforces Round #263 (Div. 1)
- 【codeforces】Codeforces Round #363
- Codeforces Round #263 (Div. 2) proA
- Codeforces Round #263 (Div. 2) proB
- Codeforces Round #263 (Div. 2) proC
- Codeforces Round #263 (Div. 2) A-D
- Codeforces Round #263 (Div. 2) D
- Codeforces Round #263 (Div. 2) E
- 【索引】Codeforces Round #263 (Div. 2)
- codeforces Round #263(div2) A解题报告
- codeforces Round #263(div2) B解题报告
- window用ftp上传文件到linux
- Can't load standard profile
- JAVA的文件操作【转】
- js动态加载脚本
- SDUT2040 快排与二分查找
- Codeforces Round #263
- UVa1595 - Symmetry
- setInterval与setTimeout区别
- POJ2515 Birthday Cake构建差分表
- HDU--2592:Counting Sheep (DFS)
- iOS UICollectionView简单使用
- HDU 2112 HDU Today 字典树+最短路dijkstra算法
- VMware下Ubuntu与宿主Windows共享文件夹
- 开发者的十多种技术