hdu 1556 线段树

缠论 公式 自动画线 画笔 中枢 买卖点 源代码 【代码】缠论 公式 自动画线 画笔 中枢 买卖点 源代码。 阅读详情

题意:

N个气球

涂色:将【l,r】涂一次颜色

查询:最后输出每个气球被涂了多少次色

思路:

查询:区间维护加法和,查询到叶子

修改:维护可叠加标记lazy,每次区间内气球的次数+=1

难度:0.6

1263ms


#include<stdio.h>
#include<math.h>
#include<iostream>
using namespace std;
const int inf=0x3f3f3f;
struct Stree
{
	int val;
	int lazy;
} sts[4*100005]; //开4倍

int pushup(int root)
{
	sts[root].val=sts[root<<1].val+sts[root<<1|1].val;
}
int pushdown(int root)
{
	if(sts[root].lazy!=0)
	{
		sts[root<<1].lazy+=sts[root].lazy;
		sts[root<<1|1].lazy+=sts[root].lazy;
		sts[root<<1].val+=sts[root].lazy;
		sts[root<<1|1].val+=sts[root].lazy;
		sts[root].lazy=0;
	}
}
void build(int l,int r,int root)//根节点从1开始吧
{
	if(l==r)//到达子节点
	{
		sts[root].val=0;
	}
	else
	{
		sts[root].val=sts[root].lazy=0;//没了这句会WA,清空lazy跟val
		int mid=(l+r)>>1;//(l+r)/2
		build(l,mid,root<<1);
		build(mid+1,r,root<<1|1);
		pushup(root);//更新本节点
	}
}
int query(int nowl,int nowr,int ql,int qr,int root)
{
	if(nowl>=ql&&nowr<=qr)
	{
		return sts[root].val;
	}
	pushdown(root);
	int mid=(nowl+nowr)>>1;
	int ans=0;
	if(ql<=mid)ans+=query(nowl,mid,ql,qr,root<<1);
	if(qr>mid)ans+=query(mid+1,nowr,ql,qr,root<<1|1);
	return ans;
}

void update(int nowl,int nowr,int ul,int ur,int root,int addval)//nowl,nowr 当前区间  ul,ur 需修改的区间
{
	if(ul<=nowl&&ur>=nowr)//当前区间是修改区间的子区间
	{
		sts[root].val+=addval;
		sts[root].lazy+=addval;
		return ;
	}
	int mid=(nowl+nowr)>>1;
	pushdown(root);
	if(ul<=mid) update(nowl,mid,ul,ur,root<<1,addval);//左子树与修改区间有交集
	if(ur>mid)  update(mid+1,nowr,ul,ur,root<<1|1,addval);
	pushup(root);

}
void op(int n);
int main()
{
	int n;
	while(cin>>n)
	{
		if(n==0)break;
		build(1,n,1);
		//op(n);
		int a,b;
		int T=n;
		while(T--)
		{
			scanf("%d %d",&a,&b);
			update(1,n,a,b,1,1);
		}
		printf("%d",query(1,n,1,1,1));
		for(int i=2; i<=n; i++)
		{
			printf(" %d",query(1,n,i,i,1));
		}
		printf("\n");

	}


}



void op(int n)
{
	printf("\n///////\n");
	int up=pow(2.0,ceil(log10((double)n)/log10(2.0))+1)-1;
	for(int i=1; i<=up; i++)
	{
		printf("%d ",sts[i].val);
		int t=log10((double)i+1.0)/log10(2.0);
		if(pow(2.0,t)==i+1)
			printf("\n");
	}
	printf("///////\n");
}


企业级OpenClaw部署实战:10个关键配置让你从“养虾“到“精通“ OpenClaw(社区昵称"小龙虾")作为2026年开源社区最活跃的AI Agent项目,凭借其多Agent协同架构和企业级安全隔离能力,已成为中大型企业的首选AI基础设施。本文基于真实企业部署经验,系统梳理了企业级OpenClaw部署的10个关键配置:用户ID消息隔离、群组ID消息隔离、多机器人配置、无限量Agent创建、机器人与Agent关联、Agent间调度、权限配置、Hooks任务、多模型切换及一键备份迁移。 阅读详情

相关推荐

苍穹外卖项目面试总结话术

美食速递这个项目最初是我参与制作的大创项目,是一款为中南学生提供校园外卖送至宿舍服务的软件,包含系统管理后台和小程序端两部分。其中系统管理后台主要提供给食堂内部员工使用,可以对食堂各个窗口、员工、订单、菜品等进行维护管理;小程序端可以在线浏览菜品、添加购物车、下单等,由学生兼职做跑腿送餐上门服务。这是个前后端分离的项目,我主要是负责后端的用户登录、员工管理,菜品管理,订单管理模块的编码实现。

qq_45195447的博客 1万+

HDU1556 - 线段树基础

Question: 给出一个序列,我们每次都可以给一段子序列进行一次操作 序列的数据量是n(n Solution: 首先,为了更好的理解我们的线段树的优化措施 我们先来考虑一下我们的朴素的做法 对于这道题,我们的做法无非就是开辟一个一维数组,每次对那个区间进行操作,我们就对区间范围呢你的所有的数据都统一进行累加操作 最后,我们将以为数组的值全部输出就好了 该算法的时间复杂度

72 73 76 89 82 84 89 81 2196

Zabbix故障排查10051端口无法启动:zabbix-server.service: main process exited, code=exited, status=1/FAILURE

zabbix-server.service: main process exited, code=exited, status=1/FAILURE报错说与数据库失去连接。

" DevOps菜鸟(Xu JieHao)" 的博客 2258

HDU1556(线段树)

代码:#include<stdio.h> #define maxn 1000005 int nn; struct node { int l,r,sum; }str[maxn]; void build(int l,int r,int n) { str[n].l=l; str[n].r=r; str[n].sum=0; if(l==r) retur

hndu__lz的博客 463

软硬件协同设计的大小端问题

缘起 最近需要在soc系统内做协处理器,加速AES加密运算,寄存器一次读取32bit,AES一次处理128bit,因此在数据拼接的时候,需要考虑大小端的问题,特来记录一番。 一、什么是大小端 大小端的问题发生在寄存器和内存间传递数据,这点非常重要,很多地方简单地说是数据存储方式,其实不准确。追根溯源,大小端问题是在设计load,store指令的时候考虑的,因此本质是寄存器和内存交互的问题,其他地方不会发生。 比如c语言里定义一个变量int a=ox1234,那么查看在线汇编平台的对应汇编代码: # 给2号寄

http://www.icfgblog.com/ 613

BK7238(XH-WB3S)固件烧录实战:从AT固件选择到稳定下载全解析

本文详细解析了BK7238(XH-WB3S)模组固件烧录的全过程,从AT固件版本选择到稳定下载的实战技巧。重点介绍了烧录前的准备工作、硬件连接的正确姿势、烧录软件的实战技巧以及疑难问题排查指南,帮助开发者高效完成BK7238模组的固件烧录。

weixin_29159441的博客 253

hdu1556 线段树段更新(简单题)

题意

天使也掉毛 2815

[RAM] DRAM 导论:DDR4 | DDR5 | LPDDR5 | GDRR6 | HBM 应运而生

有数据的地方就有存储, 内存是谁都离不开的产品。而动态随机存取存储器(DRAM)作为一种常见的内存。本博客将介绍DRAM的基本概念、工作原理、优缺点以及应用领域等方面。

串起点滴 3920

hdu1556区间问题(前缀和,树状数组,线段树)

题目链接:hdu1556解法一,前缀和:#include &lt;cstdio&gt; #include &lt;cmath&gt; #include &lt;cstring&gt; #include &lt;string&gt; #include &lt;cstdio&gt; #include &lt;algorithm&gt; #include &lt;iostream&gt; #includ

reallsp的博客 334

在Simulink中构建永磁同步电机的网络化控制模型,并分析通信网络对系统性能的影响

核心优势通过仿真验证了网络延迟和丢包对PMSM控制性能的影响。提供了改进PI参数或引入自适应控制的解决方案。扩展方向抗干扰控制:结合卡尔曼滤波或滑模控制抑制网络噪声。时间敏感网络(TSN)建模:参考知识库[2]的中断触发方式,实现确定性通信。网络安全仿真:模拟恶意攻击(如数据篡改)对控制系统的威胁。

xiaoheshang_123的博客 168

ardupilot BMI088加速度陀螺仪学习

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

陌城烟雨 2056

hdu 1556 线段树区间延迟更新好题

656mS#include #include #define N 110000 struct node { int x,y,yanchi,sum; }a[N*10]; void build(int t,int x,int y) { a[t].x=x; a[t].y=y; a[t].sum=0; a[t].yanchi=0; if(x==y)return ; int temp=t*2; int mi

晴朗的博客 589

《用 AI 赋能医药科研创新》目录(持续更新)

本专栏旨在指导医学科研和药物研发人员运用AI技术提升研究效率。内容包括:利用AI分析文献、识别研究热点、自动生成研究草稿;在新药研发中,通过AI优化临床方案设计、受试者筛选等环节;介绍AI理论基础如大语言模型、提示词工程学及智能体技术发展历程。专栏采用5000-9000字的长文形式,系统讲解AI在医药研发各环节的应用方法,帮助研究者缩短周期、降低成本,推动医药研发进入智能化新阶段。

MD Code 501

HDU-1556(线段树或树状数组)

题目链接: Color the ball 思路 已经写过一次类似前缀和的题解了,这次再写一遍线段树或树状数组的解法。这题是区间更新和单点查询,线段树的单点查询不过是区间查询的特殊形式,代码是一样的。但是树状数组的区间更新和单点查询却不同于区间更新和区间查询。不过此处就不详细说了,树状数组本身就是个神奇的东西。 1.线段树 #include &lt;iostream&gt; #include &l...

“”云腾致雨“”的博客 273

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Color the ball - HDU 1556 - 线段树 区间更新单点查询

Color the ball - HDU 1556 - 线段树 区间更新单点查询  国际惯例中文题目不解释,思路直接裸线段树,Lazy思想入门题。  Lazy传送门:延迟更新详解AC代码:// // main.cpp // L // // Created by LucienShui on 2017/5/28. // Copyright © 2017年 LucienShui. All righ

LucienShui 900

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

hdu 1556 Color the ball 线段树

题目链接:HDU - 1556 N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一次颜色。但是N次以后lele已经忘记了第I个气球已经涂过几次颜色了,你能帮他算出每个气球被涂过几次颜色吗? Input 每个测试实例第一行为一个整数N,(N <= 100000...

weixin_30421525的博客 124

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

hdu1556 线段树更新区间

http://acm.hdu.edu.cn/showproblem.php?pid=1556 中文题 不解释题意 线段树典型区间更新问题,不能更新到叶子节点,需要延迟标记,否则TL #include #include #include #include #include #include #include #include #include #include #inclu

jk13171217的专栏 415

hdu1556 Color the ball 线段树,成段更新水题

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1556 思路:

basement_boy 734

hdu 1556 Color the ball(线段树)

//hdu 1556 Color the ball(线段树) #include #include using namespace std; const int N=301000; struct node { int l; int r; int vu; }tree[N]; void buildtree(int v,int l,int r)//建树初始状态都为0 { t

u014068781的专栏 390

HDU1556 Color the ball(线段树模板+lazy标记)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1556 思路 比较明显的线段树模板题,建立线段树进行维护区间修改和区间查询,需要打lazy标记,本题采用线段树结构体的写法。 代码 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int INF = 0x3f3f3f3f; const int maxn = 1e5+10; struct node{ i

Chstelove的博客 208

hdu 1556 Color the ball (线段树,延迟更新)

http://acm.hdu.edu.cn/showproblem.php?pid=1556 (1)延迟更新:pushdown()函数,记得在所有的查询、更新函数中都要使用到。这里用到懒惰标记mark[]数组。 (2)很基础的题,1A。 具体代码: View Code #include<stdio.h> #define lson l, m, rt<<...

weixin_30872789的博客 89

HDU 1556 Color the ball 线段树 区间更新

原题: http://acm.hdu.edu.cn/showproblem.php?pid=1556#include <iostream> #include"cstdio" #include"string.h" using namespace std;const int N= 100005; struct node { int left; int right; int ad

ShineRoyal 502

HDU - 1556 Color the ball 线段树

HDU - 1556 Color the ballN个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a &lt;= b),lele便为骑上他的“小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一次颜色。但是N次以后lele已经忘记了第I个气球已经涂过几次颜色了,你能帮他算出每个气球被涂过几次颜色吗?Input每个测试实例第一行为一个整数N,(N &lt;= 10...

GYH0730的博客 365

树状数组 Color the ball hdu 1556 线段树 洛谷p3372

树状数组和并查集一样,也是一个高级数据结构,编码简单,在算法竞赛中有着极其强大的应用。并查集主要解决的是集合的问题,而树状数组主要解决的则是有关区间的问题;并查集最本质的优化就是可以迅速找到元素所属的集合,树状数组则是可以在动态的数组中快速查询区间和。

2301_80093604的博客 1402

HDU1556:线段树

HDU1556:区间更新,单点查询全部 (单点查询时,一次查询到底,用数组记录) #include &lt;bits/stdc++.h&gt; using namespace std; int const N = 100000 + 10; int n,a[N]; struct Node { int l,r,sum,lazy; void updata(int val){ lazy +=...

FlyingJack 474

HDU.1556 Color the ball (线段树 区间更新 单点查询)

HDU.1556 Color the ball (线段树 区间更新 单点查询)题意分析注意一下pushdown 和 pushup 模板类的题还真不能自己套啊,手写一遍才行代码总览#include <bits/stdc++.h> #define nmax 200000 using namespace std; struct Tree{ int l,r,val; int lazy;

Pengwill's Blog 361
上一篇: hdu1166 线段树单点更新区间查询
下一篇: POJ2777 线段树染色
animalcoder
博客等级 码龄9年 43粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值