玲珑杯1128--线段树模板
来源:互联网 发布:java iterator() 编辑:程序博客网 时间:2024/06/06 02:36
保存一波线段树模板,之前写的都没了,干脆再写一次。。
#include <iostream>#include <stdio.h>#include <string.h>#define siz 100005#define lson(x) ((x)<<1)#define rson(x) (((x)<<1)|1)using namespace std;struct node{ int mx,mi;};int p[siz],A[siz],B[siz];node S[siz<<2];int n;void build(int root,int left,int right){ if(left==right){ S[root].mi=S[root].mx=A[left]; return ; } int mid=(left+right)>>1; build(lson(root),left,mid); build(rson(root),mid+1,right); S[root].mx=max(S[lson(root)].mx,S[rson(root)].mx); S[root].mi=min(S[lson(root)].mi,S[rson(root)].mi);}int query1(int root,int left,int right,int l,int r){ if(left==l&&right==r){ return S[root].mx; } int mid=(left+right)>>1; if(r<=mid){ return query1(lson(root),left,mid,l,r); } else if(l>=mid+1){ return query1(rson(root),mid+1,right,l,r); } else{ return max(query1(lson(root),left,mid,l,mid),query1(rson(root),mid+1,right,mid+1,r)); }}int query2(int root,int left,int right,int l,int r){ if(left==l&&right==r){ return S[root].mi; } int mid=(left+right)>>1; if(r<=mid){ return query2(lson(root),left,mid,l,r); } else if(l>=mid+1){ return query2(rson(root),mid+1,right,l,r); } else{ return min(query2(lson(root),left,mid,l,mid),query2(rson(root),mid+1,right,mid+1,r)); }}void solve(){ build(1,1,n); for(int i=1;i<=n;i++){ int maxx=query1(1,1,n,i-B[i]+1,i); int minn=query2(1,1,n,i-B[i]+1,i); //cout<<maxx<<" "<<minn<<endl; //cout<<(long long)(maxx*minn)<<endl; long long int ans=maxx; ans=ans*minn; printf("%lld\n",(long long)maxx*minn); }}int main(){ scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d",&A[i]); } for(int i=1;i<=n;i++){ scanf("%d",&B[i]); } solve(); return 0;}
阅读全文
0 0
- 玲珑杯1128--线段树模板
- 玲珑杯-1063-线段树
- 玲珑杯 H -- Variance(线段树)
- 【线段树求区间最值】玲珑oj 1128
- 玲珑杯 1072 - Capture(DFS序+线段树)
- “玲珑杯” 线上赛 Round #5 Variance(线段树)
- “玲珑杯”ACM比赛 Round #21 【线段树标记】
- 【玲珑学院OJ1063】Variance(线段树)
- 值域线段树 (玲珑OJ 1117)
- 线段树变形(玲珑学院1129)
- 玲珑杯 1128
- 玲珑杯#3 G 1043 - G. Quailty and Square Counter【线段树-卡常数】
- “玲珑杯”ACM比赛 Round #5 H -- Variance(线段树+方差)
- 线段树,方差,数学(Variance,玲珑杯 Round#5 H lonlife 1063)
- 玲珑杯Round #14 B题 RE:从零开始的异世界生活(离线+线段树)
- “玲珑杯”ACM比赛 Round #19 B(RMQ大法好啊,比线段树快得多!!!!)
- 玲珑杯” Round #19 Buildings 【线段树+尺取法】+【vector + 尺取法】
- “玲珑杯”ACM比赛 Round #21-C-战舰萝莉(线段树区间更新)
- Codeforces Round #417 (Div. 2) A. Sagheer and Crossroads
- mysql慢查询日志
- Wait/Notify
- 数据库导入与导出
- JPEG解码实验
- 玲珑杯1128--线段树模板
- CentOS7 下 python2.7.5 安装 pip 后再安装 requests包
- Virtualbox如何配置Linux的网络连接
- 灯泡开关案例
- Linux下socket编程之多进程TCP服务器端
- android Snackbar
- 非参数估计:parzen窗发与kn近领法
- PlaidCTF2017之zipper
- 生活偶记