uva 501 Black Box

简介: 点击打开链接uva 501 思路: vector模拟 分析: 1 题目的规模是n和m最大为30000,那么明显复杂度要为O(nlogn)级别才能过 2 由于枚举u数组需要n,所以剩下的是logn的时间,明显只有二分可以做到。

点击打开链接uva 501

思路: vector模拟
分析:
1 题目的规模是n和m最大为30000,那么明显复杂度要为O(nlogn)级别才能过
2 由于枚举u数组需要n,所以剩下的是logn的时间,明显只有二分可以做到。所以利用vector来模拟,插入的时候利用二分找到位置即可

代码:

#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;

const int MAXN = 30010;

int n , m;
int num[MAXN];

void solve(){
    vector<int>v;
    vector<int>::iterator it;
    v.clear();
    int x , pos = 0;
    int index = 0;
    while(m--){
         scanf("%d" , &x); 
         while(v.size() != x){
              it = lower_bound(v.begin() , v.end() , num[pos]); 
              v.insert(it , num[pos++]);
         } 
         printf("%d\n" , v[index++]);
    }
}

int main(){
    int Case;
    bool first = true;
    scanf("%d" , &Case);
    while(Case--){
        scanf("%d%d" , &n , &m);    
        if(first) 
            first = false;
        else
            puts("");
        for(int i = 0 ; i < n ; i++)
            scanf("%d" , &num[i]);
        solve();
    }
    return 0;
}



目录
相关文章
|
6月前
|
Java
hdu-1312-Red and Black
hdu-1312-Red and Black
33 0
HDU - 1312 Red and Black(DFS)
There is a rectangular room, covered with square tiles. Each tile is colored either red or black. A man is standing on a black tile. From a tile, he can move to one of four adjacent tiles. But he can’t move on red tiles, he can move only on black tiles. Write a program to count the number of black
84 0
UVa837 - Light and Transparencies(排序)
UVa837 - Light and Transparencies(排序)
51 0
hdu 1312 Red and Black(BFS)
hdu 1312 Red and Black(BFS)
144 0
|
前端开发 JavaScript 容器
有趣的 box-decoration-break
有趣的 box-decoration-break
170 0
hdu 1312 Red and Black
一个人从@点出发,求他所能到达的'.'的数目,'#'不可走,@本身算1个点。 思路:搜索入门题。
150 0
HDOJ 1312 (POJ 1979) Red and Black
HDOJ 1312 (POJ 1979) Red and Black
113 0
ZOJ1067 Color Me Less
复制代码#include <iostream> #include <cmath> #include <limits> using namespace std; const int MAXSIZE = 100; int pos[100];//记录对应的最小值所在位置 struct RGB {//颜.
1456 0