bzoj3412: [Usaco2009 Dec]Music Notes乐谱

来源:互联网 发布:空中铁匠 知乎 编辑:程序博客网 时间:2024/04/27 21:22

前缀和+二分。有很多做法

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int a[50005];int find(int x,int l,int r){    int mid=l+r>>1;    if(l==r)    {        return r;    }    else if(a[mid]==x)    return mid;    if(a[mid]>x)    return find(x,l,mid);    else return find(x,mid+1,r);}int main(){    int n,x,q,t;    cin>>n>>q;    for(int i=1;i<=n;i++)    {        scanf("%d",&x);        a[i]=a[i-1]+x;    }    for(int i=1;i<=q;i++)    {        scanf("%d",&t);        printf("%d\n",find(t+1,1,n));    }}