求助80分,T了两个点,求优化
查看原帖
求助80分,T了两个点,求优化
447941
xdd5689楼主2022/11/20 22:04

rt

#include <bits/stdc++.h>
#define l long long
l a,b,x[64],sum[64]={0,1},ans=0,maxn=-1;
using namespace std;
inline int read()
{
    char ch = getchar();
    int x = 0, f = 1;
    while (ch > '9' || ch < '0') {
        if (ch == '-') f = -1;
        ch = getchar();
    }
    while (ch >= '0' && ch <= '9') {
        x = x * 10 + ch - '0';
        ch = getchar();
    }
    return x * f;
}
int main()
{
	cin>>a>>b;
	for(l i=2;i<=63;i++)
	{
		sum[i]=sum[i-1]*2;
	}
	for(l u=a;u<=b;u++)
	{
		l k=u;
		ans=0;
		for(l i=63;i>=1;i--)
		{
			if(k>=sum[i])
			{
				ans++;
				k-=sum[i];
			}
		}
		maxn=max(ans,maxn);
	}
	printf("%lld",maxn);
	return 0;
}

2022/11/20 22:04
加载中...