POJ3264
来源:互联网 发布:外贸网站建设推广优化 编辑:程序博客网 时间:2024/05/22 04:59
#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>#define N 200222int maxc[N][40],minc[N][40],a[N],n,m;int ifmax(int a,int b){ if(a>b) return a; return b;}int ifmin(int a,int b){ if(a<b) return a; return b;}int logg(int x){ int cnt=-1; while(x) { cnt++; x=x>>1; } return cnt;}void QWER(){ int i,j; for(i=1;i<=n;i++) { maxc[i][0]=a[i]; minc[i][0]=a[i]; } for(j=1;j<=logg(n);j++) for(i=1;i+(1<<j)-1<=n;i++) { maxc[i][j]=ifmax(maxc[i][j-1],maxc[i+(1<<(j-1))][j-1]); minc[i][j]=ifmin(minc[i][j-1],minc[i+(1<<(j-1))][j-1]); }}int main(){ //freopen("in","r",stdin); int i,da,di,x,y,k; while(scanf("%d%d",&n,&m)!=EOF) { memset(minc,1<<30,sizeof(minc)); memset(maxc,-(1<<30),sizeof(maxc)); for(i=1;i<=n;i++) scanf("%d",&a[i]); QWER(); for(i=0;i<m;i++) { scanf("%d%d",&x,&y); k=logg(y-x+1);//这里一开始没注意 da=ifmax(maxc[x][k],maxc[y+1-(1<<(k))][k]); di=ifmin(minc[x][k],minc[y+1-(1<<(k))][k]); printf("%d\n",da-di); } } return 0;}
0 0
- poj3264
- poj3264
- poj3264
- poj3264
- POJ3264
- POJ3264
- POJ3264
- poj3264
- POJ3264
- poj3264
- poj3264
- poj3264
- poj3264
- POJ3264
- poj3264
- poj3264
- poj3264
- poj3264
- 非常方便地实现Window与Ubuntu共享文本字符串
- 7,鼠标学习三——焦点切换
- Search Insert Position
- HDU 5289 Assignment
- 基于DBUtils中的查询对Java中的回调函数的理解
- POJ3264
- cookie和session
- 配置AVD可以上网
- 关于spring+springMVC+myBatis的一些基础配置以及整合
- poj-2409 Let it Bead
- 互联网公司与团队的技术选型 --新技术、成熟技术和小众技术
- arc4random()
- uva 116 Unidirectional TSP 单向TSP 问题,经典dP(路径输出注意规划方向)
- 人可以输在起点,却不能输在终点