POJ 2823 Sliding Window
来源:互联网 发布:dota2 6.88狂战爷数据 编辑:程序博客网 时间:2024/06/06 01:26
继续复习线段树。找女朋友浪费时间啊。课程全部落下拉。
这是标准的模版题。输出区间最小与区间最大。
AC代码
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int MaxF=10000000;const int MinF=-10000000;int n,ql,qr;int a[5000001];int minv[20000001];int maxv[20000001];int querymin(int l,int r,int o){ int m=(l+r)>>1,ans=MaxF; if(ql<=l&&r<=qr)return minv[o]; if(ql<=m)ans=min(ans,querymin(l,m,o*2)); if(qr>m)ans=min(ans,querymin(m+1,r,o*2+1)); return ans;}int querymax(int l,int r,int o){ int m=(l+r)>>1,ans=MinF; if(ql<=l&&r<=qr)return maxv[o]; if(ql<=m)ans=max(ans,querymax(l,m,o*2)); if(qr>m)ans=max(ans,querymax(m+1,r,o*2+1)); return ans;}int buildmin(int l,int r,int o){ int m=(l+r)>>1; if(l<r) { minv[o]=min(buildmin(l,m,o*2),buildmin(m+1,r,o*2+1)); } else minv[o]=a[m]; return minv[o];}int buildmax(int l,int r,int o){ int m=(l+r)>>1; if(l<r) { maxv[o]=max(buildmax(l,m,o*2),buildmax(m+1,r,o*2+1)); } else maxv[o]=a[m]; return maxv[o];}int main(){ int m; while(~scanf("%d%d",&n,&m)) { for(int i=1;i<=n;i++) scanf("%d",&a[i]); buildmin(1,n,1); buildmax(1,n,1); for(ql=1,qr=ql+m-1;qr<n;ql++,qr++) { printf("%d ",querymin(1,n,1)); }printf("%d\n",querymin(1,n,1)); for(ql=1,qr=ql+m-1;qr<n;ql++,qr++) { printf("%d ",querymax(1,n,1)); }printf("%d\n",querymax(1,n,1)); }}
0 0
- POJ 2823 Sliding Window
- poj 2823 Sliding Window
- poj 2823 Sliding Window
- POJ 2823 Sliding Window
- POJ-2823-Sliding Window
- POJ 2823 Sliding Window
- POJ 2823 Sliding Window
- POJ 2823 Sliding Window
- poj 2823 Sliding Window
- POJ 2823(Sliding Window)
- POJ-2823-Sliding Window
- poj 2823 Sliding Window
- POJ 2823 Sliding Window
- POJ 2823 Sliding Window
- Sliding Window poj 2823
- POJ 2823 Sliding Window
- poj 2823 Sliding Window
- POJ 2823 Sliding Window
- android
- window.status属性的使用方法
- java通过jacob调用word
- Myeclipse 修改注释的模板
- IOS---网络以及框架ASIHTTPRequest入门学习
- POJ 2823 Sliding Window
- Oracle的rollup、cube、grouping sets函数
- Windows Phone 8 中检测推送通知是否会因为节电模式而被禁用
- 如何让对话框中的控件随着对话框大小的改变而随之改变
- sdut oj 2619 地板砖(简单的状压)
- VC++常用快捷键
- Mybatis 示例之 SelectKey
- UIView,UIButton,UIImageView等设置圆角,设置阴影,设置边框的方法
- mount ubifs 挂载