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;
    }
  • 相关阅读:
    shell 从键盘读取输入时删除输入的字符
    spring boot 下 mapper接口与xml文件映射问题
    tcpdump
    Linux TCP自连接问题
    git commit 合并到指定分支
    工作教训总结
    git 撤销修改和版本回退
    Java 注解方式校验请求参数
    JVM 监控工具——jconsole
    排查Full GC
  • 原文地址:https://www.cnblogs.com/moonbay/p/4283549.html
Copyright © 2011-2022 走看看