CF474B - Worms(二分搜索法+STL+入门级)
474B - Worms(源地址自⇔CF474B)
Problem
Example
5
2 7 3 4 9
3
1 25 11
1
5
3
tag:
⇔二分法(binary search)、⇔STL
题意:
\(n\) 个碟子中的虫子数量分别为 \(a_1,a_2,…,a_n\),从第一个碟子开始一只一只的数虫子,询问第 \(b_i\) 只虫子在哪个碟子里。
思路:
一遍前缀和计算后使用二分查找。
本题写题解的意义在于熟悉STL自带的二分查找函数:lower_bound。
AC代码:
//A WIDA Project
#include<bits/stdc++.h>
const int MAX=1e6+5;
long long n,m,x,num=1,a[MAX];
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n;
while(n-->0){
cin>>x;
a[num]=a[num-1]+x;
num++;
}
cin>>m;
while(m-->0){
cin>>x;
cout<<lower_bound(a,a+num,x)-a<<endl;
}
return 0;
}
错误次数:0次
文 / WIDA
2021.10.07成文
首发于WIDA个人博客,仅供学习讨论
更新日记:
2021.10.07 成文