zoukankan      html  css  js  c++  java
  • [POJ2104]K-th Number(区间第k值 记录初始状态)

    题目链接:http://poj.org/problem?id=2104

    给n个数和m个查询,查询[i, j]内第k小的数是多少。(主席树、划分树那种高大上的姿势叒不会啊QAQ

    可以在维护这n个数的同时维护刚刚输入的时候他们的下标,之后预处理排序一次,查询的时候假如初始下标在[i,j]内,那么k自减1,直到k为0。

     1 #include <algorithm>
     2 #include <iostream>
     3 #include <iomanip>
     4 #include <cstring>
     5 #include <climits>
     6 #include <complex>
     7 #include <fstream>
     8 #include <cassert>
     9 #include <cstdio>
    10 #include <bitset>
    11 #include <vector>
    12 #include <deque>
    13 #include <queue>
    14 #include <stack>
    15 #include <ctime>
    16 #include <set>
    17 #include <map>
    18 #include <cmath>
    19 
    20 using namespace std;
    21 
    22 typedef struct Node {
    23     int id;
    24     int x;
    25     Node() {}
    26     Node(int ii, int xx) : id(ii), x(xx) {}
    27 }Node;
    28 
    29 const int maxn = 111111;
    30 int n, m;
    31 Node a[maxn];
    32 
    33 bool cmp(Node x, Node y) {
    34     return x.x < y.x;
    35 }
    36 
    37 int main() {
    38     // freopen("in", "r", stdin);
    39     int tmp;
    40     while(~scanf("%d %d", &n, &m)) {
    41         for(int i = 0; i < n; i++) {
    42             scanf("%d", &tmp);
    43             a[i] = Node(i+1, tmp);
    44         }
    45         sort(a, a+n, cmp);
    46         while(m--) {
    47             int i, j, k, ans = 0;
    48             scanf("%d %d %d", &i, &j, &k);
    49             for(int s = 0; s < n; s++) {
    50                 if(a[s].id >= i && a[s].id <= j) k--;
    51                 if(k == 0) {
    52                     printf("%d
    ", a[s].x);
    53                     break;
    54                 }
    55             }
    56         }
    57     }
    58     return 0; 
    59 }
  • 相关阅读:
    如何在centos上安装epel源
    Linux基础命令之cat使用方法大全
    Python正则表达式一: 基本使用方法
    Python 2.7 学习笔记 中文处理
    python 中 json的处理
    centos下网络代理服务器的配置
    centos7 在 vmware下的安装与配置
    Linux学习:find、chmod、ps命令
    Linux学习:netstat命令
    Linux学习:curl 与 wget命令
  • 原文地址:https://www.cnblogs.com/kirai/p/5226943.html
Copyright © 2011-2022 走看看