洛谷傳送門
入門難度。。
沒錯,但是我並不是要暴力做。
而是用樹狀陣列來做。
先離散化,然後隨便搞一搞就可以了。(暈。比暴力還慢)
如果要查詢某一區間的的話可以把區間取出重新建樹,然後再求。(更暴力)
1 #include 2 #include 3 #include 4view code#define n 10001
5#define lowbit(x) x & -x67
using
namespace
std;89
intn, m, k;
10int
c[n];
11bool b[3 *n];
12struct
node
13a[n];
1617 inline bool
cmp(node x, node y)
1821
22 inline void add(int
x)2329}
3031
int solve(int
k)32
40return ans + 1;41
}4243int
main()
4452
if(m
5357 sort(a + 1, a + m + 1
, cmp);
58for(i = 1; i <= m; i++) add(a[i].id);
59 printf("
%d\n
", a[solve(k)].val);
60return0;
61 }
第k小整數
現有n個正整數,n 10000,要求出這n個正整數中的第k個最小整數 相同大小的整數只計算一次 k 1000,正整數均小於30000。輸入格式 第一行為n和k 第二行開始為n個正整數的值,整數間用空格隔開。輸出格式 第k個最小整數的值 若無解,則輸出 no result 輸入樣例 1 10 3 1 ...
9204 第k小整數
time limit 10 second memory limit 2 mb 問題描述 現有n個整數,n 10000,要求出這n個正整數中的第k個最小整數 相同大小的整數只計算一次 k 1000,正整數均小於30000 第一行為n和k,第二行開始為n個正整數的值,整數間用空格隔開。第k個最小整數的值...
9204 第k小整數
time limit 10 second memory limit 2 mb 問題描述 現有n個整數,n 10000,要求出這n個正整數中的第k個最小整數 相同大小的整數只計算一次 k 1000,正整數均小於30000 第一行為n和k,第二行開始為n個正整數的值,整數間用空格隔開。第k個最小整數的值...