40分求助!!!有2个点超时了
查看原帖
40分求助!!!有2个点超时了
844496
J_Kobe楼主2023/8/17 11:40
#include <bits/stdc++.h>
using namespace std;

int f(long long x, long long y)
{
	int ans = 0;
	while (x && y)
	{
		int a = x % 2, b = y % 2;
		if (a == 1 && b == 0)
		{
			return 1;
		}
		else if (a == 0 && b == 1)
		{
			return 0;
		}
		else if (a == 1 && b == 1)
		{
			return 0;
		}
		x /= 2;
		y /= 2;
	}
	return 1;
}

signed main()
{
	int t;
	scanf("%d", &t);
	while (t--)
	{
		long long l, r;
		scanf("%lld%lld", &l, &r);
		long long ans = 0;
		for (long long i = l; i <= r; i++)
		{
			if (f(i, i + 1) == 1)
			{
				ans++;
			}
		}
		printf("%lld\n", ans);
	}
	return 0;
}
2023/8/17 11:40
加载中...