显然要维护斜率区间单调递增

并且第一个必选,后一个比前一个选中的斜率大的必选

考虑如何合并两个区间

我们维护一个least值,least这个值必选,且之后选的都必须严格大于least,Push_Up的时候就像在线段树上二分一样做就好了

这样每次Push_Up是$logn$的,线段树单点修改时$logn$的,所以总复杂度是$O(nlog^2n)$的,再维护一个区间最大值可以做到一些不必要但是可以卡常的剪枝...

 #include<bits/stdc++.h>
#define writeln(x) write(x),puts("")
#define writep(x) write(x),putchar(' ')
using namespace std;
inline int read(){
int ans=,f=;char chr=getchar();
while(!isdigit(chr)){if(chr=='-') f=-;chr=getchar();}
while(isdigit(chr)){ans=(ans<<)+(ans<<)+chr-;chr=getchar();}
return ans*f;
}void write(int x){
if(x<) putchar('-'),x=-x;
if(x>) write(x/);
putchar(x%+'');
}const int M = 2e5+;
int s[M<<],n,T;
double mx[M<<],a[M];
#define ls (i<<1)
#define rs (i<<1|1)
#define mid (l+r>>1)
inline int Push(int i,int l,int r,double least){
if(mx[i]<=least) return ;
if(a[l]>least) return s[i];
if(l==r) return a[l]>least;
if(mx[ls]<=least) return Push(rs,mid+,r,least);
return Push(ls,l,mid,least)+s[i]-s[ls];
}inline void Push_Up(int i,int l,int r){
mx[i]=max(mx[ls],mx[rs]);
s[i]=s[ls]+Push(rs,mid+,r,mx[ls]);
}void Update(int i,int l,int r,int pos,double x){
if(l==r)return mx[i]=x,s[i]=,void();
if(pos<=mid) Update(ls,l,mid,pos,x);
else Update(rs,mid+,r,pos,x);
Push_Up(i,l,r);
}int main(){
n=read(),T=read();
while(T--){
int x=read(),y=read();
a[x]=y*1.0/(x*1.0);
Update(,,n,x,y*1.0/(1.0*x));
printf("%d\n",s[]);
}return ;
}

最新文章

  1. localStorage使用总结
  2. EndNote(一)之基本介绍
  3. Redis学习——SDS字符串源码分析
  4. MST:Out of Hay(POJ 2395)
  5. android.support.v4.app.Fragment和android.app.Fragment区别
  6. Ajax+Asp.Net无刷新分页
  7. JQUERY1.9学习笔记 之基本过滤器(三)偶数选择器
  8. HDOJ-1041 Computer Transformation(找规律+大数运算)
  9. DOM基础(四)
  10. 关于QQ空间相册功能的构想与简单实现
  11. Maven文件配置
  12. Linux增加开放端口号
  13. Python3从零开始爬取今日头条的新闻【一、开发环境搭建】
  14. 将cookie 转换成字典格式
  15. bash 管理小脚本
  16. 利用 Docker 搭建单机的 Cloudera CDH 以及使用实践
  17. Springboot中使用Xstream进行XML与Bean 相互转换
  18. 信用评分卡 (part 6 of 7)
  19. 『MXNet』专题汇总
  20. chrome --headless --disable-gpu --dump-dom http://www.python.org

热门文章

  1. 完全卸载win10上的Ubuntu子系统 - Windows Subsystem for Linux(WSL)
  2. Oracle 拼音码函数
  3. thrift 的required、optional探究
  4. 【LeetCode】二分
  5. python爬虫(2):图片,翻译爬虫
  6. leetcode-160周赛-5241-铺瓷砖
  7. pygame游戏框架
  8. django 工具类配置
  9. 高级运维(二):搭建Nginx服务器、用户认证、基于域名的虚拟主机、SSL虚拟主机、Nginx反向代理
  10. URAL 1996. Cipher Message 3(KMP+fft)