Codeforces 743 D Chloe and pleasant prizes
题目地址: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相关推荐
- Codeforces-743D - Chloe and pleasant prizes(树dp)
转载于:https://www.cnblogs.com/GrowingJlx/p/6642653.html
- Codeforces Round #743 (Div. 2) E. Paint 区间dp + 暴力
传送门 文章目录 题意: 思路: 题意: 给你一个有nnn个像素的图像,每个像素都有一个颜色aia_iai,保证每种颜色的图像不会超过202020个.你现在每次可以选择一个颜色,并选择一段连续的像素 ...
- 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} ...
- Codeforces Round #743 (Div. 2) B. Swaps 思维
题目地址Codeforces Round #743 (Div. 2) B. Swaps 题意很好懂,这里就不复述了. 思路:因为是要让a小于b,所以可以用双指针,在b数组中找到第一个大于a数组中第i个 ...
- CodeForces - 743B Chloe and the sequence
暴力肯定是无法做的 当时做的时候 当成一道递推来做的 用到分治的思想 想象一串长度为2n+1的列 那么前n个为前一串数 后n个是前一串数的reverse 第n+1个数 为第几串的编号 例如 第几串 中 ...
- codeforces CodeTON Round 1 (Div. 1 + Div. 2, Rated, Prizes) Editorial前三题讲解
前提声明:题目均已开中文翻译,可能会有偏差,但不影响理解!!! 目录 A 题目 代码 讲解 B 题目 代码 讲解 C 题目 代码 讲解 A 题目 您将获得一个数组a_1.a_2.\ldots.a_n一 ...
- 【Codeforces #130 Div2】Solutions
[208A Dubstep] http://codeforces.ru/problemset/problem/208/A 题目大意:一个句子被添加了若干"WUB",问原句. 将W ...
- 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 ...
- codeforces 有意思的思维题 1 ~ 15
codeforces 思维题 1.给定数组,求满足i < j and ai * aj = i + j的数对数量 2.第 i 步向前跳 i 步或后退 1 步 3.给两个点,求正方形的另两个点 4. ...
最新文章
- Android Studio 设置git 提交代码
- PluckerNet:一种基于3D线匹配的配准网络(CVPR2021)
- 001 JAVA基础
- linux 英伟达 分辨率,配置nVidia显卡修改Ubuntu分辨率
- 前端开发技巧-那些不常见但十分有效的小玩意
- 使用JavaScript给对象修改注册监听器
- WinHex license添加(v19测试可用)
- deepin 下安装xdroid
- 詹姆斯麦迪逊大学计算机专业,詹姆斯麦迪逊大学简介_詹姆斯麦迪逊大学介绍_詹姆斯麦迪逊大学James Madison University (JMU)...
- 小米 MIUI系统 安装包 刷机
- 微信小程序(三)详解篇
- 普通u盘linux不识别,Linux识别不了u盘怎么办
- 使用ffmpeg进行音频采样率转换
- 半导体术语的中英文版本
- Aligenie语音开发平台(天猫精灵)的对接记录
- 面试官常问的10个Linux问题
- JSONNull的判断问题
- 个人申请支付宝微信支付接口教程(无需营业执照)
- 厨房设计大师——整体厨房设计CAD图纸
- [LaTeX] 数学表达式-上标和下标
热门文章
- AFNetworking(v3.0+)框架学习总结(三框架基本使用)
- PHP + Redis抢购秒杀
- kafka干货(五):kakfka的python客户端----Confluent-kafka
- 最新小储云商城程序源码最新PJ版 去授权后门
- 十三款流行的无线网络黑客工具介绍
- 关于google smtp邮件发送
- LSTM 长短期记忆神经网络及股票预测实现
- python 使用wxpy实现获取微信好友列表 头像 群成员
- 说明人工神经网络的原理,人工神经网络结构图
- PTA(三十)面向对象程序设计 第五章 作业 7-1 复数的比较 (30 point(s))