题目:http://www.tsinsen.com/A1377

题解:分块大法好。每块维护一个有序表,修改暴力修改,查询从前往后跳即可。

代码:

  1. #include<cstdio>
  2. #include<cstdlib>
  3. #include<cmath>
  4. #include<cstring>
  5. #include<algorithm>
  6. #include<iostream>
  7. #include<vector>
  8. #include<map>
  9. #include<set>
  10. #include<queue>
  11. #include<string>
  12. #define inf 2000000000
  13. #define maxn 250000+5
  14. #define maxm 5005
  15. #define eps 1e-10
  16. #define ll long long
  17. #define ull unsigned long long
  18. #define pa pair<int,int>
  19. #define for0(i,n) for(int i=0;i<=(n);i++)
  20. #define for1(i,n) for(int i=1;i<=(n);i++)
  21. #define for2(i,x,y) for(int i=(x);i<=(y);i++)
  22. #define for3(i,x,y) for(int i=(x);i>=(y);i--)
  23. #define for4(i,x) for(int i=head[x],y=e[i].go;i;i=e[i].next,y=e[i].go)
  24. #define for5(n,m) for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)
  25. #define mod 1000000007
  26. #define lch k<<1,l,mid
  27. #define rch k<<1|1,mid+1,r
  28. #define sqr(x) (x)*(x)
  29. using namespace std;
  30. inline int read()
  31. {
  32. int x=,f=;char ch=getchar();
  33. while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
  34. while(ch>=''&&ch<=''){x=*x+ch-'';ch=getchar();}
  35. return x*f;
  36. }
  37. int n,m,l[maxn],r[maxn],b[maxn],s[maxn];
  38. double a[maxn],c[maxm][maxm];
  39. int main()
  40. {
  41. freopen("input.txt","r",stdin);
  42. freopen("output.txt","w",stdout);
  43. n=read();int T=read();m=sqrt(n*log2(n));
  44. for1(i,n)b[i]=(i-)/m+;
  45. for1(i,b[n])l[i]=(i-)*m+,r[i]=min(i*m,n),c[i][]=inf;
  46. while(T--)
  47. {
  48. int x=read(),y=read(),t=b[x];
  49. a[x]=(double)y/(double)x;
  50. s[t]=;for2(i,l[t],r[t])if(a[i]>c[t][s[t]])c[t][++s[t]]=a[i];
  51. c[t][s[t]+]=inf;
  52. double tmp=;int ans=;
  53. for1(i,b[n])ans+=s[i]-(upper_bound(c[i]+,c[i]+s[i]+,tmp)-c[i])+,tmp=max(tmp,c[i][s[i]]);
  54. printf("%d\n",ans);
  55. }
  56. return ;
  57. }

A1377. 楼房重建的更多相关文章

  1. bzoj 2957: 楼房重建 线段树

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

  2. P4198 楼房重建

    P4198 楼房重建 集中写博客= = 首先把高度变成斜率 然后就比较玄学了,首先用线段树维护一个区间的斜率最大值,和只看这个区间时能看见的楼房个数ans 然后更新时先更新max,再处理神奇的ans ...

  3. 【BZOJ2957】楼房重建(线段树)

    [BZOJ2957]楼房重建(线段树) 题面 BZOJ 题解 对于整个区间维护最大斜率以及只考虑这个区间的答案 考虑如何向上合并. 首先左半段的答案是一定存在的 所以,现在的问题就是右半段能够贡献的答 ...

  4. 【BZOJ2957】楼房重建 分块

    [BZOJ2957]楼房重建 Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子 ...

  5. BZOJ2957: 楼房重建(线段树&LIS)

    2957: 楼房重建 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 3727  Solved: 1793[Submit][Status][Discus ...

  6. 【BZOJ 2957】 2957: 楼房重建 (线段树)

    2957: 楼房重建 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1753  Solved: 841 Description 小A的楼房外有一大片施 ...

  7. bzoj 2957 楼房重建 分块

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

  8. 洛谷P4198 楼房重建 (分块)

    洛谷P4198 楼房重建 题目描述 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题, ...

  9. 【BZOJ 2957】楼房重建&&Codechef COT5 Count on a Treap&&【NOIP模拟赛】Weed 线段树的分治维护

    线段树是一种作用于静态区间上的数据结构,可以高效查询连续区间和单点,类似于一种静态的分治.他最迷人的地方在于“lazy标记”,对于lazy标记一般随我们从父区间进入子区间而下传,最终给到叶子节点,但还 ...

随机推荐

  1. C#中“貌似”跳出while(true)死循环

    当程序第一次执行到Read()函数时,程序会被阻塞,然后输入字符,Enter之后程序被激活,windows平台会自动在输入字符之后加入回车符和换行符,此时输入流中就有三个字符,然而read每次只读取一 ...

  2. HDU5002 Tree(LCT)

    今天做了一道LCT模板题之后忽然间好像记起来LCT的模板怎么用了,于是就把上次网络赛的一道LCT补一下.典型的删边,加边操作,还有路径加和路径set为一个数.维护的是路径第二大以及它有多少个,后来想想 ...

  3. WCF分布式开发步步为赢(3)WCF服务元数据交换、配置及编程开发

    今天我们继续WCF分布式开发步步为赢(3)WCF服务元数据交换.配置及编程开发的学习.经过前面两节的学习,我们了解WCF分布式开发的相关的基本的概念和自定义宿主托管服务的完整的开发和配置过程.今天我们 ...

  4. Android OpenGL 学习笔记 --开始篇

    转自: http://www.cnblogs.com/TerryBlog/archive/2010/07/09/1774475.html 1.什么是 OpenGL? OpenGL 是个专业的3D程序接 ...

  5. 如何修改Linux系统的TTL值

    在网络中,黑客如果用ping命令去探测  一个主机,根据TTL基数可以推测操作系统的类型.对于一个没有经过任何网关和路由的网络, 直接ping对方系统得到的TTL值,被叫做"TTL基数&qu ...

  6. oracle 密码忘记 找回密码

    生活中,容易忘记Oracle数据库system用户的密码,怎么办呢,小生带你一步步重新登上Oracle ,及时你密码忘记了. 1.打开cmd窗口,输入 sqlplus / as sysdba 2.运行 ...

  7. lintcode:Wiggle Sort

    Wiggle Sort Given an unsorted array nums, reorder it in-place such that nums[0] <= nums[1] >= ...

  8. 谈谈MVC模式

    谈谈MVC模式   作者: 阮一峰 1. 如何设计一个程序的结构,这是一门专门的学问,叫做"架构模式"(architectural pattern),属于编程的方法论. MVC模式 ...

  9. Axure 注册码

    用户名:axureuser 序列号:8wFfIX7a8hHq6yAy6T8zCz5R0NBKeVxo9IKu+kgKh79FL6IyPD6lK7G6+tqEV4LG

  10. 为什么要关闭360云盘:新来的美工嫌我们logo太丑,所以就决定关闭了。这个理由怎么样

    新来的美工嫌我们logo太丑,所以就决定关闭了.这个理由怎么样曾经拥有的不要忘记:不能得到的更要珍惜:属于自己的不要放弃:已经失去的留作回忆.我刚来~~~嘿嘿~~ 久经考验的,忠诚的国际宅男主义战士, ...