树状数组二分

#include//树状数组二分 
using namespace std;
int q,b,s,t[1000],k,sum1[1000],sum2[1000],n=10;
void add(int p,int k)
{
    for(int i=p;ii)
        t[i]+=k;
}
int find(int k)
{
    int l=1,r=n,mid;
    for(int i=5;i>=0;i--)
    {
        mid=l+(1<1;
        if(mid>r)
            continue;
        if(t[mid]>k)
            r=mid;
        else
            l=mid+1,k-=t[mid];
    }
    return l;
}
int main()
{
    cin>>q;
    while(q--)
    {
        cin>>b;
        if(b==1)
        {
            cin>>s>>k;
            add(s,k);
        }
        else
        {
            cin>>k;
            cout<<find(k);
        }
    }
    return 0;
} )-

Original: https://www.cnblogs.com/29taorz/p/15759210.html
Author: T_X蒻
Title: 树状数组二分

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/644378/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球