博客
关于我
poj1190生日蛋糕
阅读量:802 次
发布时间:2023-03-03

本文共 1631 字,大约阅读时间需要 5 分钟。

为了找到最小的外表面面积S,我们需要确定每一层的半径R_i和高度H_i,使得:

  • 体积总和为Nπ
  • 每层的半径和高度满足递减关系(R_i > R_{i+1},H_i > H_{i+1})
  • 外表面积S最小
  • 我们可以使用动态规划的方法,逐层确定每一层的半径和高度,并通过剪枝技术优化搜索过程。

    具体来说,对于每一层i,我们尝试不同的半径和高度组合,并计算其体积和外表面积。通过递归搜索,我们可以找到满足条件的最优解。

    在代码实现中,我们可以使用递归函数来尝试不同的半径和高度组合,并使用剪枝技术来避免重复计算和优化性能。

    最终,我们可以通过递归函数返回最小的S值,或者返回0表示无解。

    以下是实现代码:

    #include 
    #include
    #include
    #define MAXN 1000000000int f, n, mins;int dfs(int m, int r, int h, int s, int v) { if (v > n) return 1; if (m == f) { if (v < n) return -1; if (v > n) return 1; if (mins > s) mins = s; return 0; } for (int i = r - 1; i >= f - m; --i) { if (i <= 0) continue; int temp = (n - v) / (i * i); if (temp < f) continue; for (int j = temp; j >= f - m; --j) { if (j <= 0) continue; if (j == h - 1 && i == r - 1) continue; if (dfs(m + 1, i, j, s + 2 * i * j, v + i * i * j) == -1) { return -1; } } } return 2;}int main() { while (scanf("%d %d", &n, &f) != EOF) { mins = MAXN; int a = sqrt((double)n); int k = 0; int v = 0; for (int i = a; i >= f; --i) { v = i * i; if (v > n) break; for (int j = n / v; j >= f; --j) { if (j > h) continue; int s = 2 * i * j; if (dfs(1, i, j, s, v) == -1) { continue; } } } if (mins != MAXN) { printf("%d\n", mins); } else { printf("0\n"); } } return 0;}

    输出结果

    根据输入的N和M,程序会输出最小的S值。如果无解,输出0。

    转载地址:http://mbxfk.baihongyu.com/

    你可能感兴趣的文章
    psv黑商店pkgj最新版下载_黑科技p图app下载-黑科技p图最新版下载v1.0.0
    查看>>
    ps命令详解
    查看>>
    PyTorch-Tutorials【pytorch官方教程中英文详解】- 1 Quickstart
    查看>>
    PS网页设计教程XVIII——在Photoshop中设计优雅的乡村酒店或餐厅的网页布局
    查看>>
    PS获取RGB和十六进制的颜色值
    查看>>
    PyTorch 的 10 条顶级知识点
    查看>>
    PS辅助工具Assistor PS
    查看>>
    pt-archiver 归档历史数据及参数详解
    查看>>
    pt-online-schema-change使用详解
    查看>>
    PyTorch 模型性能分析和优化 — 第 2 部分
    查看>>
    PTA L1-011 A-B
    查看>>
    pta l2-1紧急救援(Dijkstra)
    查看>>
    pta求阶乘序列前n项和_学霸整理——求数列的通项公式解法集锦,转化、归纳一文全懂...
    查看>>
    SpringBoot中集成Redis实现对redis中数据的解析和存储
    查看>>
    pthread_create导致的程序崩溃
    查看>>
    ptyhon POSIX
    查看>>
    public private protected default小结
    查看>>
    PublicCMS怎么用金蝶Apusic Application Server部署
    查看>>
    publish over ssh、 Kubernetes Continuous Deploy插件
    查看>>
    PubMed详解-ChatGPT4o作答
    查看>>