【听说是线段树】bzoj1012 [JSOI2008]最大数maxnumber
一眼看题目吓了一跳:这TM不就是单调队列吗,200000又怎样,大不了我二分嘛
系统提示:成功开启 手残模式
开始瞎写:
1 #include <cstdio> 2 long long a[200001]; 3 int b[200001]; 4 int m,mod; 5 int find(int l,int r,long long x) 6 { 7 if(l>=r-1) 8 if(a[r]>=x) 9 return r; 10 else 11 return l; 12 int mid=(l+r)>>1; 13 if(a[mid]>=x) 14 return find(mid,r,x); 15 else 16 return find(l,mid-1,x); 17 } 18 int _find(int l,int r,long long x) 19 { 20 if(l>=r-1) 21 if(b[l]>=x) 22 return l; 23 else 24 return r; 25 int mid=(l+r)>>1; 26 if(b[mid]>=x) 27 return _find(l,mid,x); 28 else 29 return _find(mid+1,r,x); 30 } 31 int main() 32 { 33 scanf("%d%d",&m,&mod); 34 long long last=0; 35 int n=0,N=0; 36 for(int i=1;i<=m;i++) 37 { 38 char ch=getchar(); 39 while(ch!='A' && ch!='Q') 40 ch=getchar(); 41 long long x; 42 scanf("%lld",&x); 43 if(ch=='A') 44 { 45 n=find(0,n,(x+last)%mod)+1; 46 a[n]=(x+last)%mod; 47 b[n]=++N; 48 } 49 else 50 { 51 if(N==20) 52 { 53 printf(""); 54 } 55 last=(a[_find(1,n,N-x+1)])%mod; 56 printf("%d\n",last); 57 } 58 } 59 return 0; 60 }
卧槽,然后就A了,,,A了,,,
主要思路:
每次二分查找要加入的点的位置和要找的点的位置(利用单调队列位置和权值双重单调)
老板娘毁我人生,居然说这是rmq、线段树、树状数组
转载于:https://www.cnblogs.com/wanglichao/p/5689520.html
【听说是线段树】bzoj1012 [JSOI2008]最大数maxnumber相关推荐
- BZOJ-1012[JSOI2008]最大数maxnumber 线段树区间最值
这道题相对简单下面是题目: 1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MB Submit: 6542 Solve ...
- bzoj1012: [JSOI2008]最大数maxnumber [单调队列]
Description 现在请求你维护一个数列,要求提供以下两种操作:1. 查询操作.语法:Q L 功能:查询当前数列中末尾L 个数中的最大的数,并输出这个数的值.限制:L不超过当前数列的长度.2. ...
- BZOJ 1012: [JSOI2008]最大数maxnumber(线段树)
裸的线段树...因为数组开小了而一直RE..浪费了好多时间.. -------------------------------------------------------------------- ...
- BZOJ 1012: [JSOI2008]最大数maxnumber 单调队列/线段树/树状数组/乱搞
1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MB Submit: 4750 Solved: 2145 [Sub ...
- BZOJ 1012 [JSOI2008]最大数maxnumber
1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MB Submit: 5425 Solved: 2397 [Sub ...
- 【BZOJ 1012】[JSOI2008]最大数maxnumber
1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MB Description 现在请求你维护一个数列,要求提供以下两种 ...
- 1012: [JSOI2008]最大数maxnumber
1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MB Submit: 10711 Solved: 4683 [Su ...
- BZOJ 1012: [JSOI2008]最大数maxnumber
1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MB Submit: 11358 Solved: 4978 [Su ...
- 1012: [JSOI2008]最大数maxnumber 线段树
https://www.lydsy.com/JudgeOnline/problem.php?id=1012 现在请求你维护一个数列,要求提供以下两种操作:1. 查询操作.语法:Q L 功能:查询当前数 ...
最新文章
- 高昆仑大数定律 中心极限定理
- MySQL的优化(大纲)
- 为什么不建议在代码中使用 User 这个单词?
- 【读书笔记《Android游戏编程之从零开始》】6.Android 游戏开发常用的系统控件(TabHost、ListView)...
- MySQL外键创建失败1005原因总结
- 我喜欢构建器模式的三个原因
- 腾讯智慧交通战略重磅升级 打造以人为中心的未来交通
- Oracle Database 12C 学习之多租户(连载四)
- Tina-TI 电路仿真下载、安装、简单功能介绍
- 没有编辑器时,使用echo更换源
- 如何在 MacBook 上使用低电量模式和高电量模式?
- 微软放大招,惊现杨超越鼓励师编程插件!
- Android App上架应用市场所需资料说明
- 几款常见的可视化HTML编辑器 WYSIWYG
- 奇点云数据中台技术汇(三)| DataSimba系列之计算引擎篇
- z-index的使用小结
- 高新技术企业申报认定需要满足哪些条件?
- X11 关闭屏幕保护
- Python文件及文件夹处理
- win7系统共享看不到别的计算机呢,系统之家win7系统在同一个工作组看不到其他电脑的解决方法...