1. /*
  2. 不要思维定视 盯着线段树维护l r 的ans不放
  3. 显然没法区间合并 换一种思路
  4. 如果打暴力的话 O(nm) 每次询问 扫一遍之前所有的修改
  5. 有交点则说明种数++
  6. 接下来考虑如何优化
  7. 我们把每个区间看做(l,r)的坐标内的点 然后查询区间L<=li<=R L<=ri<=R内有多少点
  8. 这样的查询在二维坐标里不会查(反正我不会..)将坐标轴转化成两个一维的线段
  9. 这样我们就又面临一个问题 会有重复
  10. 那就用排除法 总数-不重复区间的 又因为保证了 r>=l
  11. 所以l轴的[r+1,n] +r 轴的[1,l-1] 恰好不重复且覆盖了所有多出来的点
  12. */
  13. #include<iostream>
  14. #include<cstdio>
  15. #include<cstring>
  16. #define maxn 100010
  17. using namespace std;
  18. int n,m,tl[maxn],tr[maxn],sum;
  19. void Add_treel(int pos,int data)
  20. {
  21. while(pos<=n)
  22. {
  23. tl[pos]+=data;
  24. pos+=pos&(-pos);
  25. }
  26. }
  27. void Add_treer(int pos,int data)
  28. {
  29. while(pos<=n)
  30. {
  31. tr[pos]+=data;
  32. pos+=pos&(-pos);
  33. }
  34. }
  35. int find_treel(int pos)
  36. {
  37. int ret=;
  38. while(pos)
  39. {
  40. ret+=tl[pos];
  41. pos-=pos&(-pos);
  42. }
  43. return ret;
  44. }
  45. int find_treer(int pos)
  46. {
  47. int ret=;
  48. while(pos)
  49. {
  50. ret+=tr[pos];
  51. pos-=pos&(-pos);
  52. }
  53. return ret;
  54. }
  55. int main()
  56. {
  57. freopen("greedisland.in","r",stdin);
  58. freopen("greedisland.out","w",stdout);
  59. scanf("%d%d",&n,&m);
  60. int x,y,z;
  61. for(int i=;i<=m;i++)
  62. {
  63. scanf("%d%d%d",&x,&y,&z);
  64. if(x==){Add_treel(y,);Add_treer(z,);sum++;}
  65. if(x==)
  66. {
  67. int s1=find_treel(n)-find_treel(z);
  68. int s2=find_treer(y-);
  69. printf("%d\n",sum-s1-s2);
  70. }
  71. }
  72. return ;
  73. }

cogs 1008 贪婪大陆的更多相关文章

  1. cogs——1008. 贪婪大陆(清华巨佬代码)——树状数组

    1008. 贪婪大陆 ★★   输入文件:greedisland.in   输出文件:greedisland.out   简单对比时间限制:1 s   内存限制:128 MB 试题四:贪婪大陆  [题 ...

  2. Cogs 1008. 贪婪大陆(树状数组)

    贪婪大陆 难度等级 ★★ 时间限制 1000 ms (1 s) 内存限制 128 MB 测试数据 10 简单对比 输入文件:greedisland.in 输出文件:greedisland.out 简单 ...

  3. COGS1008. 贪婪大陆[树状数组 模型转换]

    1008. 贪婪大陆 ★★   输入文件:greedisland.in   输出文件:greedisland.out   简单对比时间限制:1 s   内存限制:128 MB 试题四:贪婪大陆  [题 ...

  4. P2184 贪婪大陆

    P2184 贪婪大陆   题目背景 面对蚂蚁们的疯狂进攻,小FF的Tower defence宣告失败……人类被蚂蚁们逼到了Greed Island上的一个海湾.现在,小FF的后方是一望无际的大海, 前 ...

  5. 洛谷 P2184 贪婪大陆 解题报告

    P2184 贪婪大陆 题目背景 面对蚂蚁们的疯狂进攻,小\(FF\)的\(Tower\) \(defence\)宣告失败--人类被蚂蚁们逼到了\(Greed\) \(Island\)上的一个海湾.现在 ...

  6. AC日记——贪婪大陆 洛谷 P2184

    贪婪大陆 思路: 树状数组: 跪烂.. 代码: #include <bits/stdc++.h> using namespace std; #define maxn 100005 int ...

  7. 【洛谷P2184】贪婪大陆

    贪婪大陆 题目链接 对于一个区间[l,r],右端点在l左边即[1,l-1]中的区间与区间[l,r]没有交集, 左端点在r右边即[r,n]中的区间与区间[l,r]没有交集, 其余区间必与[l,r]有交集 ...

  8. luoguP2184 贪婪大陆 题解(树状数组)

    P2184 贪婪大陆  题目 其实很容易理解就是询问一段区间内有多少段不同的区间 然后再仔细思索一下会发现: 1.只要一个区间的开头在一个节点i的左边,那么这个区间包含在区间1~i中. 2.只要一个区 ...

  9. 贪婪大陆(cogs 1008)

    [题目描述] 面对蚂蚁们的疯狂进攻,小FF的Tower defense宣告失败……人类被蚂蚁们逼到了Greed Island上的一个海湾.现在,小FF的后方是一望无际的大海,前方是变异了的超级蚂蚁. ...

随机推荐

  1. Log4j实现对Java日志的配置全攻略

    1. 配置文件 Log4J配置文件的基本格式如下: #配置根Logger log4j.rootLogger = [ level ] , appenderName1 , appenderName2 , ...

  2. srpm包的编译方式

    基本说明:后缀仅为rpm的包如xxxxx.rpm称作为二进制包 ------ 可以直接安装到架构匹配的系统上; 后缀为src.rpm的包如webkitgtk-2.4.7-1.fc21.src.rpm称 ...

  3. JS 操作Dom节点之CURD

    许多优秀的Javascript库,已经封装好了丰富的Dom操作函数,这可以加快项目开发效率.但是对于非常注重网页性能的项目来说,使用Dom的原生操作方法还是必要的. 1. 查找节点 document. ...

  4. hdu1405 第六周J题(质因数分解)

    J - 数论,质因数分解 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   Desc ...

  5. UVA - 12627 Erratic Expansion 奇怪的气球膨胀 (分治)

    紫书例题p245 Piotr found a magical box in heaven. Its magic power is that if you place any red balloon i ...

  6. CSS中.和#区别

    一.问题来源 制作导航栏,参考别人的代码,发现的. 二.解析 2.1 概述 id:用来定义页面中大的样式,如栏目划分,顶部,正文,底部等:用#top的形式来定义: class:用来定义一些比较细节的样 ...

  7. Delphi会自动初始化全局变量和类成员变量,但不初始化局部变量

    If you don't explicitly initialize a global variable, the compiler initializes it to 0. Object insta ...

  8. BZOJ 1013 [JSOI2008]球形空间产生器sphere

    1013: [JSOI2008]球形空间产生器sphere Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 3074  Solved: 1614[Subm ...

  9. POJ Round Numbers(数位DP)

    题目大意: Round Number:  将一个整数转化为二进制数字后,(不含前导0) 要是0的个数 大于等于1的个数 则是 Round Number 问从L-R之中有多少个Round Number ...

  10. oracle连接总结(内连接、外连接、自然连接,交叉连接,自连接)

    1.简述  1) 两个表的连接,是通过将一个表中的一列或者多列同另一个表中的列链接而建立起来的.用来连接两张表的表达式组成了连接条件.当连接成功后,第二张表中的数据就同第一张表连接起来了,并形成了复合 ...