当前位置:网站首页>P2431 正妹吃月饼

P2431 正妹吃月饼

2021-08-10 08:43:36 wx6110fa547fd20

P2431 正妹吃月饼

求给定区间二进制1的个数最多的数

即: m a x { p o p c o u n t ( i ) } , i ∈ [ l , r ] max\{popcount(i)\},i\in[l,r] max{popcount(i)},i[l,r]

思路:

贪心:答案从 l l l的基础上进行,每次尝试对最低位0变成1直到 > r >r >r为止。

时间复杂度: O ( l o g R ) O(logR) O(logR)

	ll l,r;scanf("%lld%lld",&l,&r);
	while((l|(l+1))<=r) l|=l+1;
	printf("%lld\n",__builtin_popcountll(l));

      
  • 1.
  • 2.
  • 3.

版权声明
本文为[wx6110fa547fd20]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_15326986/3328400

随机推荐