zoukankan      html  css  js  c++  java
  • Light oj 1100

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1100

    给你n个数,数的范围是1~1000,给你q个询问,每个询问问你l到r之间数的最小差是多少。

    要是l到r的数字个数大于1000,必定会有两个数字重复,所以此时最小差就为0。要是小于等于1000就直接暴力即可。

     1 //#pragma comment(linker, "/STACK:102400000, 102400000")
     2 #include <algorithm>
     3 #include <iostream>
     4 #include <cstdlib>
     5 #include <cstring>
     6 #include <cstdio>
     7 #include <vector>
     8 #include <cmath>
     9 #include <ctime>
    10 #include <list>
    11 #include <set>
    12 #include <map>
    13 using namespace std;
    14 typedef long long LL;
    15 const int N = 1e5 + 5;
    16 int a[N], cnt[1001];
    17 
    18 int main()
    19 {
    20     int t, n, q, l, r;
    21     scanf("%d", &t);
    22     for(int ca = 1; ca <= t; ++ca) {
    23         scanf("%d %d", &n, &q);
    24         for(int i = 0; i < n; ++i) {
    25             scanf("%d", a + i);
    26         }
    27         printf("Case %d:
    ", ca);
    28         while(q--) {
    29             scanf("%d %d", &l, &r);
    30             if(r - l + 1 > 1000) {
    31                 printf("%d
    ", 0);
    32             } else {
    33                 for(int i = l; i <= r; ++i) {
    34                     ++cnt[a[i]];
    35                 }
    36                 int ans = 1001, lpos = -1001;
    37                 for(int i = 1; i <= 1000; ++i) {
    38                     if(cnt[i] > 1) {
    39                         ans = 0;
    40                         break;
    41                     } else if(cnt[i]) {
    42                         ans = min(ans, i - lpos);
    43                         lpos = i;
    44                     }
    45                 }
    46                 for(int i = l; i <= r; ++i) {
    47                     cnt[a[i]] = 0;
    48                 }
    49                 printf("%d
    ", ans);
    50             }
    51         }
    52     }
    53     return 0;
    54 }
  • 相关阅读:
    学习Vue.js
    Xmind思维导图
    Webpack 入门教程
    Vscode 使用介绍
    jdk,jre下载安装
    Java JDK下载
    FileZilla FTP下载
    notepad++下载
    windows环境搭建Vue开发环境
    SecureCRTPortable的安装和使用(图文详解)
  • 原文地址:https://www.cnblogs.com/Recoder/p/5876417.html
Copyright © 2011-2022 走看看