首页 > 其他分享 >片集 - 模板 - 1

片集 - 模板 - 1

时间:2024-07-25 11:52:38浏览次数:12  
标签:val ll mid 片集 tag build id 模板

欢迎来看 “片” (的简介)

由于-\(看片\)-生涯转瞬即逝,于是我选择对“\(片\)”进行一定的总结:

相信你一定看懂了

由于开始的时间有一点晚,就姑且认为我以后会慢慢补充吧......

线段树 (区间加,区间求)

点击查看代码
#include <iostream>
#define endl '\n'
#define ll long long
using namespace std;
const int MAXN=1e5+5;
struct StNode{
	ll tag,val;
};
StNode a[MAXN<<3];
ll s[MAXN];
#define lson (id<<1)
#define rson (id<<1|1)
#define mid ((l+r)>>1)
void pushdown(ll id,ll l,ll r){
	a[lson].tag+=a[id].tag;
	a[rson].tag+=a[id].tag;
	a[lson].val+=a[id].tag*(mid-l+1);
	a[rson].val+=a[id].tag*(r-mid);
	a[id].tag=0;
}
void pushup(ll id){
	a[id].val=a[lson].val+a[rson].val;
}
void build(ll id,ll l,ll r){
	a[id].val=a[id].tag=0;
	if (l==r){
		a[id].val=s[l];
		return;
	}
	build(lson,l,mid);
	build(rson,mid+1,r);
	pushup(id);
}
void modify(ll id,ll l,ll r,ll L,ll R,ll k){
	if (L<=l && r<=R){
		a[id].val+=k*(r-l+1);
		a[id].tag+=k;
		pushdown(id,l,r);
		return;
	}
	pushdown(id,l,r);
	if (L<=mid) modify(lson,l,mid,L,R,k);
	if (mid+1<=R) modify(rson,mid+1,r,L,R,k);
	pushup(id);
}
ll query(ll id,ll l,ll r,ll L,ll R){
	if (L<=l && r<=R) return a[id].val;
	ll sum=0;
	pushdown(id,l,r);
	if (L<=mid) sum+=query(lson,l,mid,L,R);
	if (mid+1<=R) sum+=query(rson,mid+1,r,L,R);
	return sum;
}
#undef lson
#undef rson
#undef mid
ll n,m;
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	cin>>n>>m;
	for (int i=1;i<=n;i++){
		cin>>s[i];
	}
	build(1,1,n);
	for (int i=1;i<=m;i++){
		ll q;
		cin>>q;
		if (q==1){
			ll l,r,x;
			cin>>l>>r>>x;
			modify(1,1,n,l,r,x);
		}
		else{
			ll l,r;
			cin>>l>>r;
			cout<<query(1,1,n,l,r)<<endl;
		}
	}
}

标签:val,ll,mid,片集,tag,build,id,模板
From: https://www.cnblogs.com/Aaron-Yao-Aloe/p/18322666

相关文章

  • Django+Bootstrip 卡片模板设计 经典精品
    下面是一个完整的卡片模板代码,包含所有元素,并使用Django的模板语言来处理状态字段的条件渲染。同时还包括示例视图和URL配置。完整的卡片模板<divclass="card"><!--卡片图片--><imgsrc="{{product_package.image_url}}"class="card-img-top"alt="产品图片">......
  • 【模板】最小圆覆盖
    三点定圆已知三个不在同一直线上的点\((x_1,y_1),(x_2,y_2),(x_3,y_3)\)。请确定过此三点的圆的圆心。设圆心为\((x,y)\),半径为\(r\),则圆的方程为\[(x_i-x)^2+(y_i-y)^2=r^2\]展开得到\[x_i^2-2x_ix+x^2+y_i^2-2y_iy+y^2=r^2\]我们并不需要现在得知\(r\)的具体值......
  • 简单HTML网页源代码bootstrap网页设计模板成品网站作业
    原创旅游主题bootstrap框架网页设计原创了一个以旅游城市为主题,以哈尔滨为内容的bootstrap框架网页设计,网站具有响应式(电脑端,平板端,手机端都可适应)。鑫风格简约,代码少且简单,符合初学者的水平。六个页面,页面之间可相互跳转,不想要的页面删了即可。有首页,美食列表,详细介绍,登......
  • 将子集点云注册到完整模板点云
    我正在生成点云,它们是包含凹痕信息作为彩色图的汽车部分,我需要将这些扫描转换为模板点云(即扫描点云是轿车的前端,模板点云是完全通用的轿车)。我希望将源点云凹痕信息应用到模板上正确的一般区域。我可以尝试任何预处理步骤吗?如果注册不是我所追求的,是否有其他技术可以实现我所追求......
  • FFT 高精度乘法模板
    #defineL(x)(1<<(x))constdoublePI=acos(-1.0);constintN=1e7+10;doubleax[N],ay[N],bx[N],by[N];charsa[N/2],sb[N/2];intsum[N];intx1[N],x2[N];intrevv(intx,intbits){intret=0;for(inti=0;i<bits;i......
  • 为什么C++模板只能在头文件中实现
    为什么C++模板只能在头文件中实现答案:模板的实现并非必须在头文件中。bug再现:当我尝试将模板的定义和实现分别保存在头文件(Foo.h)和实现文件(Foo.cpp)中时,程序在链接时报错:错误 LNK2019 无法解析的外部符号"public:void__cdeclFoo<int>::doSomething(int)"(?doSome......
  • vue的侦听器/表单输入绑定和模板引用
    1.侦听器侦听器在修改数据过程中,实时的侦听数据,将修改前数据和修改后数据记录2.表单输入绑定在input标签中输入v-model指令可以实时的显示input标签中输入的内容,v-model.lazy指令为不实时显示,在input标签中输入的内容用鼠标点击空白页面或ENTER后显示3.模板引用直接读取DOM......
  • 易优CMS模板标签field字段值输出指定栏目ID的下级栏目的文档列表
    【基础用法】标签:field描述:获取channelartlist标签里的字段值,field标签只能在channelartlist标签里使用。用法:{eyou:channelartlisttypeid='栏目ID'type='son'row='20'}<ahref='{eyou:fieldname='typeurl'/}'>{eyou:fieldname='typen......
  • 易优CMS模板标签relevarticle相关文档
    [基础用法]标签:relevarticle描述:通过前3个TAG标签或前3个关键词,检索整站文档标题中含有tag标签或者关键词的相关文档,进行关联。在没有tag标签情况下,就以前3个关键词检索文档标题进行关联。这个标签随着数据量的增加可能会比较影响检索性能。提示:使用该标签之前,必须先安装相关文档......
  • 易优CMS模板标签uibackground背景图片在模板文件index.htm中调用uibackground标签,实现
    【基础用法】标签:uibackground描述:背景图片上传标签,使用时结合html一起才能完成可视化布局,只针对具有可视化功能的模板。用法:<divclass="eyou-edit"e-id="文件模板里唯一的数字ID"e-page='文件模板名'e-type="background"style="background-image:url({eyou:uibackgrounde......