【51nod】猴猴的比赛【dfs】

QT串口通信控制LED上位机开发教程 串口通信是嵌入式系统与PC端交互的基础技术,通过UART协议实现设备间的数据传输。QT框架提供了跨平台的串口编程支持,结合其GUI模块可以快速开发上位机控制程序。在工业自动化和物联网领域,这种上下位机架构广泛应用于设备监控和控制场景。本案例展示了如何使用QT的SerialPort模块实现LED控制功能,包含串口参数配置、指令发送等核心功能实现,为嵌入式GUI开发提供实践参考。 阅读详情

题目大意:

题目链接:https://www.51nod.com/Contest/Problem.html#contestProblemId=1150
猴猴今天要和小伙伴猩猩比赛爬树,为了公平不碰撞,猴猴和猩猩需要在不同的树上攀爬。于是它们选了两颗节点数同为n的树,并将两棵树的节点分别以1~n标号(根节点标号为1),但两棵树的节点连接方式不尽相同。

现在它们决定选择两个标号的点进行比赛。为了方便统计,规定它们比赛中必须都向上爬。(即选定的赛段节点u→节点v都必须指向叶子方向)请你求出这两棵树上共有多少对节点满足比赛的需求。


思路:

我们对第一棵树的每一个节点按 d f s dfs dfs序标号。然后顺便求出每一个节点为根的子树的编号区间 [ L x , R x ] [L_x,R_x] [Lx​,Rx​]。
然后对第二棵树进行 d f s dfs dfs。对于一个点 x x x,我们先将他的所有子节点求出答案,每求完一个点的答案就把这个点在第一棵树中对应的编号位置 a i a_i ai​记为1。那么 x x x与其子节点对答案的贡献就是 ∑ i = L x R x a i \sum^{R_x}_{i=L_x}a_i ∑i=Lx​Rx​​ai​。
时间复杂度 O ( n log ⁡ n ) O(n\log n) O(nlogn)


代码:

#include <cstdio>
#include <cstring>
using namespace std;

const int N=100010;
int n,tot,head[N],L[N],R[N];
long long ans;

struct edge
{
	int next,to;
}e[N*2];

struct BIT
{
	int c[N];
	
	void add(int x)
	{
		for (int i=x;i<=n;i+=i&-i)
			c[i]++;
	}
	
	int ask(int x)
	{
		int sum=0;
		for (int i=x;i;i-=i&-i)
			sum+=c[i];
		return sum;
	}
}bit;

void add(int from,int to)
{
	e[++tot].to=to;
	e[tot].next=head[from];
	head[from]=tot;
}

void dfs1(int x,int fa)
{
	L[x]=++tot;
	for (int i=head[x];~i;i=e[i].next)
		if (e[i].to!=fa) dfs1(e[i].to,x);
	R[x]=tot;
}

void dfs2(int x,int fa)
{
	for (int i=head[x];~i;i=e[i].next)
		if (e[i].to!=fa)
		{
			ans-=(long long)bit.ask(R[e[i].to])-bit.ask(L[e[i].to]);
			dfs2(e[i].to,x);
		}
	ans+=(long long)bit.ask(R[x])-bit.ask(L[x]);
	bit.add(L[x]);
}

int main()
{
	scanf("%d",&n);
	memset(head,-1,sizeof(head));
	for (int i=1,x,y;i<n;i++)
	{
		scanf("%d%d",&x,&y);
		add(x,y); add(y,x);
	}
	tot=0; dfs1(1,0); tot=0;
	memset(head,-1,sizeof(head));
	for (int i=1,x,y;i<n;i++)
	{
		scanf("%d%d",&x,&y);
		add(x,y); add(y,x);
	}
	dfs2(1,0);
	printf("%lld\n",ans);
	return 0;
}
Netty源码分析系列之writeAndFlush()下 write()只会将数据只是发送到了ChannelOutboundBuffer 缓冲区中,还没有被发送到操作系统的套接字中只有当调用了 flush()方法后,才会真正将数据发送到套接字中。那么 flush()方法的源码又是如何执行的呢? 阅读详情

相关推荐

Zabbix Trigger actions访问出现500

本篇博客详细介绍了Zabbix访问'Trigger actions'出现的错误状况,访问界面出现500,并提供了解决方案。

格子的博客 562

51nod-猴猴的比赛【莫队,线段树】

正题 题目链接:https://www.51nod.com/Contest/Problem.html#contestProblemId=1150 题目大意 给出两颗nnn个点的树,求有多少个点(i,j)(i,j)(i,j)对使得在两棵树中iii都是jjj的祖先。 解题思路 在dfsdfsdfs序中一个节点的孩子是在一个连续的区间中的。所以对于第一棵树的每个节点的区间都作为询问,用莫队进行排序。...

QuantAsk 433

ANSYS Discovery 2023R1 保姆级教程:手把手教你玩转几何模型参数化(附避坑指南)

本文提供ANSYS Discovery 2023R1几何模型参数化的全面教程,涵盖基础环境搭建、核心操作解析及高级应用场景。重点讲解参数化建模中的常见问题与避坑方案,帮助用户高效掌握Workbench与Discovery的协同使用技巧,提升工程仿真效率。

weixin_29204205的博客 752

[11.02] 猴猴的比赛

题目描述 猴猴今天要和小伙伴猩猩比赛爬树,为了公平不碰撞,猴猴和猩猩需要在不同的树上攀爬。于是它们选了两颗节点数同为n的树,并将两棵树的节点分别以1~n标号(根节点标号为1),但两棵树的节点连接方式不尽相同。 现在它们决定选择两个标号的点进行比赛。为了方便统计,规定它们比赛中必须都向上爬。(即选定的赛段节点u→节点v都必须指向叶子方向)请你求出这两棵树上共有多少对节点满足比赛的需求。 题目解析 先...

AAA_Ljw 384

Stata实战:DID平行趋势检验完整操作指南(附reghdfe+coefplot代码)

本文提供了一份使用Stata进行DID平行趋势检验的完整实战指南。文章详细讲解了从数据准备、生成相对时间变量,到利用reghdfe命令构建动态效应模型,以及使用coefplot命令进行结果可视化的全流程操作。核心在于通过检验政策前交互项的显著性,验证处理组与对照组是否满足平行趋势假设,为后续因果推断奠定可靠基础。

weixin_29231725的博客 1380

伺服电机的位置控制模式:PP模式与CSP模式的比较

在轮廓位置模式下,上位机给定目标绝对位置(或相对位置)、速度、加速度等参数,伺服内部的轨迹发生器根据这些参数生成目标位置曲线指令,通过伺服驱动器内部实现三环控制(位置环、速度环、力矩环)。如果还不理解,不妨看看下面的类比:轮廓位置模式中,上位控制器对伺服电机说,我给你个位置,怎么去哪,走那条路,那是你自己的事,这个时候伺服电机是有自己的思想的。同期同步位置模式红,上位机控制器对伺服电机的管理就和 严格,除了告诉你目标位置,走那条路都是控制器说的算,伺服电机就是个没有灵魂的工具。重点关注,轮廓位置模式。

m0_49968063的博客 5805

51nod 猴猴吃苹果

长链剖分

Ajwallet 565

CloudCompare 二次开发(16)——计算点云最值

不依赖任何第三方点云相关库,使用ClopudCompare计算点云最值。

点云侠的博客 517

51nod 猴猴的比赛

树上逆序对

Ajwallet 490

uboot引导vxworks--t2080调试记录

开发环境: t2080rdb, uboot2015, vxworks7.01. 《VxWorks_7_fsl_t2t4_BSP_Supplement_Guide__SR0620.pdf》描述: 实际上默认创建的vip,profile选项为none时,vip内核配置中是包含了INCLUDE_END选项的。所以在创建vip的时候最好就添加上PROFILE_DEVELOPMENT。 2. 内核参数bootargs是一些网络参数设置=> pri bootargs bootargs=memac(1,0)b109304

珂珂可爱多 2640

在实车上进行lio-sam测试

PS:将雷达和imu相对固定后,拆下来,原地晃啊晃,直到xyz进度达到百分百,参考gif。标定完成后,会在result文件夹下生成result.txt。

如果想成为中心,那么就到中心去吧。 997

51nod比赛

http://www.cnblogs.com/wzj-is-a-juruo/p/5619901.html 转载于:https://www.cnblogs.com/OYzx/p/5800499.html

weixin_30243533的博客 193

华为OD机试真题-国际移动用户识别码(IMSI)匹配

华为OD机试双机位C卷 国际移动用户识别码(IMSI)匹配 , 提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试 - 国际移动用户识别码(IMSI)匹配

qq_45776114的博客 4927

【51nod】猴猴吃香蕉【背包】

题目大意: 题目链接:http://www.51nod.com/Contest/Problem.html#contestProblemId=1149 猴猴最爱吃香蕉了。每天猴猴出门都会摘很多很多的香蕉,每个香蕉都有一个甜度,猴猴不一定要把所有的香蕉都吃掉,猴猴每天都有一个心情值K,猴猴希望当天吃的香蕉满足这么一个条件,这些香蕉的甜度乘积恰好等于K,但是猴猴并不知道有多少种方法,于是猴猴把这个问题交...

stoorz 367

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

51nod1630 B君的竞技场

链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1630 题意:中文题。。。 分析:首先我们不知道B君的实力,设获胜概率为p,即p的取值范围为[0,1]。设f[i][j]表示胜i场输j场的概率,那么有f[i][j]=f[i-1][j]*p+f[i][j-1]*(1-p)。这样我们就求出了每一种情况的概率是一个关于

Fsss 974

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

费马大定理(原根+扩欧)

考虑方程x^k+y^k=z^k,其中x,y,z,k≠0 ,且均为正整数。众所周知,由费马大定理,当k> 2时,方程无解。现在考虑在模意义下的问题。 给定一个质数P,以及一个正整数L,现在想知道有多少个整数k,满足1<=k<=L,存在x,y,z,0<x,y,z<P,使得x^k+y^k≡z^k(mod P) 输入 输入两个整数P,L。 输出 输出一个整数代表合法...

oneplus123的博客 830

51NOD算法马拉松 最大值问题 离线预处理+set lower_bound

题目:http://www.51nod.com/contest/problem.html#!problemId=1349 题意:100000个数的序列,有100000次询问,每次问区间最大值大于等于k的区间有多少? 思路:一开始没看到“大于等于”,想了很久也不会,原来看错题了。看错题害死人。 一般询问的问题,如果不能用线段树log(n)求出,那么就离线做。 首先将询问按从大到小排序

alpc_wt的专栏 1566

51nod 1099 任务执行顺序(贪心)

1099 任务执行顺序 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 有N个任务需要执行,第i个任务计算时占R[i]个空间,而后会释放一部分,最后储存计算结果需要占据O[i]个空间(O[i] < R[i])。 例如:执行需要5个空间,最后储存需要2个空间。给出N个任务执行和存储所需的空间

K键盘里的青春K 720

【洛谷P1236】算24点【搜索】

比较简单的搜索题,注意细节即可

stoorz 1666

【洛谷P4205】智慧珠游戏【dfs】

题目大意: 题目链接:https://www.luogu.org/problem/P4205 智慧珠游戏拼盘由一个三角形盘件和 12 个形态各异的零件组成。拼盘的盘 件如图 1 所示 可以放到盘件的任一位置,条件是能有地方放,且 尺寸合适,所有的零件都允许旋转(0º、90º、180º、270º)和翻转(水平、竖直)。 现给出一个盘件的初始布局,求一种可行的智慧珠摆放方案,使所有的零件 都能放...

stoorz 1555

【JZOJ5776】小x游世界【换根法】【DP】【DFS】

题目大意: 题目链接:https://jzoj.net/senior/#main/show/5776 题目图片: http://wx4.sinaimg.cn/mw690/0060lm7Tly1fvjhzcpt7jj30j50f1aaw.jpg http://wx1.sinaimg.cn/mw690/0060lm7Tly1fvjhzchmayj30j30e5t8x.jpg http://wx4.si...

stoorz 1091

【JZOJ3888】正确答案【模拟】【dfs】

题目: 题目链接:https://jzoj.net/senior/#main/show/3888 小H与小Y刚刚参加完UOIP外卡组的初赛,就迫不及待的跑出考场对答案。 “吔,我的答案和你都不一样!”,小Y说道,”我们去找神犇们问答案吧”。 外卡组试卷中共有m道判断题,小H与小Y一共从其他n个神犇那问了答案。之后又从小G那里得知,这n个神犇中有p个考了满分,q个考了零分,其他神犇不为满分或零分。这...

stoorz 990

【CSP-S 2019】【洛谷P5666】树的重心【主席树】【树状数组】【dfs】

菜菜菜菜菜菜菜 终于改出来了qwq

stoorz 788

【洛谷P5651】基础最短路练习题【dfs】【并查集】

题目: 给定nnn个点mmm条边的无向简单联通图GGG,边有边权。保证没有重边和自环。 定义一条简单路径的权值为路径上所有边边权的异或和。 保证GGG中不存在简单环使得边权异或和不为0。 QQQ次询问xxx到yyy的最短简单路径。 思路: 题目保证了每一个简单环的异或和均为0。也就是说对于环上的任意两点(x,y)(x,y)(x,y),从x→yx\to yx→y的两条路径的权值相等。 所以对于每一...

stoorz 704

数字游戏【dfs】

卡常神题orzorz

stoorz 676

【CSP-S 2019】【洛谷P5658】括号树【dfs】【二分】

入门组选手承受范围之内233

stoorz 647

【JZOJ 3470】最短路【最短路】【DFS】

题目大意: 题目链接:https://jzoj.net/senior/#main/show/3470 给定一个nnn个点mmm条边的有向图,有kkk个标记点,要求从规定的起点按任意顺序经过所有标记点到达规定的终点,问最短的距离是多少。 思路: 最短路+DFS 首先,对于每一个标记点和sss点,以它们为起点跑一边SPFA,由于k≤10k≤10k\leq10,所以我们就可以得到一个只...

stoorz 565
上一篇: 【牛客CSP-S提高组赛前集训营1】A - 仓鼠的石子游戏【博弈论】
下一篇: 【51nod】猴猴吃苹果【树链剖分】
stoorz1023
博客等级 码龄9年 101粉丝 595原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值