题解同各神犇的方法。。。

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<algorithm>
  5. #define maxn 100500
  6. using namespace std;
  7. int n,a[maxn],b[maxn],m,l,r,len,tot=,regis;
  8. int ls[maxn*],rs[maxn*],sum[maxn*],root[maxn];
  9. void build(int &now,int left,int right)
  10. {
  11. now=++tot;sum[now]=;
  12. if (left==right) return;
  13. int mid=(left+right)>>;
  14. build(ls[now],left,mid);
  15. build(rs[now],mid+,right);
  16. }
  17. void modify(int last,int &now,int left,int right,int pos)
  18. {
  19. now=++tot;sum[now]=sum[last]+b[pos];
  20. ls[now]=ls[last];rs[now]=rs[last];
  21. if (left==right) return;
  22. int mid=(left+right)>>;
  23. if (pos<=mid) modify(ls[last],ls[now],left,mid,pos);
  24. else modify(rs[last],rs[now],mid+,right,pos);
  25. }
  26. int ask(int last,int now,int left,int right,int lim)
  27. {
  28. if (left==right)
  29. {
  30. if (b[left]<=lim) return sum[now]-sum[last];
  31. else return ;
  32. }
  33. int mid=(left+right)>>,r=b[mid],k1=sum[ls[now]],k2=sum[ls[last]];
  34. if (r<=lim) return sum[ls[now]]-sum[ls[last]]+ask(rs[last],rs[now],mid+,right,lim);
  35. else return ask(ls[last],ls[now],left,mid,lim);
  36. }
  37. int main()
  38. {
  39. scanf("%d",&n);
  40. for (int i=;i<=n;i++)
  41. {
  42. scanf("%d",&a[i]);
  43. b[i]=a[i];
  44. }
  45. sort(b+,b+n+);
  46. len=unique(b+,b+n+)-b-;
  47. for (int i=;i<=n;i++)
  48. a[i]=lower_bound(b+,b+len+,a[i])-b;
  49. build(root[],,len);
  50. for (int i=;i<=n;i++)
  51. {
  52. regis=b[a[i]];
  53. modify(root[i-],root[i],,len,a[i]);
  54. }
  55. scanf("%d",&m);
  56. for (int i=;i<=m;i++)
  57. {
  58. scanf("%d%d",&l,&r);
  59. int ans=;
  60. for (;;)
  61. {
  62. int ret=ask(root[l-],root[r],,len,ans+);
  63. if (ret<ans+) {printf("%d\n",ans+);break;}
  64. ans=ret;
  65. }
  66. }
  67. return ;
  68. }

BZOJ 4408 神秘数的更多相关文章

  1. BZOJ 4408 主席数+找规律

    #include <cstdio> ; inline void Get_Int(int &x) { ; ') ch=getchar(); +ch-'; ch=getchar();} ...

  2. ●BZOJ 4408 [Fjoi 2016]神秘数

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=4408 题解: 主席树 首先,对于一些数来说, 如果可以我们可以使得其中的某些数能够拼出 1- ...

  3. Bzoj 4408: [Fjoi 2016]神秘数 可持久化线段树,神题

    4408: [Fjoi 2016]神秘数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 177  Solved: 128[Submit][Status ...

  4. BZOJ 4408: [Fjoi 2016]神秘数

    4408: [Fjoi 2016]神秘数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 464  Solved: 281[Submit][Status ...

  5. BZOJ 4408: [Fjoi 2016]神秘数 可持久化线段树

    4408: [Fjoi 2016]神秘数 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4408 Description 一个可重复数字集 ...

  6. BZOJ 4408: [Fjoi 2016]神秘数 [主席树]

    传送门 题意: 一个可重复数字集合S的神秘数定义为最小的不能被S的子集的和表示的正整数.例如S={1,1,1,4,13},8无法表示为集合S的子集的和,故集合S的神秘数为8.现给定n个正整数a[1]. ...

  7. bzoj 4408: [Fjoi 2016]神秘数 数学 可持久化线段树 主席树

    https://www.lydsy.com/JudgeOnline/problem.php?id=4299 一个可重复数字集合S的神秘数定义为最小的不能被S的子集的和表示的正整数.例如S={1,1,1 ...

  8. BZOJ 4408 FJOI2016 神秘数 可持久化线段树

    Description 一个可重复数字集合S的神秘数定义为最小的不能被S的子集的和表示的正整数.例如S={1,1,1,4,13},1 = 12 = 1+13 = 1+1+14 = 45 = 4+16 ...

  9. 神秘数(bzoj 4408)

    Description 一个可重复数字集合S的神秘数定义为最小的不能被S的子集的和表示的正整数.例如S={1,1,1,4,13}, 1 = 1 2 = 1+1 3 = 1+1+1 4 = 4 5 = ...

随机推荐

  1. Runtime的用法

    public class RuntimeTest { public static void main(String[] args) { Runtime run =Runtime.getRuntime( ...

  2. Delphi中有序型

    有序类型包括:.integer(整型).character(字符型).boolean(布尔型).enumerated(枚举型).subrange(子界型)有序类型定义了一组被排序的值.每个相异值都有唯 ...

  3. Webpack教程一

    比较 如果你熟悉原来一系列的构建工具,grunt或者gulp之类的,这里有一篇webpack和他们比较的文章可以读一读. Webpack Compared 安装 先装好node和npm,因为webpa ...

  4. http://blog.csdn.net/luxiaoyu_sdc/article/details/7333024

    http://blog.csdn.net/luxiaoyu_sdc/article/details/7333024 http://blog.csdn.net/kkdelta/article/detai ...

  5. Android 基于Socket的聊天应用(二)

    很久没写BLOG了,之前在写Android聊天室的时候答应过要写一个客户(好友)之间的聊天demo,Android 基于Socket的聊天室已经实现了通过Socket广播形式的通信功能. 以下是我写的 ...

  6. online judge 提交代码应该注意的事项

    首先,eclipse工程上出现红色的惊叹号,这个时候一般是工程的参考library或者build path的jar文件或者库文件缺失,可以右键工程,打开properties,点击 java build ...

  7. JTAG ARM-OB 被识别为盗版修复的方法

    今天下了一个 Keil 的最新版 V4.70,打开工程,弹出个升级Jlink固件的对话框,也没仔细看,直接点了yes .这下爽了,升级之后弹出个对话框说我的Jlink是盗版的,然后工程自动关闭,很是无 ...

  8. Struts2笔记——通配符和动态方法调用

     通配符映射 * 一个 Web应用可能有成百上千个 action 声明. 可以利用 struts提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系 * 通配符映射规则     > 若 ...

  9. Gray code---hdu5375(格雷码与二进制码,普通dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5375 题意就是:给你一串二进制码,里面可能含有'?'这个既可以表示0又可以表示1, 让我们把这个二进制 ...

  10. 读取redis中的数据时出现:MISCONF Redis is configured to save RDB snapshots

    读取redis中的数据时出现:MISCONF Redis is configured to save RDB snapshots   以下为异常详细信息: Exception in thread &q ...