70分求助
  • 板块P2431 正妹吃月饼
  • 楼主WCCC
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/10/24 19:09
  • 上次更新2023/10/27 06:07:21
查看原帖
70分求助
476754
WCCC楼主2022/10/24 19:09
#include<bits/stdc++.h>
using namespace std;
bool f(long long a)
{
	for(int i=1;i<=63;i++)
	{
		if(a==pow(2,i))
		{
			return 0;
		}
	}
	return 1;
}
long long f2(long long a)
{
	long long aa=0;
	for(int i=1;i<=63;i++)
	{
		if(pow(2,i)>a)
		{
			return aa;
		}
		else
		{
			aa=i;
		}
		if(a==pow(2,i))
		{
			return i;
		}
	}
	return 63;
}
int main()
{
	long long a,b,ans=0,ab,anss=0;
	cin>>a>>b;
	ab=max(a,b);
	long long ba=min(a,b);
	if(a==b&&f(a))
	{
		cout<<2;
		return 0;
	}
	else if(a==b)
	{
		cout<<1;
		return 0;
	}
	long long i=0;
	while(anss<=ab)
	{
		if(anss+pow(2,i)<=ab)
		{
			anss+=pow(2,i);
			ans++;
		}
		i++;
		if(pow(2,i)>ab)
		{
			break;
		}
	}
	long long ansss=0,ans2=0;
	long long i2=f2(a);
	if(anss>a) cout<<ans;
	else
	{
		while(ansss<=ab||i2>0)
		{
			if(ansss+pow(2,i2)<=ab)
			{
				ansss+=pow(2,i2);
				ans2++;
			}
			i2--;
			if(i2<0)
			{
				break;
			}
		}
		cout<<ans2;
		return 0;
	}
	return 0;
}
/*
4194500 4194555
8
*/
2022/10/24 19:09
加载中...