当前位置: 首页 > news >正文

【图论】树上差分(点差分)

一.题目

 输入样例:

5 10
3 4
1 5
4 2
5 4
5 4
5 4
3 5
4 3
4 3
1 3
3 5
5 4
1 5 
3 4

输出样例:9


二 .分析

我们可以先建一棵树

但我们发现,这样会超时。

所以,我们想到树上差分

 

三.代码

/*
5 10
3 4
1 5
4 2
5 4
5 4
5 4
3 5
4 3
4 3
1 3
3 5
5 4
1 5 
3 4
*/#include<bits/stdc++.h>
#define maxn 500005
using namespace std;
int n,m;
int head[maxn],depth[maxn],p[maxn][25],d[maxn];
struct Edge{int u,v,next;
}edge[maxn<<1];
int cnt=0;
void add(int u,int v){edge[++cnt]=(Edge){u,v,head[u]}; head[u]=cnt;
}
void dfs(int u,int fa){depth[u]=depth[fa]+1;p[u][0]=fa;for(int i=1;(1<<i)<=depth[u];i++){p[u][i]=p[p[u][i-1]][i-1];}for(int i=head[u];i;i=edge[i].next){int v=edge[i].v;if(v!=fa){dfs(v,u);}}
}
int lca(int x,int y){if(depth[x]<depth[y]) swap(x,y);int lg=0;while((1<<lg)<=depth[x]) lg++;for(int i=lg;i>=0;i--){if(depth[x]-(1<<i)>=depth[y]) x=p[x][i];}if(x==y) return x;for(int i=lg;i>=0;i--){if(p[x][i]!=p[y][i]){x=p[x][i]; y=p[y][i];}}return p[x][0];
}
void dfs2(int u,int fa){for(int i=head[u];i;i=edge[i].next){int v=edge[i].v;if(v!=fa){dfs2(v,u);d[u]+=d[v];}}
}
int main(){cin>>n>>m;for(int i=1;i<=n-1;i++){int u,v;cin>>u>>v;add(u,v);add(v,u);}dfs(1,0); //建树 while(m--){int u,v; cin>>u>>v;d[u]++; d[v]++;int lc=lca(u,v);d[lc]--; d[p[lc][0]]--;}dfs2(1,0); //sum求原数组 int ans=0;for(int i=1;i<=n;i++){ans=max(ans,d[i]);}cout<<ans;return 0;
}

相关文章:

【图论】树上差分(点差分)

一.题目 输入样例&#xff1a; 5 10 3 4 1 5 4 2 5 4 5 4 5 4 3 5 4 3 4 3 1 3 3 5 5 4 1 5 3 4 输出样例&#xff1a;9 二 .分析 我们可以先建一棵树 但我们发现&#xff0c;这样会超时。 所以&#xff0c;我们想到树上差分 三.代码 /* 5 10 3 4 1 5 4 2 5 4 5 4 5 4 3 5 …...

【wrk2】轻量级性能测试工具

1、背景 wrk/wrk2是针对http协议的基准测试工具,特点是在单击多核CPU的前提下,通过系统自带的高性能I/O机制【epoll、kqueue等】,以多线程和事件模式,在指定的时间和请求范围下对目标机器产生负载。特点如下: 优势劣势1、安装简单、容易上手 2、基于系统自身的高性能机制…...

华为云低代码平台Astro Canvas 搭建汽车展示大屏——实验指导手册

实验背景 大屏应用Astro Canvas是华为云低代码平台Astro的子服务之一&#xff0c;是以数据可视化为核心&#xff0c;以屏幕轻松编排&#xff0c;多屏适配可视为基础&#xff0c;用户可通过图形化界面轻松搭建专业水准的数据可视化大屏。例如汽车展示大屏、监控大屏、项目开发大…...

Nodejs 第七章(发布npm包)

发布npm的包的好处是什么 方便团队或者跨团队共享代码&#xff0c;使用npm包就可以方便的管理&#xff0c;并且还可以进行版本控制做开源造轮子必备技术&#xff0c;否则你做完的轮子如何让别人使用难道是U盘拷贝&#xff1f;面试题我面字节的时候就问到了这个增加个人IP 让更…...

Spring?Boot项目如何优雅实现Excel导入与导出功能

目录 背景EasyExcel 问题分析与解决Spring Boot Excel 导入与导出 依赖引入Excel 导入 基本导入功能进阶导入功能Excel 导出 Excel 导入参数校验 开启校验 校验规则定义 Bean Validation 定义校验规则ExcelValidator 接口定义校验规则校验结果接收 异常捕获接收校验结果contro…...

lable 某个名称换行 \n /n /br axisLabel换行 文字换行 echarts

axisLabel: {interval: 0,textStyle: {color: #D9D9D9,fontSize: fontChart(0.2),lineHeight:12,},formatter: function (params) {// 交通运输、仓储和邮政业, 制造业, 科学研究和技术服务业if (params 交通运输、仓储和邮政业) { return 交通运输、\n仓储和邮政业 }else if …...

025 - max()函数

MAX() 函数: MAX 函数返回一列中的最大值。NULL 值不包括在计算中。 SQL MAX() 语法: SELECT MAX(column_name) FROM table_name; 注释&#xff1a;MAX 也可用于文本列&#xff0c;以获得按字母顺序排列的最高或最低值。 -- 实际操作&#xff08;查询salary的最大值&#x…...

JDK 8.x 微服务启动JVM参数调优实战

微服务启动JVM参数调优实战 1.1 配置JVM启动参数1.2 解释1.3 JVM参数优化思路1.3.1 调整堆内存大小1.3.2 年轻代大小1.3.3 Metaspace 大小1.3.4 栈大小1.3.5 垃圾回收器选择1.3.6 垃圾回收参数1.3.7 预分配内存 1.3.8 禁用 ResizePLAB2. 常用JVM参数 1.1 配置JVM启动参数 服务…...

Web与HTTP

目录 DNS与域名 DNS解析的方式 过程 注册域名 html 名词解释 html的语法 web web2.0 静态页面特点 动态页面 动态页面特点 http协议 工作流程 http的请求方式 get post 状态码 常用状态码 通信套接字 套接字调用的端口 DNS与域名 网络是基于tcp/ip协议进…...

算法刷题Day 56两个字符串的删除操作+编辑距离

Day 56 动态规划 583. 两个字符串的删除操作 class Solution { public:int minDistance(string word1, string word2) {int m word1.size(), n word2.size();vector<vector<int>> dp(m 1, vector<int>(n 1, 0));for (int i 0; i < m; i){dp[i][0] …...

Flutter中Dart语言常用知识

目录 1. 变量和数据类型2. 函数3. 类4. 异常处理5. 泛型6. 变量声明和类型推断&#xff1a;7. 函数定义&#xff1a;8. 类定义和实例化&#xff1a;9. 接口定义&#xff1a;10. 抽象类定义&#xff1a;11. 混合类型列表&#xff1a;12. Flutter 中的 UI 组件&#xff1a;13.Dar…...

11万多英藏对照词典英藏翻译ACCESS\EXCEL数据库

今天继续发一个藏文藏语相关的翻译数据库&#xff0c;即英藏对照词典&#xff0c;加上《5万6千多藏文词典解释ACCESS数据库》以及昨天发的《近13万汉藏对照词典汉藏翻译ACCESS\EXCEL数据库》藏文类的数据就算较全了。 截图下方有显示“共有记录数”&#xff0c;截图包含了表的所…...

浅谈C语言分支循环语句

为什么需要循环控制&#xff1f; 因为在日常生活中或者在程序所处理的问题中常常遇见需要重复处理的问题&#xff0c;用循环语句可以提高代码的运行效率&#xff0c;更快的解决日常生活中遇到的问题。 循环嵌套 就是传说中的套娃&#xff0c;不同的循环语句都可以互相嵌套。 …...

Spring Boot Starter 剖析与实践 | 京东云技术团队

引言 对于 Java 开发人员来说&#xff0c;Spring 框架几乎是必不可少的。它是一个广泛用于开发企业应用程序的开源轻量级框架。近几年&#xff0c;Spring Boot 在传统 Spring 框架的基础上应运而生&#xff0c;不仅提供了 Spring 的全部功能&#xff0c;还使开发人员更加便捷地…...

技术能力提升-《系统架构设计师教程》

在最近的月度读书会上&#xff0c;国林哥分享了下对《系统架构设计教程》的一点见解&#xff0c;在技术管理摸爬滚打了多年&#xff0c;觉得这个认证还是有一定价值&#xff0c;希望对有兴趣了解这门认证考试的朋友有所帮助&#xff0c;起到抛砖引玉的作用。 国林哥从以下四个方…...

【LeetCode 热题 100】矩阵 专题(大多原地算法,需要一定思维)

解题思路 在 代码注释中&#xff01; 文章目录 73. 矩阵置零54. 螺旋矩阵48. 旋转图像240. 搜索二维矩阵 II 73. 矩阵置零 class Solution { public:void setZeroes(vector<vector<int>>& matrix) {// 难点&#xff1a;原地算法// 直接复用 matrix 第一行 和 …...

Java 中为什么要把一个数模(10^9+7)

在计算机科学和编程中&#xff0c;经常会遇到需要对结果进行取模操作的情况。模运算是指将一个数除以另一个数&#xff0c;并取得余数的运算。 在 Java 中&#xff0c;常见的一个数取模的值是 (10^97)&#xff0c;即 1000000007。这个特定的数值经常在算法和数学计算中被使用&…...

RPC与REST有什么区别?

原文&#xff1a;RPC与REST有什么区别&#xff1f; 背景 好多开发的同学在工作中&#xff0c;经常分不清RPC和REST的区别&#xff0c;导致经常沟通不在一个层次上。甚至有些同学把这两个当成同一个东西。 RPC与REST的区别&#xff1f; 对比名称 rpc rest 备注 架构风格 RP…...

时间复杂度介绍及其计算

时间复杂度 1.算法效率 如何衡量一个算法的好坏呢&#xff1f;看这段代码&#xff1a; long long Fib(int N) {if(N < 3)return 1;return Fib(N-1) Fib(N-2); }这是斐波那契数列的递归代码&#xff0c;非常简洁&#xff0c;那么这就一定说明它好吗&#xff1f;答案显而易…...

etcd实现大规模服务治理应用实战

导读&#xff1a;服务治理目前越来越被企业建设所重视&#xff0c;特别现在云原生&#xff0c;微服务等各种技术被更多的企业所应用&#xff0c;本文内容是百度小程序团队基于大模型服务治理实战经验的一些总结&#xff0c;同时结合当前较火的分布式开源kv产品etcd&#xff0c;…...

终极指南:3分钟学会用QMCDecode解锁QQ音乐加密格式

终极指南&#xff1a;3分钟学会用QMCDecode解锁QQ音乐加密格式 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff0c;默认转换…...

Wireshark提取NTLMv2 Hash与Hashcat强度验证实战

1. 这不是“黑客教程”&#xff0c;而是一次企业内网安全加固前的必做体检Wireshark抓NTLMv2 Hash、Hashcat暴力破解——看到这两个词&#xff0c;很多人第一反应是“红队操作”或“渗透测试”。但在我过去十年服务的三十多家中大型企业客户里&#xff0c;真正驱动这个动作的&a…...

Unity ShaderGraph实战指南:从美术协作到URP渲染优化

1. 为什么我劝新手别急着写Shader代码——从一个被美术追着问“这个效果能不能加”的下午说起 去年冬天&#xff0c;我在一家做AR教育产品的团队里做技术美术。那天下午三点&#xff0c;UI组的同事抱着iPad冲进我工位&#xff1a;“老师&#xff0c;这个粒子光晕要加呼吸感&…...

大麦网API签名机制解析:从抓包到Python复现全流程

1. 这不是“破解”&#xff0c;而是理解前端签名机制的常规技术推演大麦网的API接口在请求时普遍要求携带一个名为sign的参数&#xff0c;该参数并非固定值&#xff0c;而是由请求体、时间戳、密钥、随机串等多要素动态拼接后经哈希算法生成。很多初学者看到这个字段第一反应是…...

RK3562核心板深度解析:10路UART与1TOPS NPU在工业边缘计算的应用

1. 项目概述&#xff1a;为什么RK3562核心板值得关注&#xff1f;最近在给一个工业网关项目做硬件选型&#xff0c;市面上各种核心板看得人眼花缭乱。从传统的ARM Cortex-A系列到各种专用SoC&#xff0c;性能和接口的平衡点一直很难找。直到接触到迅为电子这款基于瑞芯微RK3562…...

终极Mac微信插件:消息防撤回与多开登录完整指南

终极Mac微信插件&#xff1a;消息防撤回与多开登录完整指南 【免费下载链接】WeChatExtension-ForMac A plugin for Mac WeChat 项目地址: https://gitcode.com/gh_mirrors/we/WeChatExtension-ForMac 还在为Mac微信无法防撤回消息而烦恼吗&#xff1f;想要在同一台电脑…...

使用Coze制作一个可以“动”的存钱罐,比记账APP更易用

可视化、AI驱动、自动提醒才是你智能存钱的伙伴──────────────────────────────为什么你的存钱计划总是失败&#xff1f;大多数人的存钱失败&#xff0c;并不是由于缺乏决心&#xff0c;而是缺少反馈。存多少钱、目标达成的比例、离目标还有多远…...

CW-DAPLINK调试器开箱体验:从拆包到点亮第一个LED灯的全过程

CW-DAPLINK调试器开箱体验&#xff1a;从拆包到点亮第一个LED灯的全过程 拆开快递包装的那一刻&#xff0c;看到印有CW-DAPLINK字样的白色小盒子&#xff0c;作为嵌入式开发新手的我既兴奋又忐忑。这款由武汉芯源半导体推出的调试工具&#xff0c;将成为我探索CW32系列MCU世界的…...

KAN网络实战:5分钟看懂如何用它‘可视化’发现物理定律(以安德森定域化为例)

KAN网络&#xff1a;用可视化方法发现物理定律的AI协作者 在科学研究的前沿&#xff0c;物理学家们常常需要从海量数据中识别出隐藏的规律和模式。传统的人工智能方法虽然能够提供预测结果&#xff0c;却往往难以解释其内部机制&#xff0c;这让科学家们难以信任和验证这些&quo…...

从硬复位到裸机运行:一张图看懂ZYNQ7000系列启动全流程(附Stage0/1/2详细解析)

从硬复位到裸机运行&#xff1a;ZYNQ7000启动全流程深度解析 当一块ZYNQ7000芯片首次通电时&#xff0c;内部究竟发生了什么&#xff1f;这个看似简单的上电过程&#xff0c;实际上隐藏着一套精密的启动机制。对于FPGA/SOC开发者而言&#xff0c;理解这套机制不仅是掌握ZYNQ开发…...