【GDKOI2014】JZOJ2020年8月13日提高组T4 内存分配

题目

Description

Input

Output

输出m行,每行一个整数,代表输入中每次程序变化后系统所需要的空闲内存单位数。

Sample Input

2 3

1 4

1 4

2 2 1

2 1 1

1 1 1

Sample Output

2

3

1

Data Constraint

对于30%的数据,有1<=n,m<=1000

对于100%的数据,有1<=n,m<=100000

Hint

题解

题意

有\(n\)个点

每个点有两个值\(a\),\(b\)

当节点\(i\)加上\(b_i\)时它就会消失,贡献\(a_i+b_i\)

每秒都会有个点的\(a_i\)和\(b_i\)改变

问最小初始费用

分析

发现有修改

易想到线段树

设\(sum[l][r]\)表示\(\sum_{i=l}^{r}a[i]\)

\(ans[l][r]\)表示\(l\)~\(r\)的最小答案

那么可以用线段树维护

顺便把\(ans\)和\(sum\)改为一维

动态开点

Code

#include<bits/stdc++.h>
#define inf 2147483647
#define rg register
using namespace std;
struct node
{
long long size,rs,ls,val;
}tree[4000005];
long long n,m,j,tot,a[1000005],b[1000005],ans[4000005];
void ins(long long now,long long l,long long r,long long p,long long q)
{
if (l==r)
{
tree[now].val+=p;
tree[now].size++;
ans[now]=q;
return;
}
long long mid=(l+r)>>1;
if (q<=mid)
{
if (tree[now].ls==0) tree[now].ls=++tot;
ins(tree[now].ls,l,mid,p,q);
}
else
{
if (tree[now].rs==0) tree[now].rs=++tot;
ins(tree[now].rs,mid+1,r,p,q);
}
tree[now].val=tree[tree[now].ls].val+tree[tree[now].rs].val;
ans[now]=max(ans[tree[now].ls],ans[tree[now].rs]-tree[tree[now].ls].val);
}
void del(long long now,long long l,long long r,long long p,long long q)
{
if (l==r)
{
tree[now].val-=p;
tree[now].size--;
if (tree[now].size==0) ans[now]=0;
return;
}
long long mid=(l+r)>>1;
if (q<=mid)
{
if (tree[now].ls==0) tree[now].ls=++tot;
del(tree[now].ls,l,mid,p,q);
}
else
{
if (tree[now].rs==0) tree[now].rs=++tot;
del(tree[now].rs,mid+1,r,p,q);
}
tree[now].val=tree[tree[now].ls].val+tree[tree[now].rs].val;
ans[now]=max(ans[tree[now].ls],ans[tree[now].rs]-tree[tree[now].ls].val);
}
int main()
{
freopen("test.in","r",stdin);
freopen("test.out","w",stdout);
scanf("%lld%lld",&n,&m);
tot=1;
for (rg long long i=1;i<=n;++i)
{
scanf("%lld%lld",&a[i],&b[i]);
ins(1,0,inf,a[i],b[i]);
}
for (rg long long i=1;i<=m;i++)
{
scanf("%lld",&j);
del(1,0,inf,a[j],b[j]);
scanf("%lld%lld",&a[j],&b[j]);
ins(1,0,inf,a[j],b[j]);
printf("%lld\n",ans[1]);
}
return 0;
}

【GDKOI2014】JZOJ2020年8月13日提高组T4 内存分配的更多相关文章

  1. 【GDKOI2014】JZOJ2020年8月13日提高组T3 壕壕的寒假作业

    [GDKOI2014]JZOJ2020年8月13日提高组T3 壕壕的寒假作业 题目 Description Input Output 输出n行.第i行输出两个整数,分别表示第i份作业最早完成的时刻以及 ...

  2. 【GDKOI2014】JZOJ2020年8月13日提高组T2 石油储备计划

    [GDKOI2014]JZOJ2020年8月13日提高组T2 石油储备计划 题目 Description Input Output 对于每组数据,输出一个整数,表示达到"平衡"状态 ...

  3. 【GDKOI2014】JZOJ2020年8月13日提高组T1 阶乘

    [GDKOI2014]JZOJ2020年8月13日提高组T1 阶乘 题目 Description Input 第一行有一个正整数T,表示测试数据的组数. 接下来的T行,每行输入两个十进制整数n和bas ...

  4. JZOJ2020年8月13日提高组反思

    JZOJ2020年8月13日提高组反思 T1 打了3h+,然后自己的小数据都没过 果断选择交对拍的暴力 下次还是注意时间吧 T2 一下三题都没时间打了 看了题目觉得特别烦人(有式子) 再看发现式子类似 ...

  5. JZOJ2020年8月11日提高组T4 景点中心

    JZOJ2020年8月11日提高组T4 景点中心 题目 Description 话说宁波市的中小学生在镇海中学参加计算机程序设计比赛,比赛之余,他们在镇海中学的各个景点参观.镇海中学共有n个景点,每个 ...

  6. JZOJ2020年8月11日提高组T3 页

    JZOJ2020年8月11日提高组T3 页 题目 Description 战神阿瑞斯听说2008年在中华大地上,将举行一届规模盛大的奥林匹克运动会,心中顿觉异常兴奋,他想让天马在广阔的天空上,举行一场 ...

  7. JZOJ2020年8月11日提高组T2 宝石

    JZOJ2020年8月11日提高组T2 宝石 题目 Description 见上帝动了恻隐之心,天后也想显示一下慈悲之怀,随即从口袋中取出一块魔术方巾,让身边的美神维纳斯拿到后堂的屏风上去试试,屏风是 ...

  8. JZOJ2020年8月11日提高组T1 密码

    JZOJ2020年8月11日提高组T1 密码 题目 Description 在浩浩茫茫的苍穹深处,住着上帝和他的神仆们,他们闲谈着下界的凡人俗事,对人世间表现的聪明智慧,大加赞赏.今天他们正在观赏大地 ...

  9. JZOJ2020年8月11日提高组反思

    JZOJ2020年8月11日提高组反思 T1 看到题 啊这?! 我看错了吗??? 我理解错题了吗?? 好吧没有-- 高精度模板题,不用多说 T2 看到这种矩阵的问题 以为是前缀和搞事情 结果呢 扫描线 ...

随机推荐

  1. Charles使用part1——基本功能介绍

    一. 安装与破解: 官网地址:https://www.charlesproxy.com/download/ 破解自行解决. 二. 启动与配置: 启动 Charles 后,第一次 Charles 会请求 ...

  2. openssl ec/ecparam/errstr/ripemd160/camellia-128-ecb/camellia-192-cbc/camellia-192-ecb3条指令及1个哈希算法3个加密算法的学习

    ecparam ecparam指令通过用椭圆曲线加密方式,生成ec密钥,可以指定参数 openssl ecparam [-inform DER|PEM] [-outform DER|PEM] [-in ...

  3. C# 集合类(三)

    C# 集合类自己经常用到: 数组(Array).动态数组(ArrayList).列表(List).哈希表(Hashtable).字典(Dictionary),对于经常使用的这些数据结构,做一个总结,便 ...

  4. GraphX 在图数据库 Nebula Graph 的图计算实践

    不同来源的异构数据间存在着千丝万缕的关联,这种数据之间隐藏的关联关系和网络结构特性对于数据分析至关重要,图计算就是以图作为数据模型来表达问题并予以解决的过程. 一.背景 随着网络信息技术的飞速发展,数 ...

  5. 年轻人的第一个 Docker 应用,大大提高生产力!

    上一篇:年轻人的第一个 Spring Boot 应用! 哈哈,标题我抄了雷总的,不重要哦,重要的是 Docker 真的很年轻,虽然现在才不到 8 岁,但却是个冉冉升起的巨星,火得一塌糊涂. 这几年 D ...

  6. [python学习手册-笔记]002.python核心数据类型

    python核心数据类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明 ...

  7. null列的值不参与比较

    假如数据库有表emp: empno name   age 001      lucy      22 002      lily        null 003      lilei       nu ...

  8. IDEA安装leetcode editor插件

    leetcode > https://leetcode-cn.com/ 本地idea刷题可以直接同步提交,测试等相关操作 需要安装leetcode editor插件 1.idea setting ...

  9. UNIX目录访问操作

    1.目录访问相关函数: DIR* opendir (const char * path ); struct dirent* readdir(DIR *dirptr) ;参数是一个指向dirent 结构 ...

  10. Python 单表查询数据

    import pymssql #引入pymssql模块# -----------------------------------------------------import pymssql #引入 ...