博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hihocoder编程练习赛52-3 部门聚会
阅读量:4457 次
发布时间:2019-06-08

本文共 906 字,大约阅读时间需要 3 分钟。

思路:

树形dp。

实现:

1 #include 
2 using namespace std; 3 const int MAXN = 100005; 4 int n, a[MAXN], in[MAXN]; 5 vector
G[MAXN]; 6 double dp[MAXN][2]; 7 bool vis[MAXN]; 8 void dfs(int now) 9 {10 vis[now] = true;11 for (int i = 0; i < G[now].size(); i++)12 {13 int tmp = G[now][i];14 if (!vis[tmp]) dfs(tmp);15 dp[now][0] += max(dp[tmp][0], dp[tmp][1] + a[tmp]);16 dp[now][1] += max(dp[tmp][0], dp[tmp][1] + (double)a[tmp] / 2.0);17 } 18 }19 int main()20 {21 cin >> n;22 int u, v;23 for (int i = 1; i <= n; i++) cin >> a[i];24 for (int i = 0; i < n - 1; i++) { cin >> u >> v; in[v]++; G[u].push_back(v); }25 int i = 1;26 for (; i <= n; i++) if (!in[i]) break;27 dfs(i);28 printf("%.1f\n", max(dp[i][0], dp[i][1] + a[i]));29 return 0;30 }

 

转载于:https://www.cnblogs.com/wangyiming/p/8644823.html

你可能感兴趣的文章
透明度百分比与十六进制转换
查看>>
HBase表预分区
查看>>
NSBundle,UIImage,UIButton的使用
查看>>
vue-cli3 中console.log报错
查看>>
GridView 中Item项居中显示
查看>>
UML类图五种关系与代码的对应关系
查看>>
如何理解作用域
查看>>
从无到满意offer,你需要知道的那些事
查看>>
P1516 青蛙的约会 洛谷
查看>>
SDOI2011 染色
查看>>
JQuery EasyUI combobox动态添加option
查看>>
面向连接的TCP概述
查看>>
前端快捷方式 [记录]
查看>>
亲测可用,解决端口被占用的指令!!
查看>>
MySQL--视图、触发器、事务、存储过程、内置函数、流程控制、索引
查看>>
Django--数据库查询操作
查看>>
自定义配置文件的使用
查看>>
js-20170609-运算符
查看>>
算法笔记_065:分治法求逆序对(Java)
查看>>
MSP430FLASH小结
查看>>