P3586 [POI2015]LOG

题目描述

维护一个长度为n的序列,一开始都是0,支持以下两种操作:1.U k a 将序列中第k个数修改为a。2.Z c s 在这个序列上,每次选出c个正数,并将它们都减去1,询问能否进行s次操作。每次询问独立,即每次询问不会对序列进行修改。

输入输出格式

输入格式:

第一行包含两个正整数n,m(1<=n,m<=1000000),分别表示序列长度和操作次数。接下来m行为m个操作,其中1<=k,c<=n,0<=a<=10^9,1<=s<=10^9。

输出格式:

包含若干行,对于每个Z询问,若可行,输出TAK,否则输出NIE。

输入输出样例

输入样例#1: 复制

3 8
U 1 5
U 2 7
Z 2 6
U 3 1
Z 2 6
U 2 2
Z 2 6
Z 2 1
输出样例#1: 复制

NIE
TAK
NIE
TAK

说明

维护一个长度为n的序列,一开始都是0,支持以下两种操作:

1.U k a 将序列中第k个数修改为a。

2.Z c s 在这个序列上,每次选出c个正数,并将它们都减去1,询问能否进行s次操作。

每次询问独立,即每次询问不会对序列进行修改。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 1000010
using namespace std;
int a[maxn],x[maxn],y[maxn],z[maxn],num[maxn],hash[maxn];
int n,m,cnt;
struct node{
long long c[maxn];
void add(int x,int y){
while(x<=cnt){
c[x]+=y;
x+=x&-x;
}
}
long long query(int x){
long long res=;
while(x){
res+=c[x];
x-=x&-x;
}
return res;
}
}bit1,bit2;
int main(){
scanf("%d%d",&n,&m);
char s[];
for(int i=;i<=m;i++){
scanf("%s",s);
scanf("%d%d",&x[i],&y[i]);num[i]=y[i];
if(s[]=='U')z[i]=;
else z[i]=;
}
sort(num+,num+m+);
hash[cnt=]=num[];
for(int i=;i<=m;i++)
if(num[i]!=num[i-])hash[++cnt]=num[i];
for(int i=;i<=m;i++)y[i]=lower_bound(hash+,hash+cnt+,y[i])-hash;
for(int i=;i<=m;i++){
if(z[i]){
if(a[x[i]]){
int j=a[x[i]];
bit1.add(j,-);bit2.add(j,-hash[j]);
}
a[x[i]]=y[i];
bit1.add(y[i],);bit2.add(y[i],hash[y[i]]);
}
else {
long long num1=bit2.query(y[i]-);
long long num2=bit1.query(cnt);
long long num3=bit1.query(y[i]-);
if(num1>=1LL*(x[i]-num2+num3)*hash[y[i]])puts("TAK");
else puts("NIE");
}
}
return ;
}

最新文章

  1. 【Swift学习】Swift编程之旅---集合类型之字典(八)
  2. FineUI第十四天---布局之垂直布局和水平布局
  3. Hbase系统架构
  4. Winform开发框架之单据窗体生成(主从表,流水单号)
  5. Effective Java 42 Use varargs judiciously
  6. hdu 4508 湫湫系列故事——减肥记I(完全背包)
  7. oracle学习 九 游标的使用(持续更)
  8. (转).net程序员转战android第三篇---登录模块之静态登录
  9. webix .datatable 表格分页
  10. 关于Mac终端故障一直出现 [进程已完毕]
  11. python基础练习题
  12. 机器学习实战1-K均值
  13. JavaScrpt常用的封装方法
  14. greenplum中to_date函数注意点
  15. 20164318 毛瀚逸 Exp4 恶意代码分析
  16. Linux下通过 rm -f 删除大量文件时报错:Argument list too long
  17. ASP.NET Core WebApi 项目部署到 IIS 服务器的总结
  18. 面试题27:单链表向右旋转k个节点
  19. vue总结07 常用插件
  20. WPF绑定时要绑定属性,不要绑定字段

热门文章

  1. MySQL执行计划的讲解
  2. 如何解决SSH登录Solaris主机速度慢的问题
  3. Eclipse: “The import java.io cannot be resolved”
  4. elastic(7)bulk
  5. [mpm_winnt:error] [pid 28120:tid 15980] (OS 10038)在一个非套接字上尝试了一个操作。 : AH00332: winnt_accept: getsockname error on listening socket, is IPv6 available?
  6. hadoop-2.6.0.tar.gz + spark-1.6.1-bin-hadoop2.6.tgz + zeppelin-0.5.6-incubating-bin-all.tgz(master、slave1和slave2)(博主推荐)(图文详解)
  7. OpenCV4Android 不需要安装OpenCVManager,就可以运行的方法
  8. Codeforces #505(div1+div2) D Recovering BST
  9. Freemarker 使用注意事项
  10. SpringBoot11 读取properties文件、发送邮件