就是裸的主席树嘛。。。

表扬一下自己1A

  1. #include<cstdio>
  2. #include<iostream>
  3. #include<cstring>
  4. #include<cstdlib>
  5. #include<algorithm>
  6. #include<cmath>
  7. using namespace std;
  8.  
  9. struct chairman_tree
  10. {
  11. int lc,rc,c;
  12. }tr[];int trlen,rt[];
  13. int maketree(int now,int l,int r,int p)
  14. {
  15. if(now==)
  16. {
  17. now=++trlen;
  18. tr[now].lc=tr[now].rc=;
  19. tr[now].c=;
  20. }
  21. tr[now].c++;
  22. if(l==r)return now;
  23. else
  24. {
  25. int mid=(l+r)/;
  26. if(p<=mid)tr[now].lc=maketree(tr[now].lc,l,mid,p);
  27. else tr[now].rc=maketree(tr[now].rc,mid+,r,p);
  28. }
  29. return now;
  30. }
  31. int merge(int x,int y)
  32. {
  33. if(x==||y==)return x+y;
  34. tr[x].c+=tr[y].c;
  35. tr[x].lc=merge(tr[x].lc,tr[y].lc);
  36. tr[x].rc=merge(tr[x].rc,tr[y].rc);
  37. return x;
  38. }
  39.  
  40. //-------------init-------------------
  41.  
  42. int check(int x,int y,int l,int r,int tot)
  43. {
  44. if(l==r)return l;
  45.  
  46. int lsum=tr[tr[y].lc].c-tr[tr[x].lc].c;
  47. int rsum=tr[tr[y].rc].c-tr[tr[x].rc].c;
  48.  
  49. int mid=(l+r)/;
  50. if(lsum>=tot/+)return check(tr[x].lc,tr[y].lc,l,mid,tot);
  51. else if(rsum>=tot/+)return check(tr[x].rc,tr[y].rc,mid+,r,tot);
  52. else return ;
  53. }
  54.  
  55. int main()
  56. {
  57. int n,m=,Q,x;
  58. scanf("%d%d",&n,&Q);
  59. trlen=;memset(rt,,sizeof(rt));
  60. for(int i=;i<=n;i++)
  61. {
  62. scanf("%d",&x);
  63. rt[i]=maketree(rt[i],,m,x);
  64. rt[i]=merge(rt[i],rt[i-]);
  65. }
  66.  
  67. int l,r;
  68. while(Q--)
  69. {
  70. scanf("%d%d",&l,&r);
  71. printf("%d\n",check(rt[l-],rt[r],,m,r-l+));
  72. }
  73. return ;
  74. }

bzoj5178: [Jsoi2011]棒棒糖的更多相关文章

  1. BZOJ5178[Jsoi2011]棒棒糖——主席树

    题目描述 Coffee的世界里也是有棒棒糖卖的,Coffee买了N(1≤N≤50000)只连着的.这N只棒棒糖包裹在小塑料袋中,排成 一列,相邻的两只棒棒糖的塑料袋是接起来的.为了方便,我们把棒棒糖从 ...

  2. bzoj5178 [Jsoi2011]棒棒糖 主席树+线段树二分

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=5178 https://lydsy.com/JudgeOnline/problem.php?id ...

  3. 【bzoj5178】[Jsoi2011]棒棒糖 主席树

    题目描述 Coffee的世界里也是有棒棒糖卖的,Coffee买了N(1≤N≤50000)只连着的.这N只棒棒糖包裹在小塑料袋中,排成一列,相邻的两只棒棒糖的塑料袋是接起来的.为了方便,我们把棒棒糖从左 ...

  4. 「JSOI2011」棒棒糖

    「JSOI2011」棒棒糖 传送门 双倍经验 考虑主席树做法. 对于当前的主席树节点,如果 \(\le mid\) 的个数足够就往左边走,否则就尝试往右边走,都不行就返回 \(0\). 参考代码: # ...

  5. bzoj 2209: [Jsoi2011]括号序列 splay

    2209: [Jsoi2011]括号序列 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 833  Solved: 392[Submit][Status ...

  6. BZOJ 2209: [Jsoi2011]括号序列 [splay 括号]

    2209: [Jsoi2011]括号序列 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 1111  Solved: 541[Submit][Statu ...

  7. Android 5.0(棒棒糖))十大新特性

    Android 5.0(棒棒糖))十大新特性 1. 全新Material Design设计风格 Android Lollipop全新的设计语言是受到了多种因素影响,是一种大胆的平面化创新.换句话说,谷 ...

  8. BZOJ 4710: [Jsoi2011]分特产 [容斥原理]

    4710: [Jsoi2011]分特产 题意:m种物品分给n个同学,每个同学至少有一个物品,求方案数 对于每种物品是独立的,就是分成n组可以为空,然后可以用乘法原理合起来 容斥容斥 \[ 每个同学至少 ...

  9. bzoj 2209 [Jsoi2011]括号序列 平衡树

    2209: [Jsoi2011]括号序列 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 1404  Solved: 699[Submit][Statu ...

随机推荐

  1. Android 复制文本内容到系统剪贴板(自由复制)

    直接上代码:(对应的类:android.content.ClipboardManager) //获取剪贴板管理器: ClipboardManager cm = (ClipboardManager) g ...

  2. Spring JPA 简单配置使用

    JPA 常用配置: # JPA (JpaBaseConfiguration, HibernateJpaAutoConfiguration) spring.data.jpa.repositories.b ...

  3. 高通处理器手机 解锁Bootloader 教程

    目前很多手机都需要解锁Bootloader之后才能进行刷机操作   本篇教程教你如何傻瓜式解锁Bootloader 首先需要在设置-关于手机 找到版本号(个别手机可能是内核版本号,甚至其他) 然后 快 ...

  4. 安卓学习之学生签到APP(一)

    一.学生定位签到页面 具体实现步骤: 1.1 高德地图申请key 1.创建新应用 进入高德地图api控制台,创建一个新应用.如果您之前已经创建过应用,可直接跳过这个步骤. 2.添加新Key 在创建的应 ...

  5. DeltaFish 校园物资共享平台 第六次小组会议

    DeltaFish 校园物资共享平台 第六次小组会议 记录人:娄雨禛 2018.6.3 任务进度(2018.5.28-2018.6.3) 前端 李鑫:商品详情界面设计.总体配色分析 刘鼎乾:卖家页面初 ...

  6. VHDL之code structure

     1 VHDL units VHDL code is composed of at least 3 fundamental sections: 1) LIBRARY declarations: Con ...

  7. MyEclipse获取注册码

    最近刚装上MyEclipse,一直弹窗提示注册码过期,开始还能接受,到最后,每发布一个项目便弹窗提醒,顿时感觉烦了,得治理治理这个烦人的注册码,下面是一段自动生成注册名和注册码的代码,只需要直接拿来用 ...

  8. RBM(受限玻尔兹曼机)和深层信念网络(Deep Brief Network)

    目录: 一.RBM 二.Deep Brief Network 三.Deep Autoencoder 一.RBM 1.定义[无监督学习] RBM记住三个要诀:1)两层结构图,可视层和隐藏层:[没输出层] ...

  9. GDI 画刷(10)

    创建画刷 调用 CreateSoildBrush.CreateHatchBrush.CreateBrushIndirect 函数可以创建画刷. CreateSoildBrush:创建实心画刷: Cre ...

  10. nyoj113-字符串替换

    字符串替换 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 编写一个程序实现将字符串中的所有"you"替换成"we" 输入 输入包 ...