Just a Hook(线段树模板)
题意
n个铜棒子,对其进行区间修改,将区间中的棒子价值增加,问最后所有棒子的总价值是多少。
铜棒:1
银棒:2
金棒:3
思路
线段树模板题
建树时,每个节点值都为1,对其进行区间修改
最后输出根节点即为所求
代码
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define ll long long
#define N 100100
int lazy[4*N],sum[4*N];void build(int k,int l,int r)
{if(l==r){sum[k]=1;return;}int mid=(l+r)/2;build(k<<1,l,mid);build(k<<1|1,mid+1,r);sum[k]=sum[k<<1]+sum[k<<1|1];
}
void pushdown(int k,int l,int r)
{if(lazy[k]){lazy[k*2+1]=lazy[k*2]=lazy[k];sum[k*2]=lazy[k]*l;sum[k*2+1]=lazy[k]*r;lazy[k]=0;}
}
void update(int k,int l,int r,int x,int y,int v)
{if(x<=l&&r<=y){sum[k]=v*(r-l+1);lazy[k]=v;return;}int mid=(l+r)/2;pushdown(k,mid-l+1,r-mid);if(x<=mid) update(k*2,l,mid,x,y,v);if(mid<y) update(k*2+1,mid+1,r,x,y,v);sum[k]=sum[k*2]+sum[k*2+1];
}
int main()
{int cas=1,t,n,m;scanf("%d",&t);while(t--){memset(sum,0,sizeof(sum));memset(lazy,0,sizeof(lazy));scanf("%d%d",&n,&m);build(1,1,n);for(int i=0;i<m;i++){int t1,t2,t3;scanf("%d%d%d",&t1,&t2,&t3);update(1,1,n,t1,t2,t3);}printf("Case %d: The total value of the hook is %d.\n",cas++,sum[1]);}return 0;
}
Just a Hook(线段树模板)相关推荐
- 线段树模板题3:区间染色问题
1.3线段树模板题3:区间染色问题 在DotA游戏中,帕吉的肉钩实际上是大多数英雄中最恐怖的东西.挂钩由长度相同的几个连续的金属棍组成. 现在,帕吉(Pudge)希望对挂接进行一些操作. 让我们将钩子 ...
- hdu1156(简单线段树 模板题)
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- 线段树模板hdu 1754:I Hate It
I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- hdu1754 I hate it线段树模板 区间最值查询
题目链接:这道题是线段树,树状数组最基础的问题 两种分类方式:按照更新对象和查询对象 单点更新,区间查询; 区间更新,单点查询; 按照整体维护的对象: 维护前缀和; 维护区间最值. 线段树模板代码 # ...
- 【AHOI2009】【BZOJ1798】Seq 维护序列seq(线段树模板,易错提醒)
problem 给定一个长为n的序列,m次询问 每次询问有3种操作 1.一段区间全部乘一个值 2.一段区间全部加一个值 3.询问一段区间和%P solution 不就一颗线段树么,看朕10分钟A掉.. ...
- 洛谷3373 线段树模板
题目详情:https://www.luogu.org/problemnew/show/P3373 这个线段树模板写的头疼(最后纠错发现一个long long没开差点一口血喷出来),思路就是在普通的求区 ...
- ccf除法-线段树模板
这题的要求是对区间处理,查询区间和,一看就是线段树模板题,下面是代码 #include<iostream> using namespace std; int pp[100001]; str ...
- 【线段树】[LUOGU 守墓人] [LUOGU 维护序列] 线段树模板题
题目: 题目链接:[LUOGU 守墓人] 题解: 线段树单点修改,区间修改,单点查询,区间查询,一系列线段树基本操作,模板打就好. (回头再补一个分块和树状数组的这种板子题,就是用分块和树状数组再写一 ...
- ACM算法-----线段树模板
上模板: const int MAX = 999999; struct treenode {int val;//树节点值int right, left;//左右区间 }tree[MAX]; int t ...
最新文章
- hog svm 视频 matlab,matlab版hog+svm图像二分类
- 《中秋书月》月圆之夜,我和德鲁克
- nodejs 之 nvm和pm2
- Cloudera CDP 企业数据云测试开通指导
- 在电脑上显示未知发布者怎么办_笔记本电脑显示器花屏怎么办?电脑屏幕花屏的解决方法...
- WordPress主题-Real Estate 7–房地产[更至v3.1.0]
- linux上oracle登堡测评,Oracle Data Guard Linux 平台 Physical Standby 搭建实例
- ggplot2如何实现1页多图
- MESSL(maven + extjs + spring portlet mvc + spring web flow + liferay )整合架构 7
- Caffe学习:pycaffe利用caffemodel进行分类=批处理
- lingo入门教程之三 --- 文件数据处理
- BUS hound使用
- SQLServer数据导入解决方案
- 【Python】:修改图片后缀
- ANSYS apdl命令流笔记14-------工作平面的变换与生成
- java小马哥百度网盘_思否编程(小马哥):Java 微服务实践 - Spring Boot / Spring Cloud全套,完整版下载 - VIPC6资源网...
- 工业器械视觉检测方案
- 电子商务多平台运营与实践课程设计
- 【推荐】2022年环保行业研究报告产业发展前景市场投资行情分析白皮书(附件中为网盘地址,报告持续更新)
- SpringCloud-3-Ribbon