正题

评测记录:https://www.luogu.org/recordnew/lists?uid=52918&pid=P4879


题目大意

有若干种操作

  1. Cxy:ax−=yC\ x\ y:a_x-=yC x y:ax​−=y
  2. Ixy:I\ x\ y:I x y:加一个(原本有的话就改变)ax=ya_x=yax​=y
  3. Q:Q:Q:询问所以数的和
  4. Dx:D\ x:D x:删除第xxx个(有的才算)数。

解题思路

我们发现只有单点修改,和全部求和。所以ansansans表示全部的和,然后前三个操作就搞定了。
第四个操作维护一个分块,记录每块有的数的个数,然后找到目标在那个块,之后这个块里暴力寻找,这个操作时间负责度O(n)O(\sqrt n)O(n​)

总体时间复杂度:O(nn)O(n\sqrt n)O(nn​)


codecodecode

#include<cstdio>
#include<cmath>
#include<iostream>
#define ll long long
#define N 500000
#define T 1000
using namespace std;
ll n,m,a[N+10],ans,no[N+10],x,y,t;
ll L[T],R[T],num[T],pos[N+10];
char c;
int main()
{scanf("%lld%lld",&n,&m);t=sqrt(N);for(ll i=1;i<=N;i++){pos[i]=(i-1)/t+1;if(i>n)no[i]=1;}for(ll i=1;i<=n;i++){scanf("%lld",&a[i]);num[pos[i]]++;ans+=a[i];}for(ll i=1;i<=m;i++){cin>>c;if(c=='Q')printf("%lld\n",ans);else if(c=='I'){scanf("%lld%lld",&x,&y);ans-=a[x];a[x]=y;ans+=y;n=max(n,x);if(no[x]){no[x]=0;num[pos[x]]++;}}else if(c=='C'){scanf("%lld%lld",&x,&y);if(no[x]) continue;ans-=y;a[x]-=y;}else if(c=='D'){scanf("%lld",&x);ll k=1;while(x-num[k]>0)x-=num[k],k++;for(int i=(k-1)*t+1;i<=min(k*t,n);i++){if(!no[i]) --x;if(!x){num[k]--;no[i]=1;ans-=a[i];a[i]=0;break;}}}}
}

P4879-ycz的妹子【分块】相关推荐

  1. Luvwgyx的娱乐场-题解

    题解不按顺序给出 目录: ycz的妹子 题面 题解 lty loves 96! 题面 题解 mzf的考验 题面 题解 hby与tkw的基情 题面 题解 抓住czx 题面 题解 ycz的妹子 题目背景: ...

  2. 【bzoj3744】Gty的妹子序列 分块+树状数组+主席树

    题目描述 我早已习惯你不在身边, 人间四月天 寂寞断了弦. 回望身后蓝天, 跟再见说再见-- 某天,蒟蒻Autumn发现了从 Gty的妹子树(bzoj3720) 上掉落下来了许多妹子,他发现 她们排成 ...

  3. BZOJ 3720: Gty的妹子树 [树上size分块]

    传送门 题意: 一棵树,询问子树中权值大于$k$的节点个数,修改点权值,插入新点:强制在线 一开始以为询问多少种不同的权值,那道CF的强制在线带修改版,直接吓哭 然后发现看错了这不一道树上分块水题.. ...

  4. 牛客 - 牛半仙的妹子Tree(按询问分块+RMQ求LCA)

    题目链接:点击查看 题目大意:给出一棵有 n 个节点的树,需要执行 m 次操作: 1 x:点 x 被染色,且随后每一秒染色的区域都会向外扩展一个单位 2 x:清空所有的染色 3 x:问点 x 是否被染 ...

  5. P4867-Gty的二逼妹子序列【平衡结合,莫队,分块】

    正题 题目链接:https://www.luogu.com.cn/problem/P4867 题目大意 一个序列要求支持询问一个区间[l,r][l,r][l,r]内在[a,b][a,b][a,b]之间 ...

  6. bzoj3744: Gty的妹子序列 (BIT 分块)

    强制在线的区间询问逆序对数 如果不是强制在线 就是可以用莫队乱搞啦 强制在线的话 用f[i][j]记录第i块到第j个点之间的逆序对数 用s[i][j]记录前i块中小于等于j的数字个数 离散化一下 BI ...

  7. P3180-[HAOI2016]地图【圆方树,莫队,分块】

    正题 题目链接:https://www.luogu.com.cn/problem/P3180 题目大意 nnn个点mmm条边的一个仙人掌,有点权. QQQ次询问给出op,x,yop,x,yop,x,y ...

  8. bzoj4564: [Haoi2016]地图 仙人掌的圆方树 莫队 分块

    bzoj4564: [Haoi2016]地图 Description 一天rin来到了一个遥远的都市.这个都市有n个建筑,编号从1到n,其中市中心编号为1,这个都市有m条双向通 行的街道,每条街道连接 ...

  9. 【知识总结】分块和值域分块

    分块思想 分块思想是对原数据适当的划分,并且在划分后的每一个块上预处理部分信息,从而优化算法. 大体思路就是: 对于给出的序列按照固定的块长 ( 一 般 为 n ) (一般为\sqrt n) (一般为 ...

最新文章

  1. android application 引起内存泄漏的原因
  2. Flutter开发之《新锐专家之路:混合开发篇》笔记(55)
  3. spring in action小结4.1
  4. windows下安装Oracle10G
  5. 设计模式之_动态代理_06
  6. 一位经验丰富的程序员如何建立网络初创企业?
  7. _stat64获取错误_Log4j,Stat4j,SMTPAppender集成–汇总错误日志以发送过多电子邮件...
  8. 猫眼娱乐上市首日破发 收盘价14.64港元
  9. JAVA浅层复制深层复制理解-java_01_20160824
  10. stm32F103驱动ADS1115程序-4通道可用-ALERT中断可用-ADC芯片,应该是最全了
  11. 线上只执行一次的脚本编写注意事项
  12. Java Bubble Sort 冒泡排序图解
  13. 淘宝数据魔方技术架构解析阅读心得
  14. MicroPython之ADS1115+平滑滤波NTC温度采集
  15. 麻省理工学院公开课:单变量微积分
  16. Linux系统(三)系统基础扫盲大全
  17. SpringBoot的优点
  18. 「hdu6608」Fansblog 威尔逊定理
  19. retrospective material for English final exam unit_6 Tomorrow
  20. 生成带有logo的二维码

热门文章

  1. java对象模型是什么_蓝石榴_个人博客_JVM内存结构、Java内存模型、Java对象模型...
  2. 截获android屏幕服务,如何捕获android设备屏幕内容?
  3. python 日期格式校验_python – 如何验证时间格式?
  4. PyTorch深度学习实践
  5. leetcode541. 反转字符串 II
  6. 10-1 5-1 查询销售便携式电脑但不销售PC的厂商 (20 分)(分析+详解)
  7. 你知道304吗?图解强缓存和协商缓存
  8. Java内置数据类型
  9. Java中各种整形类型可以表示的范围
  10. 数据结构与算法--解决问题的方法- 二叉树的的镜像