解题思路:
注意事项:
参考代码:
#include <iostream>
#include <vector>
using namespace std;
const int MAXN = 6010;
int dp[MAXN][2];
vector<int> edge[MAXN];
int n;
bool isChild[MAXN];
void dfs(int node)
{
for (int i = 0; i < edge[node].size(); i++)
{
int child = edge[node][i];
dfs(child);
dp[node][0] += max(dp[child][0], dp[child][1]);
dp[node][1] += dp[child][0];
}
}
int main()
{
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> dp[i][1];
}
int x, y;
while (true)
{
cin >> x >> y;
if (x == 0 && y == 0)
{
break;
}
edge[y].push_back(x);
isChild[x] = true;
}
int root = 1;
for (int i = 1; i <= n; i++)
{
if (!isChild[i])
{
root = i;
break;
}
}
dfs(root);
cout << max(dp[root][1], dp[root][0]) << endl;
return 0;
}
0.0分
3 人评分
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:1055 |
【明明的随机数】 (C语言代码)浏览:707 |
求圆的面积 (C++代码)这里推荐使用宏定义浏览:2028 |
众数问题 (C++代码)浏览:1288 |
C语言训练-8除不尽的数 (C语言代码)暴力解法,答案只有一个,直接输出就好了浏览:1045 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:736 |
【回文数(二)】 (C语言代码)浏览:940 |
C语言程序设计教程(第三版)课后习题8.2 (Java代码)浏览:2287 |
淘淘的名单 (C语言代码)答案错误???浏览:624 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:793 |