BZOJ 2957楼房重建

时间:2022-01-05 08:59:52

传送门

线段树

//Twenty
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<queue>
#include<vector>
#define lc x<<1
#define rc x<<1|1
#define mid ((l+r)>>1)
const int maxn=;
int a,b,n,m,sg[maxn<<];
double sgd[maxn<<];
using namespace std;
inline int read(){
int ret=,f=; char ch=getchar();
while((ch!='-')&&(ch<''||ch>'')) ch=getchar();
if(ch=='-') f=-,ch=getchar();
for(;ch>=''&&ch<='';ch=getchar()) ret=ret*+ch-'';
return ret*f;
}
int CUL(double ma,int x,int l,int r){
if(l==r) {return sgd[x]>ma;}
if(sgd[lc]<=ma) return CUL(ma,rc,mid+,r);
else return sg[x]-sg[lc]+CUL(ma,lc,l,mid);
}
void change(int x,int l,int r,int xx,double w){
if(l==r) {sg[x]=; sgd[x]=w;return;}
if(xx<=mid) change(lc,l,mid,xx,w);
else change(rc,mid+,r,xx,w);
sgd[x]=max(sgd[lc],sgd[rc]);
sg[x]=sg[lc]+CUL(sgd[lc],rc,mid+,r);
}
int main()
{
n=read(); m=read();
while(m--){
a=read(); b=read();
change(,,n,a,(double)b/a);
printf("%d\n",sg[]);
}
return ;
}

BZOJ 2957楼房重建

BZOJ 2957楼房重建的更多相关文章

  1. bzoj 2957&colon; 楼房重建 线段树

    2957: 楼房重建 Time Limit: 10 Sec  Memory Limit: 256 MB[Submit][Status][Discuss] Description 小A的楼房外有一大片施 ...

  2. bzoj 2957 楼房重建 分块

    楼房重建 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id=29 ...

  3. BZOJ 2957 楼房重建 (线段树)

    题目链接  楼房重建 解题思路:我们可以把楼房的最高点的斜率计算出来.那么问题就转化成了实时查询x的个数,满足数列x的左边没有大于等于x的数. 我们可以用线段树维护 设t[i]为如果只看这个区间,可以 ...

  4. &lbrack;BZOJ 2957&rsqb;楼房重建(THU2013集训)(分块思想)

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2957 分析: 首先明确问题,对于每栋楼房的斜率K=H/X,问题就是问有多少个楼房的K比前面所有 ...

  5. &lbrack;BZOJ 2957&rsqb;楼房重建(THU2013集训)(线段树维护单调栈)

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2957 分析: 根据题意,就是比较斜率大小 只看一段区间的话,那么这段区间能看见的楼房数量就是这 ...

  6. 洛谷 P4198 BZOJ 2957 楼房重建

    题目描述 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些事件发生在一个 ...

  7. BZOJ 2957 楼房重建

    Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些 ...

  8. bzoj 2957 楼房重建 &lpar;线段树&plus;思路)

    链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2957 思路: 用分块可以很简单的过掉,但是这道题也可以用线段树写. 分类讨论左区间最大值对 ...

  9. bzoj 2957&colon; 楼房重建 ——线段树

    Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些 ...

随机推荐

  1. JS&plus;CSS3实现带预览图幻灯片效果

    这个案例学习起来还有点吃力,目前还没有独自自己写出来过,贴出来以免忘记. 慕课网该课程原地址:http://www.imooc.com/learn/412 源码: <!DOCTYPE html& ...

  2. cmd命令查看端口和进程信息

    在我们进行WEB开发时,往往会遇到socket连接到服务器出现无法响应的问题,归根结底就是网络通讯问题,或者端口未开启的问题,下面总结了一下找出原因的方法 1 看与服务器的连接:ping ip地址

  3. C&plus;&plus; 部分知识点

    1,return语句返回函数的返回值,就是函数的类型,函数只能有唯一的返回值: return可以停止函数,并将控制返回主调函数: 一个函数可以有许多return语句,执行到哪个return语句,哪个起 ...

  4. Failed while installing JAX-RS &lpar;REST Web Services&rpar; 1&period;1&period; org&period;osgi&period;service&period;prefs&period;BackingStoreException&colon; Resource &&num;39&semi;&sol;&period;settings&&num;39&semi; does not exist&period;

    https://issues.jboss.org/browse/JBIDE-10039?_sscc=t https://*.com/questions/16836832/fai ...

  5. 常用笔记:Web前端

    [HTML] <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/&gt ...

  6. marquee 的浏览器兼容性

    marquee 在IE,firefox,chrome ,safari下都能正常的实现走马灯效果,兼容性没有问题 并且两个关键属性scrollamount(滚动速度)direction(滚动方向) 所有 ...

  7. 外购半成品回写PR时将同一供应商同一编码的PR合并数量回写

    '); --PR 净需求 '); ---加上PR回写逻辑后 '); ---加上PR回写逻辑后 ') order by item; ---最终回写去SAP的数据 ) as LGORT ,'SAPRFC' ...

  8. angularjs文档下载

    路过 存文件而已

  9. pta习题集 5-10 切分表达式——写个tokenizer吧

    [先说点出题背景] 这个题是为低年级同学.学C语言的同学准备的,因为,对这部分同学,这个题目编写起来略有一点复杂.如果是高年级.学过了正则表达式(Regular Expression)的同学或者学过了 ...

  10. apache commons lang包中的StringUtils

    计算一个字符串某个字符的出现次数 a, 使用charAt方法截取之后,循环判断. b, 使用apache commons lang包中的StringUtils: int n = StringUtils ...