【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,他想 ...
随机推荐
- Python 算法(2) 哈夫曼编码 Huffman Encoding
这个问题原始是用来实现一个可变长度的编码问题,但可以总结成这样一个问题,假设我们有很多的叶子节点,每个节点都有一个权值w(可以是任何有意义的数值,比如它出现的概率),我们要用这些叶子节点构造一棵树,那 ...
- AppModify修改app.config
public class AppModify { /// <summary> /// 依据连接串名字connectionName返回数据连接字符串 /// </summary> ...
- Android 网络下载图片
2中方法: 1. public byte[] downloadResource(Context context, String url) throws ClientProtocolException, ...
- centOS7 配置DNS上外网
CentOS7 linux下DNS的永久性添加 I.网上很多讲的dns的永久性添加其实都是暂时性添加,重启网卡后就会丢失.代码如下: echo nameserver 8.8.8.8 > /etc ...
- hdu1003 最大子串和
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- scala 测试类
class NetworkUtilTest extends FunSuite with Matchers { test("testIp2Int") { val ip = Netwo ...
- 转:Andriod studio技巧合集
1. 书签(Bookmarks) 描述:这是一个很有用的功能,让你可以在某处做个标记(书签),方便后面再跳转到此处. 调用:Menu → Navigate → Bookmarks 快捷键: 添加/移除 ...
- C语言 · 完数
算法训练 完数 时间限制:1.0s 内存限制:512.0MB 问题描述 一个数如果恰好等于它的因子之和,这个数就称为“完数”.例如,6的因子为1.2.3,而6=1+2+3,因此6就是 ...
- arm + fpga 核心板
- VS Code直接调试Angular代码
安装VS Code扩展 安装Debugger for Chrome 安装Debugger for Firefox 配置Launch.json文件 Launch.json文件的创建和生成我们可以利用VS ...