hihocoder编程练习赛52-3 部门聚会
2024-08-30 17:50:30
思路:
树形dp。
实现:
#include <bits/stdc++.h>
using namespace std;
const int MAXN = ;
int n, a[MAXN], in[MAXN];
vector<int> G[MAXN];
double dp[MAXN][];
bool vis[MAXN];
void dfs(int now)
{
vis[now] = true;
for (int i = ; i < G[now].size(); i++)
{
int tmp = G[now][i];
if (!vis[tmp]) dfs(tmp);
dp[now][] += max(dp[tmp][], dp[tmp][] + a[tmp]);
dp[now][] += max(dp[tmp][], dp[tmp][] + (double)a[tmp] / 2.0);
}
}
int main()
{
cin >> n;
int u, v;
for (int i = ; i <= n; i++) cin >> a[i];
for (int i = ; i < n - ; i++) { cin >> u >> v; in[v]++; G[u].push_back(v); }
int i = ;
for (; i <= n; i++) if (!in[i]) break;
dfs(i);
printf("%.1f\n", max(dp[i][], dp[i][] + a[i]));
return ;
}
最新文章
- NFS Volume Provider(Part I) - 每天5分钟玩转 OpenStack(62)
- 网页语言有html,php.jsp,无论什么语言浏览器总是能正常显示,这个解析工作是浏览器完成的吗?
- HandlerThread和IntentService
- HTML与CSS基础知识补遗(一)
- mysql服务性能优化—my.cnf配置说明详解
- [No000028]Python的使用之禅及程序员应该明白的一些道理
- 获取本机MAC地址
- C语言如何 实现 下雪效果
- [Everyday Mathematics]20150223
- VB.NET开发中遇到的一个小问题
- 打造支持apk下载和html5缓存的 IIS(配合一个超简单的android APP使用)具体解释
- 过滤ASCII码中的不可见字符, ASCII三部分, 各控制字符详解, 去^@,^M
- meta标签的少许语法,慢慢收集中...
- EassyMock实践 自定义参数匹配器
- sleep()方法和wait()方法之间有什么差异?
- 数据分析基础之Linalg的使用
- FusionCharts 3D环饼图
- python基础——匿名函数及递归函数
- Applet 应用程序进行数字签名,对系统文件进行读写操作
- java中的线程池原理