Donation-树形dp-建图

2023-10-26

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
题目网址:链接

int head[maxn];
int n,m,cnt,tot;
ll a[maxn],b[maxn],c[maxn],id[maxn];
int fa[maxn];
int lson[maxn],rson[maxn];
struct node{
	int v,nex;
}e[maxn];
void addEdge(int u,int v){
	e[cnt].v = v;
	e[cnt].nex = head[u];
	head[u] = cnt ++;
}
void init(){
	for(int i=0;i<maxn;i++) fa[i] = i,head[i] = -1;
	cnt = 0;
	tot = 0;
}
bool cmp(int x,int y){
	return a[x] < a[y];
}
int find(int x){
	if(x == fa[x]) return x;
	else return fa[x] = find(fa[x]);
}
void add(int u,int v){
	int fau = find(u);
	int fav = find(v);
	if(fau == fav) return ;
	tot ++;
	u = fau;
	v = fav;
	lson[tot] = u;
	rson[tot] = v;
	a[tot] = max(a[u],a[v]);
	b[tot] = b[u] + b[v];///cost cal
	fa[u] = tot;
	fa[v] = tot;
	fa[tot] = tot;
}
ll dp[maxn];
void dfs(int u){
	if(lson[u]){
		dfs(lson[u]);
		dfs(rson[u]);
	}else dp[u] = a[u];
	dp[u] = min(
	max(a[u]-b[lson[u]],dp[lson[u]]),
	max(a[u]-b[rson[u]],dp[rson[u]])
	);
}
int main()
{
	init();
	n = read,m = read;
	for(int i=1;i<=n;i++) a[i] = read,b[i] = read;
	for(int i=1;i<=n;i++) a[i] = max(a[i] - b[i], 0LL),id[i] = i;
	sort(id+1,id+1+n,cmp);
	for(int i=1;i<=m;i++){
		int u = read,v = read;
		addEdge(u,v);
		addEdge(v,u);
	}
	/*for(int i=1;i<=n;i++){
		cout<<id[i]<<' ';
	}
	puts("");*/
	tot = n;
	// puts("ok");
	for(int i=1;i<=n;i++){
		int u = id[i];
		for(int j = head[u]; ~j; j = e[j].nex){
			int to = e[j].v;
			if(a[to] <= a[u]) add(u,to);
		}
	}
	dfs(tot);
	cout << dp[tot] + b[tot] <<endl;
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Donation-树形dp-建图 的相关文章

  • P1018 [NOIP2000 提高组] 乘积最大

    题目 题目链接 题解 状态定义 dp i j 表示前i个数分成j段 即需要j 1个 的最大乘积 状态转移 dp i j max dp k 1 j 1 a k i dp i j 表示在第k 1和第k个数之间加上一个 得到的最大值 其中前k 1
  • ECNA 2014 部分题解

    目录 D Generalized Roman Numerals 思维dp E Inspectors 拆点跑最小费用最大流 H Time Warp 模拟 A Cure for the Common Code KMP D Generalized
  • 蓝桥杯算法训练VIP-方格取数

    题目 题目链接 题解 动态规划 本题和这个题几乎是完全一样 那个博客写的巨清楚 所以这里不写了 代码 include
  • MAX 的读书计划——dp

    题目描述 MAX 很喜欢读书 为了安排自己的读书计划 他会预先把要读的内容做好标记 A B 表示一个页段 即第 A 到 B 面 当然 A
  • 【动态规划】62. 不同路径

    62 不同路径 一个机器人位于一个 m x n 网格的左上角 起始点在下图中标记为 Start 机器人每次只能向下或者向右移动一步 机器人试图达到网格的右下角 在下图中标记为 Finish 问总共有多少条不同的路径 示例 1 输入 m 3
  • Tree with Maximum Cost---CF1092F 树上DP

    F Tree with Maximum Cost time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstand
  • 最长公共子序列 蓝桥杯 1189

    题目描述 给定一个长度为n数组A和一个长度为m数组B 请你求出它们的最长公共子序列长度为多少 输入描述 输入第一行包含两个整数n m 第二行包含n个整数ai 第三行包含m个整数bi 1 lt n m lt 10 3 1 lt ai bi l
  • LeetCode-410.分隔数组的最大值、动态规划、前缀和

    给定一个非负整数数组和一个整数 m 你需要将这个数组分成 m 个非空的连续子数组 设计一个算法使得这 m 个子数组各自和的最大值最小 示例 输入 nums 7 2 5 10 8 m 2 输出 18 力扣 LeetCode 第410题 前言
  • 蓝桥杯2021年第十二届真题第二场-国际象棋

    题目 题目描述 众所周知 八皇后 问题是求解在国际象棋棋盘上摆放 8 8 8 个皇后 使得两两之间互不攻击的方案数 已经学习了很多算法的小蓝觉得 八皇后 问题太简单了 意犹未尽 作为一个国际象棋迷 他想研究在 N M
  • [leetcode] 鸡蛋掉落 Google面试题 dp

    题目链接 给你 k 枚相同的鸡蛋 并可以使用一栋从第 1 层到第 n 层共有 n 层楼的建筑 已知存在楼层 f 满足 0 lt f lt n 任何从 高于 f 的楼层落下的鸡蛋都会碎 从 f 楼层或比它低的楼层落下的鸡蛋都不会破 每次操作
  • APAC 2013 部分题解

    目录 A The Alphabet Sticker C Increasing Shortest Path D Cup of Cowards E Balloons Colors F NASSA s Robot G The Stones Gam
  • [Codeforces 1579G] Minimal Coverage

    You are given n lengths of segments that need to be placed on an infinite axis with coordinates The first segment is pla
  • Optimal Coin Change(完全背包计数)

    题目描述 In a 10 dollar shop everything is worthy 10 dollars or less In order to serve customers more effectively at the cas
  • 动态规划记录 [动态更新]

    2021 江西省赛A 题目链接 https ac nowcoder com acm contest 21592 A 题意 给出一个布尔矩阵 每个位置的值非零即一 然后问给定p和q 问从 1 1 n m 的所有路径中至少通过p次0 q次1的路
  • Leetcode 376.摆动序列

    题目 如果连续数字之间的差严格地在正数和负数之间交替 则数字序列称为 摆动序列 第一个差 如果存在的话 可能是正数或负数 仅有一个元素或者含两个不等元素的序列也视作摆动序列 例如 1 7 4 9 2 5 是一个 摆动序列 因为差值 6 3
  • 动态规划之完全背包问题

    完全背包问题 题目 有 N N N 种物品和一个容量为 V V V 的背包 每种物品都有无限件可用 放入第 i
  • 2021年蓝桥杯A组省赛-左children右sibling

    CXXX有毛病 左孩子右兄弟 字眼很敏感吗 题目 题目链接 题解 贪心 DFS 以 u u u 为根的子树选择包含节点最多的以 v v v 为根的子树作为最后连接的右兄弟能保证树向下延展的最多 所以重点转换为了计算以
  • 最短Hamilton路径

    题目 题目链接 题解 状压dp f i j 表示从0点按照路径i走到j点的最短距离 其中i为二进制数 1表示走过某点 0表示未走过某点 比如10010表示经过了1 4两个点 而不经过0 2 3点 状态转移为 假设沿路径i走到j点经过k点 且
  • 斐波那契数列——UPC

    题目描述 斐波那契数列F满足如下性质 F1 1 F2 2 Fi 2 Fi 1 Fi 对于一个正整数n 它可以表示成一些不同的斐波那契数列中的数的和 你需要求出 有多少种不同的方式可以表示出n 输入 输入有多组数据 第一行为一个整数T 表示数
  • UVa 1347 Tour

    题目 Tour 题意 来自luogu John Doe想用最小的路程游览完所有目的地 每个目的地都用坐标xi yi表示 任何两目的地的xi都不相同 两目的地之间的路程是两点之间的直线距离 John是这样走的 他从最左边的点开始 然后只能向右

随机推荐

  • javaEE企业级框架ssm知识点整合【思维导图】

    ssm Spring SpringMVC Mybatis 框架是轻量级javaEE应用开发最受欢迎的一种组合框架之一 使用这种框架的项目使JavaEE架构具有高度可维护性和可扩展性 同时极大地提高了项目的开发效率 降低了开发和维护的成本 而
  • webkit和webkit2的区别

    转自 http blog csdn net shunzi 1984 article details 6196483 原文地址 https trac webkit org wiki WebKit2 webkit2为了在API层支持多进程改变了
  • Linux “/“ 分区扩容

    前言 扩容是一项很简单的工作 但是有时候因为长时间没有操作过扩容 指令会比较生疏 因此写一篇扩容的文档 方便在再次失忆的情况下能快速回忆起操作流程 逻辑卷扩容的流程 创建PV gt 扩容VG gt 扩容LV 以下是扩容的详细流程 1 查看当
  • 人工智能梯度下降的优化器SGD、Momentum、AdaGrad、Adam的数学原理以及无框架实现

    系列文章目录 人工智能 梯度下降的原理和手写实现 文章目录 系列文章目录 前言 一 梯度下降优化器是什么 二 SGD优化方法 1 SGD是什么 2 SGD的数学原理 3 SGD的实现 4 SGD的缺陷 三 Momentum优化方法 1 Mo
  • 为什么公司规定所有接口都必须加上分布式锁,你知道吗?

    上一篇文章我们聊了聊Redisson这个开源框架对Redis分布式锁的实现原理 如果有不了解的兄弟可以看一下 都2022年了 出去面试连分布式锁的源码你都不会画 今天就给大家聊一个有意思的话题 每秒上千订单场景下 如何对分布式锁的并发能力进
  • 如何通过代码获取framedebugger里面的drawcall信息

    最近想做个性能工具 用来分析当前drawcall里面的具体调用 不知道unity有没有获取数据的具体接口 不过framedebugger里面的确有相关数据 这是方案一 另外一个方案是hook 理论上应该参考下renderdoc的实现应该就可
  • 使用scrapy爬取数据

    安装scrapy 使用清华镜像 打开PyCharm 安装scrapy框架 pip install i https pypi tuna tsinghua edu cn simple scrapy 新建一个名为python scrapy的项目
  • 深入浅出图解CNN-卷积神经网络

    首先 介绍一下卷积的来源 它经常用在信号处理中 用于计算信号的延迟累积 假设一个信号发生器每个时刻t产生一个信号xt 其信息的衰减率为wk 即在k 1个时间步长后 信息为原来的wk 倍 假设w1 1 w2 1 2 w3 1 4 时刻t收到的
  • linux查找目录下的所有文件中是否含有某个字符串

    Linux查找文件内容的常用命令方法 从文件内容查找匹配指定字符串的行 grep 被查找的字符串 文件名 例子 在当前目录里第一级文件夹中寻找包含指定字符串的 in文件 grep thermcontact in 从文件内容查找与正则表达式匹
  • [论文阅读]《Database Maanagement Systems》-第六章

    第六章 QUERY BY EXAMPLE QBE 查询示例 QBE P201 P216 Example is always more efficacious than precept 身教胜于言教 榜样总是比教训更有效 precept 规则
  • openGL之API学习(一七三)glsl如何设置版本version和兼容性

    version 120 version 120 core version 120 compatibility version 300 es GLSL ES 提供了一个 version 指令来指定着色器使用的GLSL ES的版本 如果不指定G
  • c++ 日志输出库 spdlog 简介

    spdlog是一个开源的 快速的 仅有头文件的C 11 日志库 它提供了向流 标准输出 文件 系统日志 调试器等目标输出日志的能力 它支持的平台包括Windows Linux Mac Android iOS 官方参考 https githu
  • 后缀自动机(SAM)——黑盒使用方案

    首先讲下后缀自动机吧 会写一下部分必要的原理 其他的原理不做解释 代码未讲解的部分希望能当做黑盒来使用 既不了解具体原理但知道其性质以及如何使用 我实在是佩服发明出AC自动机 回文自动机 后缀自动机这人 前置知识 AC自动机中的Fail树
  • 如何使用Chrome浏览器模拟弱网情况

    点击谷歌浏览器图标 打开浏览器后 按下F12键 弹出开发者工具窗口 刷新网页 页面的加载速度为597ms 在开发者工具中 点击Online 在弹出的菜单中点击Slow 3G 慢速3G网络 重新加载网站 发现页面的加载速度变慢了 变成6 5s
  • openssl engine在tls中的应用

    openssl engine的实现和原理在上一篇文章 https blog csdn net liu942947766 article details 128837041 spm 1001 2014 3001 5502 openssl en
  • MATLAB随机生成m个三维坐标点,且各个坐标点之间的距离不小于n

    randi函数 randi max m n 生成均匀分布的随机整数 max生成的随机整数最大值 生成m行n列的矩阵 编写函数sampling function x y z sampling lowx upx lowy upy lowz up
  • 第五篇:进阶篇 发动机的噪声特性

    本专栏分享传统NVH知识点 从声学理论 材料声学 汽车噪声振动分析 车辆及其零部件甚至原材料的声学测试方法等多维度介绍汽车NVH 一些专用术语同时给出了中英文对照 欢迎新人 同行 爱好者一起交流 由于内容写的较为仓促 有误的地方欢迎大家批评
  • JS优化方法(使用最新的js方法)

    1 带有多个条件的if语句 将多个值放在一个数组中 然后调用数组的includes方法 longhand 直接的 if x abc x def x ghi x jkl logic 逻辑 shorthand 速记 if abc def ghi
  • 【FFmpeg】 音视频解码详细流程

    目录 一 视频解码流程 二 FFMPEG解码流程 三 FFmpeg解码函数 四 FFmpeg解码的数据结构 五 FFmpeg数据结构简介 六 FFmpeg数据结构分析 七 像素数据转换 八 FFMPEG解码 九 FFMPEG解码 视频播放
  • Donation-树形dp-建图

    题目网址 链接 int head maxn int n m cnt tot ll a maxn b maxn c maxn id maxn int fa maxn int lson maxn rson maxn struct node in