【BZOJ4636】蒟蒻的数列 STL
【BZOJ4636】蒟蒻的数列
Description
Input
Output
Sample Input
2 5 1
9 10 4
6 8 2
4 6 3
Sample Output
题解:当一段区间先进行操作l,r,a,再进行操作l,r,b时,最后的结果一定是a,b中的最大值,那我们直接离线处理。对于每段区间,直接让它变成所有包含这段区间的操作中的最大值。用multiset维护一下就好了
#include <cstdio>
#include <cstring>
#include <iostream>
#include <set>
#include <algorithm>
using namespace std;
typedef long long ll;
const int maxn=40010;
int n,tot;
ll ans;
multiset<ll> s;
struct node
{
int org,k;
ll v,val;
}p[maxn<<1];
bool cmp(node a,node b)
{
return a.v<b.v;
}
int main()
{
scanf("%d",&n);
int i,j;
for(i=1;i<=n;i++)
{
scanf("%lld%lld%lld",&p[tot+1].v,&p[tot+2].v,&p[tot+1].val);
if(p[tot+1].v==p[tot+2].v) continue;
p[tot+2].val=p[tot+1].val,p[tot+2].k=1,tot+=2;
}
sort(p+1,p+tot+1,cmp);
multiset<ll>::iterator it;
for(i=1;i<=tot;i++)
{
if(p[i].v!=p[i-1].v&&!s.empty())
{
it=s.end(),--it;
ans+=(p[i].v-p[i-1].v)*(*it);
}
if(p[i].k) it=s.find(p[i].val),s.erase(it);
else s.insert(p[i].val);
}
printf("%lld",ans);
return 0;
}
【BZOJ4636】蒟蒻的数列 STL的更多相关文章
- [BZOJ4636]蒟蒻的数列
[BZOJ4636]蒟蒻的数列 试题描述 蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列 题目描述 DCrusher有一个数列,初始值均为0,他进行N次操作,每次将数列[a,b)这个区间中所有比k ...
- [bzoj4636]蒟蒻的数列_线段树
蒟蒻的数列 bzoj-4636 题目大意:给定一个序列,初始均为0.n次操作:每次讲一段区间中小于k的数都变成k.操作的最后询问全局和. 注释:$1\le n\le 4\cdot 10^4$. 想法: ...
- BZOJ4636: 蒟蒻的数列(动态开节点线段树)
题意 题目链接 Sol 直接上动态开节点线段树 因为只有一次询问,所以中途不需要下传标记 #include<bits/stdc++.h> #define LL long long usin ...
- 【BZOJ-4636】蒟蒻的数列 动态开点线段树 ||(离散化) + 标记永久化
4636: 蒟蒻的数列 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 247 Solved: 113[Submit][Status][Discuss ...
- 【BZOJ】4636: 蒟蒻的数列
4636: 蒟蒻的数列 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 145 Solved: 71[Submit][Status][Discuss] ...
- BZOJ_4636_蒟蒻的数列_线段树+动态开点
BZOJ_4636_蒟蒻的数列_线段树+动态开点 Description 蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列 题目描述 DCrusher有一个数列,初始值均为0,他进行N次操作,每次将 ...
- BZOJ 4636: 蒟蒻的数列 分块
4636: 蒟蒻的数列 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4636 Description 蒟蒻DCrusher不仅喜欢玩扑克 ...
- 【bzoj4636】蒟蒻的数列 离散化+线段树
原文地址:http://www.cnblogs.com/GXZlegend/p/6801379.html 题目描述 蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列 题目描述 DCrusher有一个 ...
- 【刷题】BZOJ 4636 蒟蒻的数列
Description 蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列 题目描述 DCrusher有一个数列,初始值均为0,他进行N次操作,每次将数列[a,b)这个区间中所有比k小的数改为k,他想 ...
随机推荐
- 和求余运算巧妙结合的jns指令
.text:004A78B1 and eax, 80000001h.text:004A78B6 jns short loc_4A78BD.text:004A78B8 dec eax.text:00 ...
- Django URL中r的意思
例如: urlpatterns = patterns('', # ... (r'^time/plus/\d+/$', hours_ahead), # ... ) 正则表达式字符串的开头字母“r”. 它 ...
- 简单实例,说明自动生成Makefile的详细过程
为了编译一个简单的源文件main.c,需要自动生成一个makefile,以下是步骤: 第一步:----------在/root/project/main目录下创建一个文件main.c,其内容如下:-- ...
- NIO--SocketChannel发送HTTP请求
import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.SocketChanne ...
- JQuery.getJSON 没反应
Jquery是一个优秀的Javascrīpt框架,轻量级的js库,它兼容CSS3.jQuery使用户能更方便地处理HTML documents.events.实现动画效果,并且方便地为网站提供AJAX ...
- Ubuntu 11.04 下安装配置 JDK 7
第一步:下载jdk-7-linux-i586.tar.gz wget -c http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-i586 ...
- maven编译插件版本配置案例
<!-- Build Settings 构建设置 --> <build> <finalName>${project.artifactId}</finalNam ...
- 深入分析 iBATIS 框架之系统架构与映射原理
iBATIS 框架主要的类层次结构 总体来说 iBATIS 的系统结构还是比较简单的,它主要完成两件事情: 根据 JDBC 规范建立与数据库的连接: 通过反射打通 Java 对象与数据库参数交互之间相 ...
- redis-stat 安装
apt-get install ruby apt-get install rubygems redis-stat安装: cd/root git clone https://github.com ...
- 面试常问小知识点之Integer
背景 今天在查看Sonar的时候发现小伙伴在某些场景下如下使用 很明显sonar已经报错了,但是线上应用目前是正常的 问题 事实上经常会有面试的小伙伴或者笔试的小伙伴问这个问题 Integer的一些小 ...