zoukankan      html  css  js  c++  java
  • C语言 · 上帝造题五分钟

    算法提高 上帝造题五分钟  
    时间限制:1.0s   内存限制:256.0MB
        
    问题描述
      第一分钟,上帝说:要有题。于是就有了L,Y,M,C
      第二分钟,LYC说:要有向量。于是就有了长度为n写满随机整数的向量
      第三分钟,YUHCH说:要有查询。于是就有了Q个查询,查询向量的一段区间内元素的最小值
      第四分钟,MZC说:要有限。于是就有了数据范围
      第五分钟,CS说:要有做题的。说完众神一哄而散,留你来收拾此题
    输入格式
      第一行两个正整数n和Q,表示向量长度和查询个数
      接下来一行n个整数,依次对应向量中元素:a[0],a[1],…,a[n-1]
      接下来Q行,每行两个正整数lo,hi,表示查询区间[lo, hi]中的最小值,即min(a[lo],a[lo+1],…,a[hi])。
    输出格式
      共Q行,依次对应每个查询的结果,即向量在对应查询区间中的最小值。
    样例输入
    7 4
    1 -1 -4 8 1 2 -7
    0 0
    1 3
    4 5
    0 6
    样例输出
    1
    -4
    1
    -7
    样例说明
      第一个查询[0,0]表示求min{a[0]}=min{1}=1
      第二个查询[1,3]表示求min{a[1],a[2],a[3]}=min{-1,-4,8}=-4
      第三个查询[4,5]表示求min{a[4],a[5]}=min{1,2}=1
      第四个查询[0,6]表示查询整个向量,求min{a[0..6]}=min{1,-1,-4,8,1,2,-7}=-7
    数据规模和约定
      1<=n<=1984,1<=Q<=1988,向量中随机整数的绝对值不超过1,000
     
    作者注释:比较简单的一题了,直接上代码:
     1 #include<stdio.h> 
     2 int main(){
     3     int m,Q;
     4     int a[2000];
     5     scanf("%d%d",&m,&Q);
     6     for(int i=0;i<m;i++){
     7         scanf("%d",&a[i]);
     8     }
     9     int rel[Q];//定义结果数组 
    10     int flag=0,q=Q;//定义标记 
    11     while(Q--){
    12         int low,high;//定义上下边界
    13         scanf("%d%d",&low,&high);
    14         int min=a[low];
    15         for(int i=low; i<=high; i++){
    16             if(a[i]<min){
    17                 min=a[i];
    18             }
    19         }
    20         rel[flag++]=min;
    21     }
    22     for(int i=0;i<q;i++){
    23         printf("%d
    ",rel[i]);
    24     }
    25 }
  • 相关阅读:
    48. Rotate Image
    83. Remove Duplicates from Sorted List
    46. Permutations
    HTML5笔记
    18. 4Sum
    24. Swap Nodes in Pairs
    42. Trapping Rain Water
    Python modf() 函数
    Python min() 函数
    Python max() 函数
  • 原文地址:https://www.cnblogs.com/panweiwei/p/6541058.html
Copyright © 2011-2022 走看看