zoukankan      html  css  js  c++  java
  • 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 }



  • 相关阅读:
    Python (time、datetime、random、os、sys、shutil)模块的使用
    ELK6+filebeat、kafka、zookeeper搭建文档
    JDBC-用Java语句操作数据库
    数据库对象
    sql之子查询
    函数之sql语句
    sql之select语句
    oracle 数据库
    网络编程
    多线程——多线程的运行轨迹,线程的生命周期,线程的常用方法,线程的安全问题,死锁,线程间的通信
  • 原文地址:https://www.cnblogs.com/SilverNebula/p/5649126.html
Copyright © 2011-2022 走看看