CF978C Letters前缀和+二分查找/几房几号
Posted Roni
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CF978C Letters前缀和+二分查找/几房几号相关的知识,希望对你有一定的参考价值。
【链接】: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前缀和+二分查找/几房几号的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces 1009G Allowed Letters FMT,二分图,二分图匹配,霍尔定理
CF1073C Vasya and Robot(前缀和&二分)
cf1322BB. Present(二分/前缀和+按位考虑)