码迷,mamicode.com
首页 > 其他好文 > 详细

CF978C Letters【前缀和+二分查找/几房几号】

时间:2018-06-02 11:32:38      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:sum   bit   ble   pre   前缀和   long   ace   org   http   

【链接】:CF978C
【分析】:在前缀和数组种二分找到>=询问数的位置,根据位置就好操作了
【代码】:

#include<bits/stdc++.h>
using namespace std;
const int  INF =  0x3f3f3f3f;
#define ll long long
#define ms(a,b) memset(a,b,sizeof(a))
#define rep(i,a,b) for(int i=(a); i<=(b); i++)
const int N = 2*1e5+5;
ll a[N],b[N],sum[N];
int main()
{
    int n,m;
    cin>>n>>m;
    memset(sum,0,sizeof(sum));
    rep(i,1,n) cin>>a[i], sum[i]=sum[i-1]+a[i];
    rep(i,1,m) cin>>b[i];
    rep(i,1,m)
    {
        if(b[i]<=a[1])
            printf("%d %lld\n",1,b[i]);
        else
        {
            ll j = lower_bound(sum,sum+n,b[i])-sum;
            printf("%lld %lld\n",j,b[i]-sum[j-1]);
        }
    }
}

CF978C Letters【前缀和+二分查找/几房几号】

标签:sum   bit   ble   pre   前缀和   long   ace   org   http   

原文地址:https://www.cnblogs.com/Roni-i/p/9124237.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!