题目地址:http://codeforces.com/contest/743/problem/D
题意:告诉你一个树每个节点的价值,让你求出不相交的两个子树的价值和最大。
思路:树形dp入门。用vector存树的信息,每次遍历的时候不走回头路,dp数组去存这个节点下最大的子树价值和。

#include <iostream>
#include <cstring>
#include <string>
#include <queue>
#include <vector>
#include <map>
#include <set>
#include <stack>
#include <cmath>
#include <cstdio>
#include <algorithm>
#define LL long long
#define N 200010
#define M 50010
#define inf 0x3f3f3f3f3f3f3f3f
using namespace std;
const LL mod = 1e9 + 7;
const double eps = 1e-9;
vector<LL> tree[N];
LL dp[N], val[N];
LL ans;
void dfs(int u, int pre) {for (int i = 0; i < tree[u].size(); i++) {int v = tree[u][i];if (v == pre) {continue;}dfs(v, u);val[u] += val[v];if (dp[u] != -inf) {ans = max(ans, dp[u] + dp[v]);}dp[u] = max(dp[u], dp[v]);}dp[u] = max(dp[u], val[u]);
}
int main() {cin.sync_with_stdio(false);LL n, u, v;while (cin >> n) {ans = -inf;for (int i = 1; i <= n; i++) {cin >> val[i];dp[i] = -inf;tree[i].clear();}for (int i = 1; i < n; i++) {cin >> u >> v;tree[u].push_back(v);tree[v].push_back(u);}dfs(1, -1);if (ans == -inf) {cout << "Impossible" << endl;}else {cout << ans << endl;}}return 0;
}

Codeforces 743 D Chloe and pleasant prizes相关推荐

  1. Codeforces-743D - Chloe and pleasant prizes(树dp)

    转载于:https://www.cnblogs.com/GrowingJlx/p/6642653.html

  2. Codeforces Round #743 (Div. 2) E. Paint 区间dp + 暴力

    传送门 文章目录 题意: 思路: 题意: 给你一个有nnn个像素的图像,每个像素都有一个颜色aia_iai​,保证每种颜色的图像不会超过202020个.你现在每次可以选择一个颜色,并选择一段连续的像素 ...

  3. Codeforces Round #743 (Div. 2) D. Xor of 3 模拟 + 构造

    传送门 文章目录 题意: 思路: 题意: 给你一个010101序列aaa,定义一次操作是选择一个[1,n−2][1,n-2][1,n−2]范围内的下表,将ai,ai+1,ai+2a_i,a_{i+1} ...

  4. Codeforces Round #743 (Div. 2) B. Swaps 思维

    题目地址Codeforces Round #743 (Div. 2) B. Swaps 题意很好懂,这里就不复述了. 思路:因为是要让a小于b,所以可以用双指针,在b数组中找到第一个大于a数组中第i个 ...

  5. CodeForces - 743B Chloe and the sequence

    暴力肯定是无法做的 当时做的时候 当成一道递推来做的 用到分治的思想 想象一串长度为2n+1的列 那么前n个为前一串数 后n个是前一串数的reverse 第n+1个数 为第几串的编号 例如 第几串 中 ...

  6. codeforces CodeTON Round 1 (Div. 1 + Div. 2, Rated, Prizes) Editorial前三题讲解

    前提声明:题目均已开中文翻译,可能会有偏差,但不影响理解!!! 目录 A 题目 代码 讲解 B 题目 代码 讲解 C 题目 代码 讲解 A 题目 您将获得一个数组a_1.a_2.\ldots.a_n一 ...

  7. 【Codeforces #130 Div2】Solutions

    [208A  Dubstep] http://codeforces.ru/problemset/problem/208/A 题目大意:一个句子被添加了若干"WUB",问原句. 将W ...

  8. Codeforces Round #620 (Div. 2)(D. Shortest and Longest LIS)(O(n log n)的最长上升子序列或者贪心)

    Codeforces Round #620 (Div. 2)(D. Shortest and Longest LIS)(O(n log n)的最长上升子序列或者贪心) time limit per t ...

  9. codeforces 有意思的思维题 1 ~ 15

    codeforces 思维题 1.给定数组,求满足i < j and ai * aj = i + j的数对数量 2.第 i 步向前跳 i 步或后退 1 步 3.给两个点,求正方形的另两个点 4. ...

最新文章

  1. 13个月才跑通GitHub模型,机器学习科研入门太难了吧
  2. 使用sublime编译运行C程序
  3. openstack常用命令及控制节点端口一览
  4. SAP 参照sto订单创建外向交货BAPI
  5. 免费的Installer 和 免费的Pascal Script Engine.
  6. 爬虫笔记12完结篇实例:股票
  7. Avenger v1.0.6.0
  8. 【MFC相关】MFC入门相关
  9. Linux C目标文件
  10. XAF-UI元素概述
  11. 程序员面试需要出示身份证和毕业证原件吗?
  12. java 单链表是否有环_数据结构与算法随笔之链表-链表是否有环(二)
  13. @async 报错_async异步操作函数
  14. SSH集成项目,使用注解方式,竟然还有这样的问题!!
  15. 图像基础--图像预处理技术(色彩插值、色彩校正、伽马校正、图像增强和白平衡)
  16. 用Unity的GetSpectrumData方法识别钢琴曲中的钢琴琴键
  17. 通过微信开发测试号进行微信登录
  18. NFA转变为DFA的子集构造法
  19. 给自学者的建议:想学游戏编程开发,你需要做什么?
  20. HDU - 5761 Rower Bo (非常详细的解答,有轨迹图)

热门文章

  1. css3水波纹渐变扩散
  2. Mantis 管理Bug
  3. AFNetworking源码学习 1
  4. 【MATLAB教程案例26】图像特征点提取算法matlab仿真与分析——sift,surf,kaze,corner,BRISK等
  5. 接口测试,利用charles修改app的任意字段
  6. javac -d,-cp是什么意思
  7. CS0012 错误。必须添加对程序集”xxxxx,Version=4.0.0.0,Culture=neutral,PublicKeyToken=xxxxxxx“的引用
  8. 网络工具之HCL模拟器安装及使用 | 寻找C站宝藏
  9. STM32F407ZG_入门
  10. item_sku-获取淘宝商品sku详细信息接口接入获取方案