题目: [USACO 2009 Dec S]Music Notes ,哈哈,我们今天来看一道有二分思想的题嘛,这是选自USACO上的一道题,好了,我们一起来看看题意吧:
题目描述是复制的,可能有部分显示不对,我就把题目链接放下面!
题目链接: [USACO 2009 Dec S]Music Notes
Line 1: Two space-separated integers: N and QLines 2…N+1: Line i+1 contains the single integer: BiLines N+2…N+Q+1: Line N+i+1 contains a single integer: Ti 输出描述
Lines 1…Q: Line i of the output contains the result of query i as a single integer.
示例1
输入
3 5
2
1
3
2
3
4
0
1
输出
2
3
3
1
1
思路:
采用前缀和与二分的思想,很快就解决了
我们来看看成功AC的代码吧:
#includeusing namespace std; typedef long long ll; int n,q; int a[1000010]; int sum[1000010];//存放前缀和的 int main(){ ios::sync_with_stdio(false); cin>>n>>q; for(int i=1;i<=n;i++){ cin>>a[i]; sum[i]=sum[i-1]+a[i]; } while(q--){ int x; cin>>x; int ans=upper_bound(sum+1,sum+n+1,x)-sum;//这里减掉起始位置就是元素的下标了 cout< 谢谢你的阅读,由于作者水平有限,难免有不足之处,若读者发现问题,还请批评,在留言区留言或者私信告知,我一定会尽快修改的。若各位大佬有什么好的解法,或者有意义的解法都可以在评论区展示额,万分谢谢。
写作不易,望各位老板点点赞,加个关注!


![[USACO 2009 Dec S]Music Notes [USACO 2009 Dec S]Music Notes](http://www.mshxw.com/aiimages/31/737894.png)
