bzoj4636: 蒟蒻的数列

作为惟一一个离线+动态开点线段树的。。我是不是没救了。。

维护一下区间修改和区间和。。。

然而由于一些奇怪的原因翻车

到最后索性跑到一个点直接开左右儿子

最后注意区间左右端点可以相等。。。

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<algorithm>
 4 #include<cstring>
 5 #define rep(i,l,r) for(int i=l;i<=r;++i)
 6 using namespace std;
 7 const int N=5023333;
 8 typedef long long ll;
 9 int n,cnt,ls[N],rs[N],sz[N],rt,m,tag[N];
10 ll sum[N];
11 struct zs{
12     int a,b,c;
13 }s[40233];
14 bool cmp(zs a,zs b){
15     return a.c<b.c;
16 }
17 int down(int x,int l,int r){
18     if(tag[x]){
19         tag[ls[x]]=tag[x]; tag[rs[x]]=tag[x];
20         int mid=l+r>>1;
21         sum[ls[x]]=(ll)tag[x]*(mid-l+1); sum[rs[x]]=(ll)tag[x]*(r-mid);
22         tag[x]=0;
23     }
24 }
25 void upd(int &x,int l,int r,int L,int R,int d){
26     if(!x) x=++cnt;
27     if(!ls[x])ls[x]=++cnt; if(!rs[x])rs[x]=++cnt;
28     sz[x]=r-l+1;
29     if(l==L&&r==R){tag[x]=d;sum[x]=(ll)sz[x]*d; return;}
30     int mid=l+r>>1;
31     down(x,l,r);
32     if(R<=mid) upd(ls[x],l,mid,L,R,d);else if(L>mid) upd(rs[x],mid+1,r,L,R,d);
33     else upd(ls[x],l,mid,L,mid,d),upd(rs[x],mid+1,r,mid+1,R,d);
34     sum[x]=sum[ls[x]]+sum[rs[x]];
35 }
36 int main(){
37     scanf("%d",&n);
38     rep(i,1,n) scanf("%d%d%d",&s[i].a,&s[i].b,&s[i].c),m=max(m,s[i].b);
39     sort(s+1,s+1+n,cmp);
40     rep(i,1,n){
41         if(s[i].a==s[i].b)continue;
42         upd(rt,1,m,s[i].a,s[i].b-1,s[i].c);
43     }
44     printf("%lld\n",sum[rt]);
45 }
View Code

 

转载于:https://www.cnblogs.com/Bloodline/p/6050699.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/254023.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu 备忘

卷组扩容 Linux mint采用默认卷组的安装方式 sainLinux ~ $ df -hl Filesystem Size Used Avail Use% Mounted on udev 3.7G 0 3.7G 0% /dev tmpfs 743M 9.5M 733M 2% /run /dev/mapper/mint--vg-root…

DDL DML DCL

2019独角兽企业重金招聘Python工程师标准>>> DDL is Data Definition Language statements. Some examples:数据定义语言&#xff0c;用于定义和管理 SQL 数据库中的所有对象的语言 DML is Data Manipulation Language statements. Some examples:数据操作语言&…

favicon.ico--网站标题小图片二三事

前言: 什么是favicon? 直接用图说话:这个就是favicon favicon.ico 是一种格式&#xff0c;一般用于网页地址栏前或者在标签上以缩略方式显示网站标志&#xff0c;也可以拖曳favicon到桌面以建立到网站的快捷方式。为什么要设置favicon图标&#xff0c;以图像形态显示&#xff…

镜头MTF传递函数解读

什么是镜头的MTF曲线&#xff1f;MTF全称是Modulation Transfer Function&#xff0c;译为调制传递函数&#xff0c;其单位以line/mm来表示。MTF综合反映了镜头的反差和分辨率特性&#xff0c; MTF是用仪器测量的&#xff0c;因而可以完全排除胶片等客观因素的影响和人工判读的…

Java的线程模型

并发不一定要依赖多线程&#xff08;如PHP中很常见的多进程并发&#xff09;&#xff0c;但是在Java里面谈论并发&#xff0c;大多数都与线程脱不开关系。 线程是比进程更轻量级的调度执行单位&#xff0c;线程的引入&#xff0c;可以把一个进程的资源分配和执行调度分开&#…

BT656/BT601/BT1120协议以及DM365/DM355/DM6467上使用的YUV颜色空间说明

ITU-R BT.601和ITU-RBT.656国际电信联盟&#xff08;International Telecommunication Union&#xff09;无线通信部门&#xff08;ITU-R&#xff09;制定的标准。严格来说&#xff0c;ITU-R BT.656应该是隶属ITU-R BT.601的一个子协议。ITU-R BT.601是演播室数字电视编码参数标…

eclispe设置workspace text file encoding

在windows下开发&#xff0c;经常会遇到eclipse新导入的工程 java代码中的注释或者字符串中文显示乱码&#xff0c;每次都要一个个项目更改麻烦&#xff0c;特地找了下&#xff0c;可通过如下方法一次性设置。 转载于:https://www.cnblogs.com/zhjh256/p/7190537.html

工业定焦镜头的选型公式

工业镜头的焦距(f mm)可以根据FOV(视场), WD(工作距离) 和CCD芯片尺寸计算出来:FOV视场指被摄取物体的大小&#xff0c;视场的大小是以镜头至被摄取物体距离(WD)&#xff0c;镜头焦距(F)及CCD芯片尺寸确定的。镜头的焦距&#xff0c;视场大小、工作距离、光学倍率计算如下:焦距…

Nginx系列二:(Nginx Rewrite 规则、Nginx 防盗链、Nginx 动静分离、Nginx+keepalived 实现高可用)...

一、Nginx Rewrite 规则 1. Nginx rewrite规则 Rewrite规则含义就是某个URL重写成特定的URL&#xff08;类似于Redirect&#xff09;&#xff0c;从某种意义上说为了美观或者对搜索引擎友好&#xff0c;提高收录量及排名等。 语法&#xff1a; rewrite<regex><replace…

受限玻尔兹曼机(RBM)以及对比散度(CD)

1. RBM 的提出 BM 的缺点&#xff1a; 计算时间漫长&#xff0c;尤其是无约束自由迭代的负向阶段&#xff1b;对抽样噪音敏感&#xff1b;流行软件的不支持&#xff1b;受限玻尔兹曼机&#xff08;Restricted Boltzmann Machine,简称 RBM&#xff0c;以解决 BM 的学习效率过慢的…

Qt中查看ui_xxx.h文件方法

前提 1、Qt当有界面 2、构造完成 满足以上两个条件qt会生成ui_xxx.h文件。 如何查看 方法1 在cpp文件中找到UI下的一个对象 如&#xff1a; ui->textEdit Ui::QWDialog按住Ctrl键&#xff0c;使用鼠标左键点击UI下的一个对象&#xff0c;如&#xff1a;textEdit、QWDia…

springCloud Finchley 实战入门(基于springBoot 2.0.3)【三 Eureka-高可用服务注册中心】...

Eureka高可用注册中心 Eureka Server的设计一开始就考虑到了高可用的问题&#xff0c;在eureka服务治理设计中&#xff0c;所有的节点即是是服务提供方&#xff0c;也是服务消费方。 在部署高可用注册中心前我们先需要准备一下&#xff0c;本地环境。因为我们实例是在单台电脑上…

Qt使用两组RadioButton,两组之间相互独立

Qt中使用两组共四个RadioButton时&#xff0c;由于RadioButton的特性&#xff0c;所以两组一共四个按钮每次只能选择一个&#xff0c;要使得两组RadioButton相互独立&#xff0c;需要用到QButtonGroup这个功能&#xff0c;把RadioButton加到QButtonGroup里面&#xff0c;实现两…

sleep 和 wait 的区别

为什么80%的码农都做不了架构师&#xff1f;>>> 面试中常问的就是 sleep 和 wait 有什么不同吗&#xff1f;为了面试时候发挥的更好&#xff0c;我在这里总结分享下。 首先对于 sleep() 方法&#xff0c;我们首先要知道该方法是属于 Thread 类中的。而 wait() 方法…

QT 中textEdit 和 textBrowser 无法使用斜体及加粗等 解决办法

编辑框的几个种类 QT 中一共四个文本编辑框 分别是 Line Edit 、Text Edit、 Plait Text Edit和textBrowser四种文本编辑框架&#xff01; 一、输入内容不同 1、LineEdit&#xff1a;LineEdit的输入内容为单行文本输入。 2、TextEdit&#xff1a;TextEdit的输入内容为多行文…

变量属性

变量属性 C语言的变量属性 C语言中的变量可以有自己的属性在定义变量的时候加上“属性”关键字属性关键字指明变量的特有意义auto关键字 auto即C语言中局部变量的默认属性auto表明将被修饰的变量存储在栈上编译器默认所有的局部变量都是auto的register关键字 register关键字指明…

Dubbo 整合 Pinpoint 做分布式服务请求跟踪

2019独角兽企业重金招聘Python工程师标准>>> 在使用Dubbo进行服务化或者整合应用后&#xff0c;假设某个服务后台日志显示有异常&#xff0c;这个服务又被多个应用调用的情况下&#xff0c;我们通常很难判断是哪个应用调用的&#xff0c;问题的起因是什么&#xff0…

C#2.0 委托

委托 委托是一个非常不错的设计&#xff0c;允许我们把方法做为参数传递&#xff0c;实现了开放閉放原则。在方法中我们只要有一个委托占位&#xff0c;调用者就可以传入符合签名的方法来做不同的操作&#xff0c;这也面向对象开发中多态的魅力。 但是在C#1.0的时候&#xff…

qt乱码Could not decode“xxx.cpp“ with “UTF-8“-encoding.Editing not possible问题处理

问题描述&#xff1a;如题&#xff1a; 解决方法&#xff1a; 1、点击Select Encoding按钮 2、选择按照系统编码 3、选中System后点击按编码重新载入 4、问题解决

特斯拉自动驾驶系统秘密,来自特斯拉AI总监爆料

据外媒报道&#xff0c;特斯拉汽车公司人工智能&#xff08;AI&#xff09;总监安德烈卡帕西(Andrej Karpathy)日前参加2018年TRAIN AI大会时&#xff0c;剖析了该公司构建自动驾驶仪&#xff08;Autopilot&#xff09;计算机视觉解决方案的方法。据介绍&#xff0c;Autopilot编…