• TYVJ1038 忠诚


    hzw学长博客里的2048,根本停不下来!

    描述

        老管家是一个聪明能干的人。他为财主工作了整整10年,财主为了让自已账目更加清楚。要 求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意。但是由于一些人的挑拨,财主还是对管家产生了怀疑。于是他决定用一种特别的方法来判 断管家的忠诚,他把每次的账目按1,2,3…编号,然后不定时的问管家问题,问题是这样的:在a到b号账中最少的一笔是多少?为了让管家没时间作假他总是 一次问多个问题。

    输入格式

    输入中第一行有两个数m,n表示有m(m<=100000)笔账,n表示有n个问题,n<=100000。
    第二行为m个数,分别是账目的钱数
    后面n行分别是n个问题,每行有2个数字说明开始结束的账目编号。

    输出格式

    输出文件中为每个问题的答案。具体查看样例。

    测试样例1

    输入

    10 3
    1 2 3 4 5 6 7 8 9 10
    2 7
    3 9
    1 10

    输出

    2 3 1

    裸线段树维护最小值。连线段树的完全体都不用写


     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<cstring>
     5 #define ls l,mid,rt<<1
     6 #define rs mid+1,r,(rt<<1)|1
     7 using namespace std;
     8 const int mxn=110000;
     9 const int inf=10000000;
    10 int mini[mxn*4];
    11 int data[mxn];
    12 int n,m;
    13 void Build(int l,int r,int rt){
    14     if(l==r){
    15         mini[rt]=data[l];
    16         return;
    17     }
    18     int mid=(l+r)>>1;
    19     Build(ls);
    20     Build(rs);
    21     mini[rt]=min(mini[rt<<1],mini[rt<<1 |1]);
    22     return;
    23 }
    24 int query(int L,int R,int l,int r,int rt){
    25     if(L<=l && r<=R)return mini[rt];
    26     int mid=(l+r)>>1;
    27     int ans=inf;
    28     if(L<=mid)ans=min(ans,query(L,R,ls));
    29     if(R>mid)ans=min(ans,query(L,R,rs));
    30     return ans;
    31 }
    32 int main(){
    33     scanf("%d%d",&n,&m);
    34     int i,j;
    35     
    36     for(i=1;i<=n;i++){
    37         scanf("%d",&data[i]);
    38     }
    39 
    40     Build(1,n,1);
    41     int x,y;
    42     for(i=1;i<=m;i++){
    43         scanf("%d%d",&x,&y);
    44         printf("%d ",query(x,y,1,n,1));
    45     }
    46     return 0;
    47 }



  • 相关阅读:
    OpenLayers测量距离和面积
    BeanUtils接口和类
    深入理解Spring--动手实现一个简单的SpringIOC容器
    Spring:源码解读Spring IOC原理
    Spring AOP的底层实现原理
    ClassLoader工作机制
    Cglib及其基本使用
    InvocationHandler和Proxy(Class)的动态代理机制详解
    解密Redis的持久化和主从复制机制
    Redis之父九条编程忠告
  • 原文地址:https://www.cnblogs.com/SilverNebula/p/5649126.html
Copyright © 2020-2023  润新知