蒟蒻萌新使用二分结果全TLE
查看原帖
蒟蒻萌新使用二分结果全TLE
355133
gyzmax楼主2020/10/18 08:39

二分对是对了,但结果却和暴力枚举一样(1.20s) 以下代码:

#include<bits/stdc++.h>
using namespace std;
int a[1000005],n,m;
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	for(int i=1;i<=m;i++)
	{
		int q,flag=-1,l=1,r=n,mid=(n+1)/2;
		cin>>q;
		while(l<r)
		{
			if(a[mid]<q)
				l=mid;
			else
			{
				if(a[mid]>q)
					r=mid;
				else
				{
					flag=mid;
					break;
				}
			}
			mid=(l+r+1)/2;
		}
		cout<<flag<<" ";
	}
	return 0;
}
2020/10/18 08:39
加载中...