UVA12627ErraticExpansion

来源:互联网 发布:数据库视频教程下载 编辑:程序博客网 时间:2024/06/03 21:09
//UVA12627ErraticExpansion#include<cstdio>#include<cstdlib>#include<cstring>using namespace std;const long long MAXN = 30;inline long long c(int k) {return k == 0 ? 1 : c(k - 1) * 3;}inline long long f(int k, int i) {if(i == 0) return 0;if(k == 0) return 1;if(i <= (1 << (k - 1))) return 2 * f(k - 1, i);else return 2 * c(k - 1) + f(k - 1, i - (1 << (k - 1))); }int main() {freopen("UVA12627out.txt", "w", stdout);int T;scanf("%d", &T);for(int i = 0; i < T; i++) {int k, a, b;scanf("%d%d%d", &k, &a, &b);printf("Case %d: %lld\n", i + 1, f(k, b) - f(k, a - 1));}return 0;}/*30 1 13 1 83 3 7*/

原创粉丝点击