树状数组求kth大

来源:互联网 发布:欧树洁面凝胶知乎 编辑:程序博客网 时间:2024/04/29 16:57
  1. int find_kth(int k)  
  2. {  
  3.     int ans = 0, cnt = 0, i;  
  4.     for (i = 20; i >= 0; i--)  
  5.     {  
  6.         ans += (1 << i);  
  7.         if (ans >= MAXN|| cnt + c[ans] >= k)  
  8.             ans -= (1 << i);  
  9.         else  
  10.             cnt += c[ans];  
  11.     }  
  12.     return ans + 1;  
  13. }  
0 0