hdu 5491 The Next(位运算+贪心)
来源:互联网 发布:中学生学什么编程语言 编辑:程序博客网 时间:2024/05/29 06:27
题目链接:hdu 5491 The Next
解题思路
首先将初始的d+1,然后判断二进制先1的个数是否满足。
如果多了,找到最小的i使得s&2^i=1.
如果少了,找到最小的i使得s&2^i=0.
然后s + 2^i,这样保证了每次增加的值最少。
代码
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long long ll;int bitcount(ll s) { int c = 0; while (s) { if (s&1) c++; s >>= 1; } return c;}int main () { int cas; scanf("%d", &cas); for (int kcas = 1; kcas <= cas; kcas++) { int l, r; ll s; scanf("%lld%d%d", &s, &l, &r); s++; while (true) { int n = bitcount(s); if (l <= n && n <= r) break; if (n < l) { int x = 0; while (s&(1LL<<x)) x++; s |= (1LL<<x); } else { ll x = s&(-s); s += x; } } printf("Case #%d: %lld\n", kcas, s); } return 0;}
0 0
- hdu 5491 The Next(位运算+贪心)
- hdu 5491 The Next 2015合肥网络赛 贪心 位运算
- hdu 5491 The Next(位操作)
- Hdu 5491 The Next【贪心+lowbit】
- 【HDU】5747 - Aaronson(位运算 & 贪心)
- HDU 5491 The Next
- hdu 5491 The Next
- HDU 5491 The Next
- HDU 5491 The Next
- HDU 5491The Next
- HDU 5491 The Next【】
- hdu 541 The Next 位枚举
- HDU - 5014 Number Sequence(贪心+位运算)
- HDU 5491 The Next(构造数)
- HDU 5491 The Next(构造)
- HDU 5491 The Next(技巧性模拟)
- hdu 5491 The Next(数学模拟)
- HDU 5491 The next(2015 ACM/ICPC Asia Regional Hefei Online )(贪心)
- ContactsContract中Contacts,RawContacts和Data关系图解及其实例代码
- 机器学习(九)—FP-growth算法
- JavaAPI_3
- 黑马程序员——foundation框架(二)
- 第一层第三题:黑色星期五
- hdu 5491 The Next(位运算+贪心)
- android studio在模拟器上的中文乱码问题解决方法
- 我们为什么选择acm(个人观点)
- #LeetCode# #C++# Binary Tree Preorder Traversal
- poj3167
- 如何将servlet中读取的数据转化为JSON
- 逻辑值分类True False
- mysql操作
- 广播与服务