1165.第k小數
time limit: 1000 ms memory limit: 65536 k
total submissions: 467 (117 users) accepted: 117 (66 users)
[ my solution ]
description
給定乙個空的正整數集合s,然後再給定一組操作,這組操作共有三種
1. 新增某個正整數a到集合中,若a已經在s中則不需要重複加入
2. 從集合中刪除某個整數a,若a不在s中則忽略該操作
3. 查詢集合中的第k小數,若不存在第k小數則輸出-1,否則輸出第k小數
input
第一行為正整數n(2<=n<=100000)分別表示操作的個數
接下來n行每行為兩個數字表示乙個操作。第乙個數字為操作的編號,1表示新增操作,2表示刪除操作,3表示查詢操作,
第二個數字為要新增刪除的正整數a(0output
對於每乙個查詢操作,若不存在第k小數則輸出-1,否則輸出第k小數
sample input
101 1
1 12 3
3 13 2
2 11 2
3 11 1
3 1sample output1-1
21hint
輸入輸出巨大,如果您使用c/c++建議用scanf和printf輸入輸出。
#include
#include
#include
using namespace std;
const int n=100000;
int c[n+1];
inline int lowbit(int x)
void update(int x,int val)
}int getsum(int x)
return cnt;
}int binary_search(int l,int r,int goal)
return -1;
}int main()
}else if(x==2)
}else}}
return 0;}/*
101 1
1 12 3
3 13 2
2 11 2
3 11 1
3 1*/
第k小整數(樹狀陣列)
洛谷傳送門 入門難度。沒錯,但是我並不是要暴力做。而是用樹狀陣列來做。先離散化,然後隨便搞一搞就可以了。暈。比暴力還慢 如果要查詢某一區間的的話可以把區間取出重新建樹,然後再求。更暴力 1 include 2 include 3 include 4 define n 10001 5 define l...
陣列中的第k小數
描述 以盡量高效率求出亂序中的k小數 輸入 第一行 陣列長度 第二行 陣列元素 空格隔開 第三性 第幾小的數 輸出 第k小的數 樣例輸入 5 6 1 2 9 3 8 2樣例輸出 解題思路利用快速排序找到主元的位置,判斷主元是第幾小的 主元位置大了剪掉右邊的 主元位置小了剪掉左邊的 假設要找第三小的數...
動態維護集合第k小數字 樹狀陣列 二分
設計一種資料結構能夠實現以下幾個操作 在結構中插入乙個數字x 在結構中刪除乙個數字x 如果沒有該數字,應當不操作 查詢結構中的第k小數字 相同數字應當累計,如 1 5 3 3 1,第 3 大的數字是 3,第 5 大的數字是 5.其中1 x 100000 一秒需要執行100000次隨機操作,所以三項操...