[bzoj3251][乱搞]树上三角形

c语言【分糖果】2023蓝桥杯4124(枚举,递归,dfs) 但是这是不符合我们糖果刚好分完的条件的,我们应该往回退到上一层,也就是孩子6这层,然后j+1=3,孩子7分到3个第二种糖果,这也不符合我们糖果刚好分完的条件,然后就会再次回退到孩子6这里,然后j+1=4,让我们的孩子7获得5块第二种糖果,然后还是不符合糖果刚分完的条件,于是再一次退回到孩子6这里,然后就会有外循环i+1=1,j=1,孩子7分到1块第一种糖果1块第二块糖果......然后就是这样的不停地回溯,试探,直到把整棵树遍历一遍,并且记录所有的满足条件的组合。先放一下我的代码,我的代码超时啦救命! 阅读详情

Description

给定一大小为n的有点权树,每次询问一对点(u,v),问是否能在u到v的简单路径上取三个点权,以这三个权值为边
长构成一个三角形。同时还支持单点修改。

Input

第一行两个整数n、q表示树的点数和操作数 第二行n个整数表示n个点的点权
以下n-1行,每行2个整数a、b,表示a是b的父亲(以1为根的情况下) 以下q行,每行3个整数t、a、b 若t=0,则询问(a,b)
若t=1,则将点a的点权修改为b n,q<=100000,点权范围[1,2^31-1]

Output

对每个询问输出一行表示答案,“Y”表示有解,“N”表示无解。

Sample Input

5 5

1 2 3 4 5

1 2

2 3

3 4

1 5

0 1 3

0 4 5

1 1 4

0 2 5

0 2 3

Sample Output

N

Y

Y

N

题解

先考虑给你n个值让你判三角形
把他们排序
从前往后枚举三个值判就可以了…
拓展到树上
我们发现
一个不合法的序列长度不会超过斐波那契数列的一个值
因为每次都会扩大a[i]+a[i-1]
然后…
如果两点距离大于45 肯定合法
斐波那契数列在45左右就超了int了
否则你就暴力判.
没了啊

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<queue>
#include<vector>
#include<ctime>
#define LL long long
#define mp(x,y) make_pair(x,y)
using namespace std;
inline int read()
{
	int f=1,x=0;char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
	return x*f;
}
inline void write(int x)
{
	if(x<0)putchar('-'),x=-x;
	if(x>9)write(x/10);
	putchar(x%10+'0');
}
inline void print(int x){write(x);printf(" ");}
struct node{int x,y,next;}a[210000];int len,last[110000];
void ins(int x,int y){len++;a[len].x=x;a[len].y=y;a[len].next=last[x];last[x]=len;}
int fa[110000][25],dep[110000],bin[25];
void pre_tree_node(int x)
{
	for(int i=1;bin[i]<=dep[x];i++)fa[x][i]=fa[fa[x][i-1]][i-1];
	for(int k=last[x];k;k=a[k].next)
	{
		int y=a[k].y;
		if(y!=fa[x][0])
		{
			fa[y][0]=x;dep[y]=dep[x]+1;
			pre_tree_node(y);
		}
	}
}
int lca(int x,int y)
{
	if(dep[x]<dep[y])swap(x,y);
	for(int i=20;i>=0;i--)if(bin[i]<=dep[x]&&dep[fa[x][i]]>=dep[y])x=fa[x][i];
	if(x==y)return x;
	for(int i=20;i>=0;i--)if(bin[i]<=dep[x]&&fa[x][i]!=fa[y][i])x=fa[x][i],y=fa[y][i];
	return fa[x][0];
}
int n,m,cal[110000];
int sta[110000],tp;
int main()
{
	bin[0]=1;for(int i=1;i<=20;i++)bin[i]=bin[i-1]<<1;
	n=read();m=read();
	for(int i=1;i<=n;i++)cal[i]=read();
	for(int i=1;i<n;i++)
	{
		int x=read(),y=read();
		ins(x,y);
	}
	pre_tree_node(1);
	while(m--)
	{
		int op=read(),x=read(),y=read();
		if(!op)
		{
			int LA=lca(x,y);
			if(dep[x]+dep[y]-dep[LA]-dep[fa[LA][0]]>45)puts("Y");
			else
			{
				tp=0;
				while(x!=LA)sta[++tp]=cal[x],x=fa[x][0];
				while(y!=LA)sta[++tp]=cal[y],y=fa[y][0];
				sta[++tp]=cal[LA];
				sort(sta+1,sta+1+tp);
				bool bk=false;
				for(int i=3;i<=tp;i++)
					if((LL)sta[i]<(LL)sta[i-1]+sta[i-2]){bk=true;break;}
				if(!bk)puts("N");
				else puts("Y");
			}
		}
		else cal[x]=y;
	}
	return 0;
}
汉书HE8,好用的汇编代码编写工具 汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大 立即下载

相关推荐

基于Unidbg的小红书加密协议动态分析与算法还原实战

在移动应用安全领域,加密协议与签名机制是保障数据传输安全、实现客户端身份验证的核心技术。其原理通常涉及哈希算法、对称/非对称加密以及自定义的混淆逻辑,旨在防止请求被篡改或重放。理解这些协议对于安全研究、风控策略制定及合规的数据交互分析具有重要价值。在实际的工程实践中,面对高度混淆和加固的Native代码(SO库),传统的静态分析往往难以深入。此时,沙盒模拟执行技术提供了一种动态、可控的分析方案。通过搭建一个虚拟的移动应用运行环境,研究人员可以在无需真机、规避反调试机制的情况下,完整地追踪和观察加密算法的执行

weixin_29315091的博客 325

【bzoj3251】树上三角形

曾经有一题,给一棵树,每次询问一些链,这条链上是否存在满足三角形不等式的边权。 如果这条链不满足的话,那么对于任意a[i]+a[i+1]都有<=a[j]。然后这个东西最朴素情况就是斐波那契数列。数据又很小,所以如果一条链长度大于50就肯定存在了。 至于这题……就只是多了个修!改!点!权! 非常脑残地写了lct 23333333 要是我出题肯定来个真*动态树上三角形,支持链、子树删除加入什么的

GEOTCBRL 925

画个板子玩一玩STM32F030F4P6,也许是最便宜的32bit MCU

前言,什么是STM32F030F4P6 STM32目前最便宜的芯片之一应该就是这一块,STM32F030F4P6,这一个芯片没有USB,但是其他都有,引脚少,价格低廉,如果找不到原厂,可以买替代的国产芯片,性能也一样。 不管怎么样也是Cortex-M0,比8bit和16bit的性能都强,总的来说就是低价,引脚少,体积小的同时,还容易开发,有很多模拟输入可玩,还有SPI,硬件I2C等等 所以,这一款MCU真的是从理论来说又便宜又好用,非常适合把玩。 画个板,最小系统 STM32F030其..

arenascat的博客 2万+

bzoj3251 树上三角形 乱搞

Description 给定一大小为n的有点权树,每次询问一对点(u,v),问是否能在u到v的简单路径上取三个点权,以这三个权值为边 长构成一个三角形。同时还支持单点修改。 若t=0,则询问(a,b) 若t=1,则将点a的点权修改为b n,q&lt;=100000,点权范围[1,2^31-1] Solution 考虑如果不存在会是什么情况。我们把所有边从小到大排序,无解即是∀i∈[1,n−2]...

olahiuj的博客 236

VMware ESXi 直通GPU

虚拟机需要独享GPU资源,那么就需要用到DirectPath I/O (直通),ESXi hypervisor 把 GPU 设备直接映射成虚机中的 GPU 设备,供应用使用。注意,内存注意一定要勾选预留,否则开机后报错如下:无法打开虚拟机 win10 的电源。1.ESXi主机,管理,硬件,PCI设备,勾选GPU卡,切换直通,会提示要求重启主机,重启主机之后,该GPU设备直通一栏显示为“活动”。先确认虚拟机是否EFI引导:编辑虚拟机 - 虚拟机选项 - 引导选项 - 固件 - EFI。

liwension的博客 6293

使用ClickHouse JDBC官方驱动,踩坑无数

这个问题我在网上查原因说是由于Zookeeper压力过大,表变成只读状态,导致ClickHouse插入数据失败。写入数据频率过高。Zookeeper中的集群节点挂掉。而我们项目出现这个问题的原因是第一个:写入数据频率过高。但是在网上搜资料的过程中,我又发现了另外一个问题:我们项目用了JDBC驱动,但ClickHouse官方并不推荐。。证实了官网确实不建议使用驱动:而应该改成驱动,并且推荐使用0.3.2以上的版本:于是,后面几天开始了ClickHouse的JDBC驱动升级之旅。

2万+

BZOJ3251:树上三角形(乱搞)

Description 给定一大小为n的有点权树,每次询问一对点(u,v),问是否能在u到v的简单路径上取三个点权,以这三个权值为边长构成一个三角形。同时还支持单点修改。 Input 第一行两个整数n、q表示树的点数和操作数 第二行n个整数表示n个点的点权 以下n-1行,每行2个整数a、b,表示a是b的父亲(以1为根的情况下) 以下q行,每行3个整数t、a、b 若t=0,...

weixin_34128501的博客 149

腾讯面试——机器学习岗面试总结

先写合并两个有序数组,接着写合并n个有序的数组,假设总共m个数,讲了一个思路两两合并直到只剩下一个数组,分析一下时间复杂度(MlogN),面试官不满意,然后想了一下说了另一个思路,用n个指针开始指向各个数组的首端,用一个优先队列维护他们的最小值,每次拿出最小值的指针然后插入该指针的下一个值。感觉跟二面面试官聊得还是挺开心的,他详细地介绍了他们部门所做的业务,然后问了一下什么时候能来实现,我说只能暑假七八两个月,他觉得有点晚,这样子不利于转正,有些人都实习半年的,回去讨论一下,正式批之前给我答复。

FPGA/MATLAB学习教程/源码/项目合作开发 1231

BZOJ3251: 树上三角形 乱搞

Description 给定一大小为n的有点权树,每次询问一对点(u,v),问是否能在u到v的简单路径上取三个点权,以这三个权值为边长构成一个三角形。同时还支持单点修改。 Sample Input 5 5 1 2 3 4 5 1 2 2 3 3 4 1 5 0 1 3 0 4 5 1 1 4 0 2 5 0 2 3 Sample Output N Y Y N 你将数列排序后,肯定是相邻几项组...

xgc_woker的博客 238

华为OD机试真题:明日之星选举 (Java/Py/C/ C++/JS/GO)

华为OD机试(机考)双机位C卷 【明日之星选举】,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - 明日之星选举。

qq_45776114的博客 919

ardupilot BMI088加速度陀螺仪学习

本节主要记录ardupilot 中BMI088传感器的学习过程,欢迎批评指正。BMI088是一款高性能6轴惯性传感器,由16位数字三轴±24g加速度计和16位数字三轴±2000°/ s陀螺仪组成。 BMI088允许高精度测量方向和沿三个正交轴的运动检测。BMI088具有高振动鲁棒性和3 x 4.5 x0.95mm³的小尺寸,是用于无人机和机器人应用等恶劣环境的高性能IMU中的独特产品。 BMI088专门设计用于有效抑制由于PCB上的共振或整个系统的结构而可能发生的振动。 除了高振动稳定性外,BMI088的出

陌城烟雨 2054

BZOJ3251 树上三角形

一看这题。。。难道要链剖乱搞什么的吗。。。不会啊汗。。。 突然发现不构成三角形的条件其实非常苛刻,由斐波那契数列: 1,1,2,3,5,8,13,21,34...... 可以知道其实小于int的大概就50项的样子。 于是路径长度>50直接输出'Y',否则排序判断。。。 看来还是蛮快的。。。 1 /**********************************...

weixin_30888413的博客 69

RAP 值帮助实战:用 CDS 注解把 Fiori Elements 的输入体验做得又快又准

本文系统介绍了如何在SAP RAP应用中实现高效的值帮助(Value Help)功能。通过复用标准CDS View和自定义View Entity,开发者可以快速为字段添加弹窗选择、搜索和下拉框功能。文章详细讲解了三种核心实现方式:复用标准值帮助CDS View实现快速集成;构建自定义View Entity支持企业特定编码;利用搜索注解(@Search)和下拉框注解(@ObjectModel)优化用户体验。特别强调了文本显示、模糊搜索和小结果集下拉等实用技巧,并提供了可直接复用的国家代码值帮助示例。这些方法能

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 6465

【屯题计划】【#1】

既然停课了就趁这半个月时间屯一波题解锁一下

退役狗的专栏 1413

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

[bzoj1225][DP][奇技淫巧]求正整数

Description 对于任意输入的正整数n,请编程求出具有n个不同因子的最小正整数m。例如:n=4,则m=6,因为6有4个不同整数因子1,2,3,6;而且是最小的有4个因子的整数。 Input n(1≤n≤50000) Output m Sample Input 4 Sample Output 6 题解 高精度问题 如果不涉及加减法 可以对答案取对数进行计算 这是这题的小...

Rose_max的博客 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

[bzo5368][数论][乱搞]真实排名

Description 小C是某知名比赛的组织者,该比赛一共有n名选手参加,每个选手的成绩是一个非负整数,定义一个选手的排名是 :成绩不小于他的选手的数量(包括他自己)。例如如果333位选手的成绩分别是[1,2,2],那么他们的排名分别是 [3,2,2]。拥有上帝视角的你知道所有选手的实力,所以在考试前就精准地估计了每个人的成绩,设你估计的第iii 个选手的成绩为Ai,且由于你是上帝视角,所以如...

Rose_max的博客 2284

[bzoj3579][乱搞]破冰派对

Description 由于计算机系的同学们都很宅,很多同学虽然身在一个系,但是入学很久还是相互不认识。学生会主席小Y希望举办一次破冰派对,要让同学们多从寝室里走出来参加娱乐活动,也要让尽量多不认识的同学们通过活动相互认识。自然的,如果参加活动的同学互相都不认识,那便是极好的。

Rose_max的博客 1223

[bzoj3563][乱搞]DZY Loves Chinese

Description 神校XJ之学霸兮,Dzy皇考曰JC。 摄提贞于孟陬兮,惟庚寅Dzy以降。 纷Dzy既有此内美兮,又重之以修能。 遂降临于OI界,欲以神力而凌♂辱众生。 今Dzy有一魞歄图,其上有N座祭坛,又有M条膴蠁边。 时而Dzy狂WA而怒发冲冠,神力外溢,遂有K条膴蠁边灰飞烟灭。 而后俟其日A50题则又令其复原。(可视为立即复原) 然若有祭坛无法相互到达,...

Rose_max的博客 1124

[bzoj3401][Usaco2009 Mar]Look Up 仰望

Description 约翰的N(1≤N≤105)头奶牛站成一排,奶牛i的身高是Hi(l≤Hi≤1,000,000).现在,每只奶牛都在向后看齐.对 于奶牛i,如果奶牛j满足i<j且Hi<Hj,我们可以说奶牛i可以仰望奶牛j. 求出每只奶牛离她最近的仰望对象. Input 第1行输入N,之后每行输入一个身高. N <= 10^5 Output 共N行,按顺序每行输出一只奶牛

Rose_max的博客 1042

[bzoj1217][贪心]消防局的设立

Description 2020年,人类在火星上建立了一个庞大的基地群,总共有n个基地。起初为了节约材料,人类只修建了n-1条道路来连接这些基地,并且每两个基地都能够通过道路到达,所以所有的基地形成了一个巨大的树状结构。如果基地A到基地B至少要经过d条道路的话,我们称基地A到基地B的距离为d。由于火星上非常干燥,经常引发火灾,人类决定在火星上修建若干个消防局。消防局只能修建在基地里,每个消防局有

Rose_max的博客 1006

[bzoj3477][Usaco2014 Mar][二分]Sabotage

Description Farmer John’s arch-nemesis, Farmer Paul, has decided to sabotage Farmer John’s milking equipment! The milking equipment consists of a row of N (3 <= N <= 100,000) milking machines,

Rose_max的博客 972

[牛客练习赛38E][乱搞]出题人的数组

Description 出题人有两个数组,A,B,请你把两个数组归并起来使得 c o s t = ∑ i ∗ c i cost=∑i∗ci最小 归并要求原数组的数的顺序在新数组中不改变 输入描述: 第一行输入两个正整数n,m,分别表示数组A,B的长度 第二行输入n个正整数,表示数组A 第二行输入m个正整数,表示数组B 输出描述: 一个正整数,表示cost 输入 3 3 1 3 5 2...

Rose_max的博客 794

[bzoj1650][Usaco2006 Dec][二分]跳石子

Description Every year the cows hold an event featuring a peculiar version of hopscotch that involves carefully jumping from rock to rock in a river. The excitement takes place on a long, strai

Rose_max的博客 709

[bzoj5485][Usaco2018 Dec][乱搞]The Cow Gathering

Description 奶牛们从世界各地聚集起来参加一场大型聚会。总共有N头奶牛,N?1对奶牛互为朋友。每头奶牛都可以通过一些朋 友关系认识其他每头奶牛。她们玩得很开心,但是现在到了她们应当离开的时间了,她们会一个接一个地离开。她 们想要以某种顺序离开,使得只要至少还有两头奶牛尚未离开,所有尚未离开的奶牛都还有没有离开的朋友。此外 ,由于行李寄存的因素,有M对奶牛(ai,bi)必须满足奶牛ai要...

Rose_max的博客 652

[bzoj4029][贪心]定价

Description 在市场上有很多商品的定价类似于 999 元、4999 元、8999 元这样。它们和 1000 元、5000 元和 9000 元并没有什么本质区别,但是在心理学上会让人感觉便宜很多,因此也是商家常用的价格策略。不过在你看来,这种价格十分荒谬。于是你如此计算一个价格 p(p 为正整数)的荒谬程度: 1、首先将 p 看做一个由数字组成的字符串(不带前...

Rose_max的博客 608

[bzoj2761][暴力]不重复数字

Description 给出N个数,要求把其中重复的去掉,只保留第一次出现的数。 例如,给出的数为1 2 18 3 3 19 2 3 6 5 4,其中2和3有重复,去除后的结果为1 2 18 3 19 6 5 4。 Input 输入第一行为正整数T,表示有T组数据。 接下来每组数据包括两行,第一行为正整数N,表示有N个数。第二行为要去重的N个正整数。 Output 对于每组数据,输

Rose_max的博客 592

[Codeforces1045B][乱搞] Space Isaac

翻译 有0~m-1的数被分成了两个集合 每次你可以从两个集合中任取一个数做加法并对m取模 问最后0~m-1中不能被组合出来的数有多少个 会给出你A集合 大小不超过200000 m&amp;lt;=1e9 题解 比赛的时候想不到… 不妨先看一个数在什么情况下不能被表示出来 设这个数为P 如果有一个数x在A集合 显然(P-x)mod m也要在A集合 否则显然可以表示出这个数 x可以分为两段 小于P和大于...

Rose_max的博客 586
上一篇: [bzoj1138][BFS][DP]Baj 最短回文路
下一篇: [bzoj1101][莫比乌斯反演]Zap
Rose_max
博客等级 码龄10年 97粉丝 610原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值