zoukankan      html  css  js  c++  java
  • bjfu1277 简单递归

    比较简单的递归问题。对于第k时刻的图形,可以平均分成四块,左上,右上,左下这三块的图形是一模一样的,右下的那一块不包含红毛僵尸,所以把那三块里的加起来就是结果了。

    /*
     * Author    : ben
     */
    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <cmath>
    #include <ctime>
    #include <iostream>
    #include <algorithm>
    #include <queue>
    #include <set>
    #include <map>
    #include <stack>
    #include <string>
    #include <vector>
    #include <deque>
    #include <list>
    #include <functional>
    #include <numeric>
    #include <cctype>
    using namespace std;
    typedef long long LL;
    LL three[40];
    
    LL work(int k, int a, int b) {
        int side = 1 << (k - 1);
        if (a > side || b < 1) {
            return 0;
        }
        if (a <= 1 && b >= side) {
            return three[k - 1];
        }
        int aa = a - (1 << (k - 2));
        int bb = b - (1 << (k - 2));
        return 2 * work(k - 1, a, b) + work(k - 1, aa, bb);
    }
    
    int main() {
        int T, a, b, k;
        three[0] = 1;
        for (int i = 1; i <= 30; i++) {
            three[i] = three[i - 1] * 3;
        }
        scanf("%d", &T);
        for (int t = 1; t <= T; t++) {
            scanf("%d%d%d", &k, &a, &b);
            printf("Case %d: %lld
    ", t, work(k, a, b));
        }
        return 0;
    }
  • 相关阅读:
    sparksql
    axis2客户端
    windows命令
    如何进行大数据分析及处理(总结)
    linux下如何关闭防火墙?如何查看防火墙当前的状态
    mysql 快速简单安装法
    数据分析笔记
    建设数据仓库的八个步骤
    Java工作记录
    IIS虚拟目录和应用程序
  • 原文地址:https://www.cnblogs.com/moonbay/p/4283549.html
Copyright © 2011-2022 走看看