由于数据范围过大,直接线段树会炸,离散化或者动态开点都行。

打个标记在树上,最后把树dfs一边算一下即可。

 #include<bits/stdc++.h>
#define N 10000010
#define inf 1000000000
using namespace std;
typedef long long ll;
int tot=,sumv[N<<],ls[N],rs[N];
int n,rt,cnt=;ll ans=;
void change(int &o,int l,int r,int ql,int qr,int v){
if(l>r)return;
if(!o)o=++cnt;
if(ql<=l&&r<=qr){sumv[o]=max(sumv[o],v);return;}
int mid=(l+r)>>;
if(ql<=mid)change(ls[o],l,mid,ql,qr,v);
if(qr>mid)change(rs[o],mid+,r,ql,qr,v);
}
void dfs(int o,int l,int r,int maxv){
if(!o)return;
maxv=max(maxv,sumv[o]);
if(!ls[o]&&!rs[o]){ans+=1LL*(r-l+)*maxv;return;}
int mid=(l+r)>>;
dfs(ls[o],l,mid,maxv);dfs(rs[o],mid+,r,maxv);
if(!ls[o])ans+=1LL*(mid-l+)*maxv;
if(!rs[o])ans+=1LL*(r-mid)*maxv;
}
inline int read(){
int f=,x=;char ch;
do{ch=getchar();if(ch=='-')f=-;}while(ch<''||ch>'');
do{x=x*+ch-'';ch=getchar();}while(ch>=''&&ch<='');
return f*x;
}
int main(){
n=read();
for(int i=;i<=n;i++){
int l=read(),r=read(),k=read();
change(rt,,inf,l,r-,k);
}
dfs(rt,,inf,);
printf("%lld\n",ans);
return ;
}

【bzoj4636】蒟蒻的数列的更多相关文章

  1. [BZOJ4636]蒟蒻的数列

    [BZOJ4636]蒟蒻的数列 试题描述 蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列 题目描述 DCrusher有一个数列,初始值均为0,他进行N次操作,每次将数列[a,b)这个区间中所有比k ...

  2. [bzoj4636]蒟蒻的数列_线段树

    蒟蒻的数列 bzoj-4636 题目大意:给定一个序列,初始均为0.n次操作:每次讲一段区间中小于k的数都变成k.操作的最后询问全局和. 注释:$1\le n\le 4\cdot 10^4$. 想法: ...

  3. BZOJ4636: 蒟蒻的数列(动态开节点线段树)

    题意 题目链接 Sol 直接上动态开节点线段树 因为只有一次询问,所以中途不需要下传标记 #include<bits/stdc++.h> #define LL long long usin ...

  4. 【BZOJ4636】蒟蒻的数列 STL

    [BZOJ4636]蒟蒻的数列 Description 蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列 题目描述 DCrusher有一个数列,初始值均为0,他进行N次操作,每次将数列[a,b)这个 ...

  5. 【BZOJ-4636】蒟蒻的数列 动态开点线段树 ||(离散化) + 标记永久化

    4636: 蒟蒻的数列 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 247  Solved: 113[Submit][Status][Discuss ...

  6. 【BZOJ】4636: 蒟蒻的数列

    4636: 蒟蒻的数列 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 145  Solved: 71[Submit][Status][Discuss] ...

  7. BZOJ_4636_蒟蒻的数列_线段树+动态开点

    BZOJ_4636_蒟蒻的数列_线段树+动态开点 Description 蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列 题目描述 DCrusher有一个数列,初始值均为0,他进行N次操作,每次将 ...

  8. BZOJ 4636: 蒟蒻的数列 分块

    4636: 蒟蒻的数列 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4636 Description 蒟蒻DCrusher不仅喜欢玩扑克 ...

  9. 【bzoj4636】蒟蒻的数列 离散化+线段树

    原文地址:http://www.cnblogs.com/GXZlegend/p/6801379.html 题目描述 蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列 题目描述 DCrusher有一个 ...

  10. 【刷题】BZOJ 4636 蒟蒻的数列

    Description 蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列 题目描述 DCrusher有一个数列,初始值均为0,他进行N次操作,每次将数列[a,b)这个区间中所有比k小的数改为k,他想 ...

随机推荐

  1. 分布式一致性算法之Paxos原理剖析

    概述 Zookeeper集群中,只有一个节点是leader节点,其它节点都是follower节点(实际上还有observer节点,不参与选举投票,在这里我们先忽略,下同).所有更新操作,必须经过lea ...

  2. 问题 A: 分数矩阵

    题目描述 我们定义如下矩阵:1/1 1/2 1/31/2 1/1 1/21/3 1/2 1/1矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增.请求出这个矩阵的总和. 输入 输入包含多组测 ...

  3. 寻找完全数(C++)

    [问题描述] 输入一个大于 1 的正整数 n,请你将大于 1 和小于或等于 n 的所有完全数输出.所谓完全数就是因子(不算其本身)之和等于它本身的数.例如 1+2+4+7+14=28,所以 28 是完 ...

  4. 九度OJ--Q1165

    import java.util.ArrayList;import java.util.Scanner; /* * 题目描述: * 读入数据string[ ],然后读入一个短字符串.要求查找strin ...

  5. Python 3.6 爬取BD电影网

    2018-07-10 #coding:utf-8 #coding:utf-8 from lxml import etree import requests import pandas import t ...

  6. day-8 python自带库实现ID3决策树算法

    前一天,我们基于sklearn科学库实现了ID3的决策树程序,本文将基于python自带库实现ID3决策树算法. 一.代码涉及基本知识 1. 为了绘图方便,引入了一个第三方treePlotter模块进 ...

  7. nvm版本管理工具安装

    windows 安装nvm步骤(shi'yongnvm-windows管理node版本): 瞎几把前言:mac上可以用n来管理node版本,私以为n很好用.家里的win7台式机一直没有安装过任何管理工 ...

  8. php+Mysql 页面登录代码

    登录界面设置: <?php/** * Created by xx. * User: msi * Date: 2017/10/26 * Time: 18:12 *///session每次用之前都要 ...

  9. DFS——CodeForces740DAlyona and a tree

    一.题目回顾 题目链接:Alyona and a tree Examples Input 52 5 1 4 61 71 13 53 6 Output 1 0 1 0 0   Input 59 7 8 ...

  10. 算法(7)Majority Element II

    题目:找出数组中出现次数大于n/3次的数字 思路:摩尔投票法.所有的帖子中都说:先遍历一遍数组找到备选元素,然后再遍历一遍数组考察下这个元素是否是真的超过n/3,然后就直接上代码,但是现在的问题是:我 ...