感染(mid)

Description

現(xiàn)在給你nn天的COVID-19COVID?19新增感染人數(shù),有qq次詢問,每次詢問針對kk,問至少多少天患病人數(shù)會大于等于kk。

Input

第一行輸入兩個整數(shù)n(1\leqn\leq1e6),q(1\leqq\leq1e6)
第二行有n個正整數(shù)ai表示第i天新增感染的人數(shù)(1\leqai\leq1e6)。
接下來q行,每行給出一個k(1\leqk\leq \sum_{i=1}^{n}ai)

Output

對于每個詢問,輸出一個整數(shù)m,代表至少m天患病人數(shù)會大于等于k

Sample Input 1

3 2
1 2 3
1
5

Sample Output 1

1
3

Source

???? nuoyanli.com

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e6 + 7;
ll a[maxn];
ll sum[maxn];
ll n, q;
int main()
{
    scanf("%lld%lld",&n,&q);
    memset(sum, 0, sizeof(sum));
    for(int i = 1; i <= n; i++)
    {
        scanf("%lld",&a[i]);
        sum[i] = sum[i-1] + a[i];
    }
    ll m;
    while(q--)
    {
        scanf("%lld",&m);
        printf("%d\n",lower_bound(sum, sum + n, m) - sum);
    }
    return 0;
}
Analysis:

First use the Prefix Sum prossing.Then consider dichotomy,because if use Brute-Force, it will TLE.

detail:

1.Prefix Sum.Working with arrays:

sum[i] = sum[i-1] + a[i];

2.lower_bound(). Dichotomy.

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容