美文网首页
2021-10-31(TPS问题变型)

2021-10-31(TPS问题变型)

作者: 程博颖 | 来源:发表于2021-10-31 16:31 被阅读0次
image.png

    /*
     * 2*M铺地的问题非常简单,这个是解决N*M铺地的问题
     */

    public static int ways1(int N, int M) {
        if (N < 1 || M < 1 || ((N * M) & 1) != 0) {
            return 0;
        }
        if (N == 1 || M == 1) {
            return 1;
        }
        int[] pre = new int[M]; // pre代表-1行的状况
        for (int i = 0; i < pre.length; i++) {
            pre[i] = 1;
        }
        return process(pre, 0, N);
    }

    // pre 表示level-1行的状态
    // level表示,正在level行做决定
    // N 表示一共有多少行  固定的
    // level-2行及其之上所有行,都摆满砖了
    // level做决定,让所有区域都满,方法数返回s
    public static int process(int[] pre, int level, int N) {
        if (level == N) { // base case
            for (int i = 0; i < pre.length; i++) {
                if (pre[i] == 0) {
                    return 0;
                }
            }
            return 1;
        }
        
        // 没到终止行,可以选择在当前的level行摆瓷砖
        int[] op = getOp(pre);
        return dfs(op, 0, level, N);
    }

    // op[i] == 0 可以考虑摆砖
    // op[i] == 1 只能竖着向上
    public static int dfs(int[] op, int col, int level, int N) {
         // 在列上自由发挥,玩深度优先遍历,当col来到终止列,i行的决定做完了
        // 轮到i+1行,做决定
        if (col == op.length) {
            return process(op, level + 1, N);
        }
        int ans = 0;
        // col位置不横摆
        ans += dfs(op, col + 1, level, N); // col位置上不摆横转
        //  col位置横摆, 向右
        if (col + 1 < op.length && op[col] == 0 && op[col + 1] == 0) {
            op[col] = 1;
            op[col + 1] = 1;
            ans += dfs(op, col + 2, level, N);
            op[col] = 0;
            op[col + 1] = 0;
        }
        return ans;
    }

    public static int[] getOp(int[] pre) {
        int[] cur = new int[pre.length];
        for (int i = 0; i < pre.length; i++) {
            cur[i] = pre[i] ^ 1;
        }
        return cur;
    }

相关文章

  • 2021-10-31(TPS问题变型)

  • 丰田的故事(4)-追根溯源:从企业文化开始聊

    2005年我刚开始从事TPS的指导,那个时候客户负责TPS的副总裁问我一个问题。他说胡老师TPS丰田生产方式这么好...

  • 1. 看板, 看板方法, 和看板系统

    在TPS中,看板的发明解决了准时制生产方式(just in time)的调度问题. 西方研究人员研究TPS时, 称...

  • 21天敏捷项目管理——Day 5 敏捷方法(实践)

    精益软件开发 采用丰田生产系统(TPS)的原则和实践 TPS开发旨在解决影响生产过程的问题,例如 过度:对于雇员和...

  • 浅谈闪电网络

    TPS 网络拥堵、转账时间长、交易缓慢、交易费用高等一直是比特币被诟病的问题。客观看待,比特币TPS低有利有弊。以...

  • 性能测试中TPS上不去的几种原因浅析

    性能测试中TPS上不去的几种原因浅析 昨晚在某个测试群看到有人问了一个问题:压力测试中TPS一直上不去,是什么原因...

  • 变型记

    一 无意中翻出以前的照片,从08年毕业的照片看到现在,发现自己的变化。算不上突然的骤变,但是将近10年的时间,自己...

  • 变型记

    年轻人啊,就要敢于尝试!!!(五一出去了一趟,莫名其妙要剪短发!!!19年生涯,4年的长发飘飘再次回归到了小时候热...

  • Grafana看板整理

    变量 数据源: 表: application: transaction: 指标 tps_success: tps_...

  • TPS和RT的计算

    TPS 每秒处理多少个请求 RT 单个请求平均响应时间 TPS= 吞吐量/耗时 RT= 1/TPS = 耗时/吞吐量

网友评论

      本文标题:2021-10-31(TPS问题变型)

      本文链接:https://www.haomeiwen.com/subject/frboaltx.html