bzoj 3412: [Usaco2009 Dec]Music Notes乐谱

来源:互联网 发布:分组密码算法 编辑:程序博客网 时间:2024/05/17 03:36

→题目链接←


维护前缀和,对于每次询问找到第一个大于它的数(也就是upper_bound)的下标,就是答案

手写可以二分找

用stl可以用upper_bound


代码:

#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int n,m;int sum[50050];int main(){scanf("%d%d",&n,&m);for(int i=1; i<=n; i++){scanf("%d",&sum[i]);sum[i]+=sum[i-1];}while(m--){int x;scanf("%d",&x);printf("%d\n",upper_bound(sum+1,sum+1+n,x)-sum);}return 0;}


原创粉丝点击