二进制 模拟 codeforces 485C
2014-11-07 19:42
232 查看
//求最多的一的个数,在二进制表示中
//判断[l,r]中,二进制表示有没有全是1的,如果有则结束
//否则,l,r均更新,减去小于l的最高的(100000...)<l,更新ans,不断进行询问
//判断[l,r]中,二进制表示有没有全是1的,如果有则结束
//否则,l,r均更新,减去小于l的最高的(100000...)<l,更新ans,不断进行询问
/************************************************************************* > File Name: 485C.cpp > Author: flyasdfvcxz > Mail: 1099431883@qq.com > Created Time: Fri 07 Nov 2014 05:06:52 PM CST ************************************************************************/ #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <cstdlib> #include <vector> #include <queue> #include <map> #include <ctime> #include <cmath> #define ll long long using namespace std; int n; ll l, r; int main() { cin >> n; while (n--) { cin >> l >> r; if (l == r) { cout << l << endl; continue; } ll res = 0; while (1) { int pos = -1; ll ans = -1; for (int i = 1; ; ++i) { ll cur = (1LL << i) - 1; if (cur < l) { pos = i; } else if (cur >= l && cur <= r) { ans = cur; } else if (cur > r) { break; } } if (ans != -1) { res |= ans; cout << res << endl; break; } else { ll tmp = (1LL << pos); res |= tmp; l -= tmp; r -= tmp; } } } return 0; }
相关文章推荐
- Codeforces 309C Memory for Arrays 二进制模拟进位
- CodeForces 485C Bits[贪心 二进制]
- Codeforces 309C Memory for Arrays 二进制模拟进位
- Codeforces 379A New Year Candles(模拟)
- 【模拟】Codeforces 707A Brain's Photos
- codeforces-#471A. MUH and Sticks(模拟)
- Codeforces 368A Sereja and Coat Rack(模拟)
- CodeForces - 250C - Movie Critics - (模拟)
- CodeForces - 651A Joysticks (找规律&模拟)水
- 【Codeforces】899 B - Months and Years 模拟
- codeforces 931A - Friends Meeting 模拟
- Codeforces - 609C.Load Balancing 排序、模拟
- 【模拟】Codeforces 691C Exponential notation
- Codeforces 363A Soroban(算盘模拟)
- CodeForces 518C - Watto and Mechanism(模拟)
- CodeForces 1B. Spreadsheets(模拟)
- CodeForces 342B--模拟+贪心
- Codeforces--616B--Dinner with Emma(模拟水题)
- Codeforces 509C. Sums of Digits 贪心 + 模拟
- CodeForces - 584A Olesya and Rodion (模拟)水