写二分过了俩数据其他的都超时,求大佬指点
  • 板块B3629 吃冰棍
  • 楼主Azhan2023
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/9/20 20:49
  • 上次更新2023/11/2 18:57:00
查看原帖
写二分过了俩数据其他的都超时,求大佬指点
945171
Azhan2023楼主2023/9/20 20:49
#include<iostream>
#include<algorithm>
using namespace std;

int n,m;
int find(int x)
{
	int sum = 0;//吃了多少
	int a = 0; //棒子根数 
	int b = 1;
 	while(b<=x)//1 2
	{
		sum += 1; 
		a ++;
		if(a%3==0)
		{
			a = 1; sum+=1;
		 } 
		b++;
	}
	return sum;
}
int main()
{
	int n;
	cin>>n;
	int l = 0 , r = n;
	while(l<r)
	{
		int mid = (l+r+1)/2;
		if(find(mid)<=n) l = mid ;
		else r = mid - 1;
	}
	cout<<l;
	return 0;
}

为什么这样的二分会超时啊 函数单独拿出来改提交都可以过

#include<iostream>
#include<algorithm>
using namespace std;

int n;

int main()
{
	int n;
	cin>>n;
	int sum = 0;//买了多少
	int a = 0; //棒子根数 
	int b = 0;//eat 
 	while(b<n)//1 2
	{
		sum ++; //1 2 3
		a ++;//1 2 3
		if(a%3==0)
		{
			a = 1; b++;
		 } 
		b++;//1 2
	}
	cout<< sum;
	return 0;
}

在学二分想想明白二分,求大神指导,谢谢

2023/9/20 20:49
加载中...