bzoj2957: 楼房重建
来源:互联网 发布:软件英语怎么说 编辑:程序博客网 时间:2024/06/09 16:06
容易想到把楼房高度转化为斜率,然后就是求x1,x2,x3...使x1<x2<x3...,考虑用线段树维护区间Ans与Max,时间复杂度O(nlog^2n)。
#include<iostream>#include<cstdio>#define N 100005using namespace std;int n,m,x,y,see[N*4];double Max[N*4];int Get(int k,int l,int r,double x){if (l==r) return Max[k]>x;int mid=(l+r)>>1,L=k<<1,R=L|1;if (Max[L]<=x) return Get(R,mid+1,r,x);else return see[k]-see[L]+Get(L,l,mid,x);}void mdy(int k,int l,int r,int x,double y){if (l==r){Max[k]=y;see[k]=1;return;}int mid=(l+r)>>1,L=k<<1,R=L|1;if (x<=mid) mdy(L,l,mid,x,y);else mdy(R,mid+1,r,x,y);Max[k]=max(Max[L],Max[R]);see[k]=see[L]+Get(R,mid+1,r,Max[L]);}int main(){scanf("%d%d",&n,&m);for (;m--;){scanf("%d%d",&x,&y);mdy(1,1,n,x,(double)y/x);printf("%d\n",see[1]);}return 0;}
0 0
- 【BZOJ2957】楼房重建
- bzoj2957: 楼房重建
- bzoj2957 楼房重建
- BZOJ2957 楼房重建
- 【Bzoj2957】楼房重建
- BZOJ2957 楼房重建
- BZOJ2957 楼房重建
- bzoj2957 楼房重建
- bzoj2957 楼房重建
- bzoj2957: 楼房重建
- BZOJ2957: 楼房重建
- [BZOJ2957] 楼房重建 分块
- [题解]bzoj2957 楼房重建
- 【bzoj2957】楼房重建
- BZOJ2957 楼房重建
- BZOJ2957 楼房重建
- [bzoj2957]楼房重建 线段树
- bzoj2957 楼房重建 线段树
- Spring Security(01)——初体验
- 便签1
- yum安装最新版本的mongodb
- Android中5.0实现点击水波纹效果
- sql分类统计,条件中没有的为0
- bzoj2957: 楼房重建
- C语言指针杂记
- 关于.so文件和处理器架构
- [iOS]Core Data浅析(二)
- hadoop系列:zookeeper(1)——zookeeper单点和集群安装
- 安卓开发中常见的问题总结
- Echart 的实例
- Dubbo新手入门实例HelloWorld(zookeeper)
- EventBus介绍