HDU 1698

本文分享了一个线段树的实现案例,通过具体的代码演示了如何构建、更新和查询线段树,帮助读者理解线段树的基本原理及其应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线段树,手痒,又写了一题,我的作业委屈,我作业落下好多了,就是不想安静下来看书

 

#include<iostream>
using namespace std;

const int MAX=100001;

struct T
{
	int l,r,m,va;
}tree[MAX*3];

void Build_tree(int root,int l,int r)
{
	tree[root].l=l;
	tree[root].r=r;
	tree[root].m=(l+r)>>1;
	if(l==r)
	{
		tree[root].va=1;
		return ;
	}
	tree[root].va=-1;
	Build_tree(root<<1,l,tree[root].m);
	Build_tree(root<<1|1,tree[root].m+1,r);
}

void Updata(int root,int l,int r,int va)
{
	if(tree[root].l==l&&tree[root].r==r)
	{
		tree[root].va=va;
		return ;
	}
	if(tree[root].va!=-1)
	{
		tree[root<<1].va=tree[root<<1|1].va=tree[root].va;
		tree[root].va=-1;
	}
	if(r<=tree[root].m)
		Updata(root<<1,l,r,va);
	else if(l>tree[root].m)
		Updata(root<<1|1,l,r,va);
	else
	{
		Updata(root<<1,l,tree[root].m,va);
		Updata(root<<1|1,tree[root].m+1,r,va);
	}
}

int Query(int root)
{
	if(tree[root].va!=-1)
	{
		return (tree[root].r-tree[root].l+1)*tree[root].va;
	}
	return Query(root<<1)+Query(root<<1|1);
}

int main()
{
	int t,m,n,l,r,va;
	int tt=1;
	scanf("%d",&t);
	while (t--)
	{
		scanf("%d",&n);
		Build_tree(1,1,n);
		scanf("%d",&m);
		while (m--)
		{
			scanf("%d%d%d",&l,&r,&va);
			Updata(1,l,r,va);
		}
		printf("Case %d: The total value of the hook is %d.\n",tt++,Query(1));
	}
	return 0;
}

内容概要:本文档详细介绍了基于多车协作建图和改进人工势场法的路径规划算法的实现。首先,通过烟花算法优化多车局部地图的融合,解决了多车协作建图的问题。其次,提出了改进的人工势场法,解决了传统APF存在的目标不可达、振荡和局部最小值等问题。接着,通过动态势场方法考虑了车辆的相对速度,进一步提高了路径规划的安全性和效率。最后,通过完整的系统集成和仿真实验,验证了所提方法的有效性。文档还包含了详细的代码实现、关键算法解释及性能对比分析,展示了改进方法在最小安全距离、计算时间和行驶总距离等方面的优越性。 适合人群:具备一定编程基础,对自动驾驶、机器人路径规划及优化算法感兴趣的科研人员和工程师。 使用场景及目标:①研究多车协作建图技术,理解烟花算法在地图融合中的应用;②掌握改进人工势场法的核心思想和技术细节;③分析动态势场方法在处理复杂环境下的优势;④通过实验验证和性能对比,评估不同算法的效果,为实际应用提供参考。 其他说明:此资源不仅提供了详细的代码实现和注释,还涵盖了完整的理论推导和实验验证过程,适合深入学习和研究。文档中的代码严格遵循论文中的算法描述和参数设置,并提供了丰富的可视化工具帮助理解和分析实验结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值