题解 | #怯战蜥蜴#

scx 的散文诗句

https://ac.nowcoder.com/acm/contest/78309/A

#include<bits/stdc++.h>
using namespace std;
const int N=1e6;
int n,t;
long long sum[N];
int main()
{
	cin>>n>>t;
	sum[0]=0;
	for(int i=1;i<=n;i++){
		int a;
		cin>>a;
		sum[i]=sum[i-1]+a;
	}
	for(int i=1;i<=t;i++){
		int flag=0;
		int tar;
		cin>>tar;
		int l=1,r=n;
		while(l<r-1){
			int mid=l+(r-l)/2;
			if(sum[mid]>tar)
			{
				r=mid;
			}
			if(sum[mid]<tar){
				l=mid;
			}
			if(sum[mid]==tar){
				cout<<mid<<endl;
				flag=1;
				break;
			}
		}
		if(flag==0){
			if(sum[r]<=tar){
			cout<<r<<endl;
		}
		else if(sum[l]<=tar){
			cout<<l<<endl;
		}
		else{
			cout<<0<<endl;
		}
		}
	}

    return 0;
}



先排序化单调,再用点二分,记得前缀和的储存
全部评论

相关推荐

Twilight_m...:经典我朋友XXXX起手,这是那种经典的不知道目前行情搁那儿胡编乱造瞎指导的中年人,不用理这种**
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 16:15
我应届生,去年10月份开始在这家公司实习,到今年10月份正好一年想(实习+试用期),在想要不要提前9月份就离职,这样好找工作些,但又差一个月满一年,又怕10月份国庆回来离职,容易错过了下半年的金九银十,到年底容易gap到年后
小破站_程序员YT:说这家公司不好吧,你干了快一年 说这家公司好吧,你刚毕业就想跑路说你不懂行情吧,你怕错过金九银十说 你懂行情吧,校招阶段在实习,毕业社招想换工作 哥们,我该怎么劝你留下来呢
应届生,你找到工作了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务