题目地址: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. Android Studio 设置git 提交代码
  2. PluckerNet:一种基于3D线匹配的配准网络(CVPR2021)
  3. 001 JAVA基础
  4. linux 英伟达 分辨率,配置nVidia显卡修改Ubuntu分辨率
  5. 前端开发技巧-那些不常见但十分有效的小玩意
  6. 使用JavaScript给对象修改注册监听器
  7. WinHex license添加(v19测试可用)
  8. deepin 下安装xdroid
  9. 詹姆斯麦迪逊大学计算机专业,詹姆斯麦迪逊大学简介_詹姆斯麦迪逊大学介绍_詹姆斯麦迪逊大学James Madison University (JMU)...
  10. 小米 MIUI系统 安装包 刷机
  11. 微信小程序(三)详解篇
  12. 普通u盘linux不识别,Linux识别不了u盘怎么办
  13. 使用ffmpeg进行音频采样率转换
  14. 半导体术语的中英文版本
  15. Aligenie语音开发平台(天猫精灵)的对接记录
  16. 面试官常问的10个Linux问题
  17. JSONNull的判断问题
  18. 个人申请支付宝微信支付接口教程(无需营业执照)
  19. 厨房设计大师——整体厨房设计CAD图纸
  20. [LaTeX] 数学表达式-上标和下标

热门文章

  1. AFNetworking(v3.0+)框架学习总结(三框架基本使用)
  2. PHP + Redis抢购秒杀
  3. kafka干货(五):kakfka的python客户端----Confluent-kafka
  4. 最新小储云商城程序源码最新PJ版 去授权后门
  5. 十三款流行的无线网络黑客工具介绍
  6. 关于google smtp邮件发送
  7. LSTM 长短期记忆神经网络及股票预测实现
  8. python 使用wxpy实现获取微信好友列表 头像 群成员
  9. 说明人工神经网络的原理,人工神经网络结构图
  10. PTA(三十)面向对象程序设计 第五章 作业 7-1 复数的比较 (30 point(s))