BZOJ 1699
来源:互联网 发布:1hhh域名升级访问升级 编辑:程序博客网 时间:2024/06/05 07:52
标准RMQ,第一次写贴下代码,加入了IO优化
#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <ctime>#include <cmath>#include <vector>#include <deque>#include <algorithm>#include <list>#include <map>#include <set>#include <queue>#include <stack>#define REP(i,n) for(int i=0;i<(n);i++)#define REP1(i,n) for(int i=1;i<=(n);i++)#define FOR(i,a,b) for (int i=(a);i<=(b);i++)#define CLR(x,n) memset(x,n,sizeof(x))#define PN printf("\n")#define read(x) scanf("%d",&x)#define read2(x,y) scanf("%d%d",&x,&y)#define read3(x,y,z) scanf("%d%d%d",&x,&y,&z)#define write(x) printf("%d",x)#define write1(x) printf("%d ",x)#define writeln(x) printf("%d\n",x)#define write2(x,y) printf("%d %d",x,y)#define writeln2(x,y) printf("%d %d\n",x,y)#define write3(x,y,z) printf("%d %d %d",x,y,z)#define writeln3(x,y,z) printf("%d %d %d\n",x,y,z)using namespace std;inline int readint(){ int ans=0;char c;do c=getchar();while (!(c<='9'&& c>='0')); do{ ans=ans*10+c-'0'; c=getchar();} while (c<='9'&& c>='0'); return ans;}char buf[20];int d1[50100][20],d2[50100][20]; inline void writeint(int i){ int p=0; if (!i){p++;buf[0]='0';} else while (i){ buf[p++]=i%10+'0'; i/=10; } for (int j=p-1;j>=0;j--)putchar(buf[j]);}int n,q;void RMQ_init1(){ for (int j=1;(1<<j)<=n;j++) for (int i=1;i+(1<<j)-1<=n;i++) d1[i][j]=min(d1[i][j-1],d1[i+( 1<<(j-1) )][j-1]); //REP1(i,n){REP(j,4)write1(d1[i][j]);PN;}}void RMQ_init2(){ for (int j=1;(1<<j)<=n;j++) for (int i=1;i+(1<<j)-1<=n;i++) d2[i][j]=max(d2[i][j-1],d2[i+( 1<<(j-1) )][j-1]); //REP1(i,n){REP(j,4)write1(d2[i][j]);PN;}}int RMQ_find1(int l,int r){ int k=0; while ( (1<<k)<=r-l+1)k++;--k; return min(d1[l][k],d1[r-(1<<k)+1][k]);}int RMQ_find2(int l,int r){ int k=0; while ( (1<<k)<=r-l+1)k++;--k; return max(d2[l][k],d2[r-(1<<k)+1][k]);}int main(){ n=readint();q=readint(); REP1(i,n){d1[i][0]=readint();d2[i][0]=d1[i][0];} RMQ_init1();RMQ_init2(); int l,r; REP(i,q){ l=readint();r=readint(); //cout<<RMQ_find2(l,r) -RMQ_find1(l,r)<<endl; writeint(RMQ_find2(l,r) -RMQ_find1(l,r));PN; } system("pause"); return 0;}
- BZOJ 1699
- [BZOJ ]
- BZOJ****-****
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- bzoj
- bzoj
- BZOJ
- BZOJ
- bzoj
- DIY:magento 自动用户信息管理
- UVa 11489
- “雷区”——内存管理
- 冒泡排序C语言代码
- poj 3211 Washing Clothes 01背包问题
- BZOJ 1699
- x264编码(颜色空间已经用多媒体指令优化)效率测试结果
- CentOS-6.4-minimal版中配置网络防火墙和用户组等
- Windows运行命令大全
- CCClippingNode 在IOS设备和某些安卓设备上无效果
- 配置文件
- Oracle PGA(程序全局区)
- shell--传入参数的处理
- 批量导出为csv文件