P2880 [USACO07JAN]平衡的阵容Balanced Lineup

RMQ

RMQ模板题

静态求区间最大/最小值

(开了O2还能卡到rank9)

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<cctype>
  5. using namespace std;
  6. template <typename T> inline T min(T &a,T &b) {return a<b ?a:b;}
  7. template <typename T> inline T max(T &a,T &b) {return a>b ?a:b;}
  8. template <typename T> inline void read(T &x){
  9. char c=getchar(); x=;
  10. while(!isdigit(c)) c=getchar();
  11. while(isdigit(c)) x=(x<<)+(x<<)+(c^),c=getchar();
  12. }
  13. int wt[];
  14. template <typename T> inline void output(T x){
  15. if(!x) {putchar(); return ;}
  16. int l=;
  17. while(x) wt[++l]=x%,x/=;
  18. while(l) putchar(wt[l--]+);
  19. }
  20. int n,m,mxd[][],mnd[][],log[];
  21. inline int query(int l,int r){ //查询
  22. int k=log[r-l+];
  23. int r1=max(mxd[k][l],mxd[k][r-(<<k)+]);
  24. int r2=min(mnd[k][l],mnd[k][r-(<<k)+]);
  25. return r1-r2;
  26. }
  27. int main(){
  28. read(n); read(m); int q1,q2; log[]=-;
  29. for(int i=;i<=n;++i) read(mxd[][i]),mnd[][i]=mxd[][i],log[i]=log[i>>]+; //log值预处理
  30. for(int i=;(<<i)<=n;++i)
  31. for(int j=;j+(<<(i-))<=n;++j){
  32. mxd[i][j]=max(mxd[i-][j],mxd[i-][j+(<<(i-))]);
  33. mnd[i][j]=min(mnd[i-][j],mnd[i-][j+(<<(i-))]);
  34. } //普通的RMQ处理
  35. for(int i=;i<=m;++i) read(q1),read(q2),output(query(q1,q2)),putchar('\n');
  36. return ;
  37. }

P2880 [USACO07JAN]平衡的阵容Balanced Lineup的更多相关文章

  1. ST表 || RMQ问题 || BZOJ 1699: [Usaco2007 Jan]Balanced Lineup排队 || Luogu P2880 [USACO07JAN]平衡的阵容Balanced Lineup

    题面:P2880 [USACO07JAN]平衡的阵容Balanced Lineup 题解: ST表板子 代码: #include<cstdio> #include<cstring&g ...

  2. P2880 [USACO07JAN]平衡的阵容Balanced Lineup(RMQ的倍增模板)

    题面:P2880 [USACO07JAN]平衡的阵容Balanced Lineup RMQ问题:给定一个长度为N的区间,M个询问,每次询问Li到Ri这段区间元素的最大值/最小值. RMQ的高级写法一般 ...

  3. 【洛谷】P2880 [USACO07JAN]平衡的阵容Balanced Lineup(st表)

    题目背景 题目描述: 每天,农夫 John 的N(1 <= N <= 50,000)头牛总是按同一序列排队. 有一天, John 决定让一些牛们玩一场飞盘比赛. 他准备找一群在对列中为置连 ...

  4. 洛谷—— P2880 [USACO07JAN]平衡的阵容Balanced Lineup

    https://www.luogu.org/problemnew/show/P2880 题目背景 题目描述: 每天,农夫 John 的N(1 <= N <= 50,000)头牛总是按同一序 ...

  5. 【luogu P2880 [USACO07JAN]平衡的阵容Balanced Lineup】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2880 是你逼我用ST表的啊qaq #include <cstdio> #include < ...

  6. 洛谷P2880 [USACO07JAN]平衡的阵容Balanced Lineup 题解

    题目链接: https://www.luogu.org/problemnew/show/P2880 分析: ST表实现即可,一个最大值数组和最小值数组同时维护 代码: #include<cstd ...

  7. Luogu P2880 [USACO07JAN]平衡的阵容Balanced Lineup (ST表模板)

    传送门(ST表裸题) ST表是一种很优雅的算法,用于求静态RMQ 数组l[i][j]表示从i开始,长度为2^j的序列中的最大值 注意事项: 1.核心部分: ; (<<j) <= n; ...

  8. [USACO07JAN]平衡的阵容Balanced Lineup

    [USACO07JAN]平衡的阵容Balanced Lineup 题目描述 For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) a ...

  9. [USACO07JAN]平衡的阵容Balanced Lineup BZOJ 1699

    题目背景 题目描述: 每天,农夫 John 的N(1 <= N <= 50,000)头牛总是按同一序列排队. 有一天, John 决定让一些牛们玩一场飞盘比赛. 他准备找一群在对列中为置连 ...

随机推荐

  1. jQuery生成一个DIV容器,ID是"rating".

    我们需要一些服务器端代码,这个例子中用到了一个PHP文件,读取rating参数然后返回rating总数和平均数.看一下rate.php代码.虽然这些例子也可以不使用AJAX来实现,但显示我们不会那么做 ...

  2. hadoop(角色)各个组件配置信息

    1)namenode:        core-site.xml文件中决定:            <property>                <name>fs.def ...

  3. Python爬虫框架Scrapy实例(四)下载中间件设置

    还是豆瓣top250爬虫的例子,添加下载中间件,主要是设置动态Uesr-Agent和代理IP Scrapy代理IP.Uesr-Agent的切换都是通过DOWNLOADER_MIDDLEWARES进行控 ...

  4. FCoin API

    本文介绍FCoin API 介绍 通过了解以下信息,您可以方便的使用 FCoin 提供的 API 来接入 FCoin 交易平台. 认证 执行下面的代码进行用户验证: import fcoin api ...

  5. css3的一个小demo(箭头hover变化)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 【CSS3】CSS3自学

    CSS3学习网址:http://www.runoob.com/css3/css3-tutorial.html

  7. 【Python】用Python打开csv和xml文件

    一.csv文件的读取1 #coding=utf-8 import csv with open("F:\\script\\py_scripts\\test2.csv","r ...

  8. [LeetCode] 64. Minimum Path Sum_Medium tag: Dynamic Programming

    Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which ...

  9. apply、map、applymap、Dropna

    DataFrame常用易混淆方法 apply && map && applymap 1.apply():作用在一维的向量上时,可以使用apply来完成,如下所示 2.m ...

  10. Logistic Regression Using Gradient Descent -- Binary Classification 代码实现

    1. 原理 Cost function Theta 2. Python # -*- coding:utf8 -*- import numpy as np import matplotlib.pyplo ...