HDOJ 4417 Super Mario
划分树+二分
Super Mario
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2625 Accepted Submission(s): 1274
For each test data:
The first line contains two integers n, m (1 <= n <=10^5, 1 <= m <= 10^5), n is the length of the road, m is the number of queries.
Next line contains n integers, the height of each brick, the range is [0, 1000000000].
Next m lines, each line contains three integers L, R,H.( 0 <= L <= R < n 0 <= H <= 1000000000.)
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>using namespace std;const int maxn=100100;int tree[20][maxn];
int sorted[maxn];
int toleft[20][maxn];void build(int l,int r,int dep)
{if(l==r) return ;int mid=(l+r)/2;int same=mid-l+1;for(int i=l;i<=r;i++)if(tree[dep][i]<sorted[mid]) same--;int lpos=l,rpos=mid+1;for(int i=l;i<=r;i++){if(tree[dep][i]<sorted[mid])tree[dep+1][lpos++]=tree[dep][i];else if(tree[dep][i]==sorted[mid]&&same>0){tree[dep+1][lpos++]=tree[dep][i];same--;}else tree[dep+1][rpos++]=tree[dep][i];toleft[dep][i]=toleft[dep][l-1]+lpos-l;}build(l,mid,dep+1);build(mid+1,r,dep+1);
}int query(int L,int R,int l,int r,int dep,int k)
{if(l==r) return tree[dep][l];int mid=(L+R)/2;int cnt=toleft[dep][r]-toleft[dep][l-1];if(cnt>=k){int newl=L+toleft[dep][l-1]-toleft[dep][L-1];int newr=newl+cnt-1;return query(L,mid,newl,newr,dep+1,k);}else{int newr=r+toleft[dep][R]-toleft[dep][r];int newl=newr-(r-l-cnt);return query(mid+1,R,newl,newr,dep+1,k-cnt);}
}int n,m;int bin(int l,int r,int h)
{int low=1,high=r-l+1,mid,ans=0;while(low<=high){mid=(low+high)/2;int temp=query(1,n,l,r,0,mid);if(h>=temp){ans=mid;low=mid+1;}else high=mid-1;}return ans;
}int main()
{int T_T,cas=1;scanf("%d",&T_T);while(T_T--){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){scanf("%d",sorted+i);tree[0][i]=sorted[i];}sort(sorted+1,sorted+1+n);build(1,n,0);int l,r,h;printf("Case %d:\n",cas++);while(m--){scanf("%d%d%d",&l,&r,&h);l++,r++;printf("%d\n",bin(l,r,h));}}return 0;
}
HDOJ 4417 Super Mario相关推荐
- hdoj 4417 Super Mario 【树状数组 + 思维】
Super Mario Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- hdu 4417 Super Mario 树状数组||主席树
Super Mario Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Prob ...
- HDU 4417 Super Mario(莫队 + 树状数组 + 离散化)
Super Mario 思路 区间查找问题,容易想到离线莫队,确实这题就是莫队,接下来我们考虑如何维护区间高度值问题. 既然是离线嘛,我们容易想到离散化和他挂钩,想想这题是否需要离散化,高度的最大值是 ...
- hdu 4417 Super Mario
Super Mario Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- HDU 4417 Super Mario(划分树问题求不大于k的数有多少)
Super Mario Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- HDU 4417 Super Mario(划分树)
Super Mario Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- HDU 4417 Super Mario(线段树)
Super Mario Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- #HDU 4417 Super Mario (主席树 + 二分)
Super Mario Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- hdu 4417 Super Mario 划分树+二分
http://acm.hdu.edu.cn/showproblem.php?pid=4417 题意: 给定一个长度为n的序列,求区间[L,R]中小于h的个数: 思路: 分三种情况: 1:如果该区间最小 ...
最新文章
- 2022-2028年中国海洋电力行业市场深度分析及发展策略分析报告
- micro850通讯协议msg_micro850通讯协议msg_半导体semi通讯的协议SECS/GEM
- SOAP消息机制简介
- Plugin org.apache.maven.plugins:maven-resources-plugin:2.6
- matlab 读取mov文件格式,VideoReader 支持的文件格式 - MATLAB VideoReader.getFileFormats
- MathWorks 中国...
- 快速掌握用python处理Excel
- 利用程序动态管理Web.config文件
- jQuery实现title提示效果
- 如何解决This system is not registered with RHN.
- 2、认识常见网络设备
- Word各级标题格式设置和自动排序(标题序号)设置
- Windows 禁用U盘的程序,不用注册表方式。
- android开发 app消息提醒功能,Android中利用App实现消息推送机制的代码
- 斐讯n1遥控器app(支持休眠和唤醒)——WiFi篇
- 有没有好奇过路由器宽带拨号的mtu值为什么是1492呢?了解MTU与IP分片
- 如何利用设备管理系统做好设备预防维护保养工作?
- word/wps 插入图片变糊
- 【2024】末两位数
- 用Halo搭建个人博客
- 关于PlantSimulation 3D界面灰黑色解决方案
热门文章
- 基于Spring MVC + Spring + MyBatis的【图书信息管理系统(二)】
- ORA-19502ORA-27072
- ubuntu 禁用鼠标中键复制
- 学系统集成项目管理工程师(中项)系列17b_范围管理(下)
- 螯合放射性核素127985-74-4,p-SCN-Bn-DOTA连接单克隆抗体的一种双功能螯合剂
- Attention is all you need pytorch实现 源码解析01 - 数据预处理、词表的构建
- 主动降噪将成为TWS耳机的必备
- 环信为自己的app加入即时通信功能的流程
- IEEE AJE期刊润色 流程记录
- 支付中心设计-支付通道