C++ | Leetcode C++题解之第458题可怜的小猪

题目:

题解:

cpp 复制代码
class Solution {
public:
    int poorPigs(int buckets, int minutesToDie, int minutesToTest) {
        if (buckets == 1) {
            return 0;
        }
        vector<vector<int>> combinations(buckets + 1,vector<int>(buckets + 1));
        combinations[0][0] = 1;
        int iterations = minutesToTest / minutesToDie;
        vector<vector<int>> f(buckets,vector<int>(iterations + 1));
        for (int i = 0; i < buckets; i++) {
            f[i][0] = 1;
        }
        for (int j = 0; j <= iterations; j++) {
            f[0][j] = 1;
        }
        for (int i = 1; i < buckets; i++) {
            combinations[i][0] = 1;
            combinations[i][i] = 1;
            for (int j = 1; j < i; j++) {
                combinations[i][j] = combinations[i - 1][j - 1] + combinations[i - 1][j];
            }
            for (int j = 1; j <= iterations; j++) {
                for (int k = 0; k <= i; k++) {
                    f[i][j] += f[k][j - 1] * combinations[i][i - k];
                }
            }
            if (f[i][iterations] >= buckets) {
                return i;
            }
        }
        return 0;
    }
};
相关推荐
学生小羊3 分钟前
C++小游戏
开发语言·c++·游戏
企鹅chi月饼21 分钟前
面试问题:c++的内存管理方式,delete的使用,vector的resize和reverse,容量拓展
c++·面试
hansang_IR36 分钟前
【题解】洛谷P1776 宝物筛选 [单调队列优化多重背包]
c++·算法·动态规划·题解·背包·多重背包·单调队列
jndingxin43 分钟前
c++多线程(1)------创建和管理线程td::thread
开发语言·c++·算法
SuperCandyXu44 分钟前
洛谷 P3128 [USACO15DEC] Max Flow P -普及+/提高
c++·算法·图论·洛谷
你说今年的枫叶好像不够红啊1 小时前
LeetCode[两数之和] java版
数据结构·算法·leetcode
_不会dp不改名_1 小时前
leetcode_234 回文链表
算法·leetcode·链表
野犬寒鸦2 小时前
力扣hot100:螺旋矩阵(边界压缩,方向模拟)(54)
java·数据结构·算法·leetcode
拾光Ծ2 小时前
【STL】C++ 开发者必学字符类详解析:std::string
开发语言·c++
緈福的街口2 小时前
【leetcode】130. 被围绕的区域
算法·leetcode·职场和发展