分蛋糕

简介: 总时间限制: 1000ms 内存限制: 65536kB描述有一块矩形大蛋糕,长和宽分别是整数w 、h。现要将其切成m块小蛋糕,每个小蛋糕都必须是矩形、且长和宽均为整数。切蛋糕时,每次切一块蛋糕,将其分成两个矩形蛋糕。
总时间限制: 1000ms 内存限制: 65536kB
描述

有一块矩形大蛋糕,长和宽分别是整数w 、h。现要将其切成m块小蛋糕,每个小蛋糕都必须是矩形、且长和宽均为整数。切蛋糕时,每次切一块蛋糕,将其分成两个矩形蛋糕。请计算:最后得到的m块小蛋糕中,最大的那块蛋糕的面积下限。

假设w= 4, h= 4, m= 4,则下面的切法可使得其中最大蛋糕块的面积最小。

 

假设w= 4, h= 4, m= 3,则下面的切法会使得其中最大蛋糕块的面积最小:

 

 

输入
共有多行,每行表示一个测试案例。每行是三个用空格分开的整数w, h, m ,其中1 ≤ w, h, m ≤ 20 , m ≤ wh. 当 w = h = m = 0 时不需要处理,表示输入结束。
输出
每个测试案例的结果占一行,输出一个整数,表示最大蛋糕块的面积下限。
样例输入
4 4 4
4 4 3
0 0 0
样例输出
4
6

算法分析:
直接枚举DP 
f[i][j][k]表示把i*j分成k块蛋糕时,最大的那块蛋糕的面积下限(最小值)。
枚举横切竖切形成的新蛋糕即可

 1 #include<cstdio>
 2 #include<iostream>
 3 using namespace std;
 4 #define N 25
 5 #define INF 5005
 6 int f[N][N][N];int w,h,m;
 7 int main(){
 8     w=h=m=20;
 9     for(int i=1;i<=w;i++){
10         for(int j=1;j<=h;j++){
11             f[i][j][1]=i*j;
12             for(int k=2;k<=m;k++){
13                 f[i][j][k]=INF;
14                 for(int r=1;r<i;r++){
15                     f[i][j][k]=min(f[i][j][k],max(f[r][j][k-1],(i-r)*j));
16                     for(int p=1;p<k;p++)
17                         f[i][j][k]=min(f[i][j][k],max(f[r][j][p],f[i-r][j][k-p]));
18                 }
19 
20                 for(int c=1;c<j;c++){
21                     f[i][j][k]=min(f[i][j][k],max(f[i][c][k-1],(j-c)*i));
22                     for(int p=1;p<k;p++)
23                         f[i][j][k]=min(f[i][j][k],max(f[i][c][p],f[i][j-c][k-p]));
24                 }
25             }
26         }
27     }
28     while(scanf("%d%d%d",&w,&h,&m)&&(w||h||m)){
29         printf("%d\n",f[w][h][m]);}
30     return 0;
31 }

来源:http://blog.csdn.net/qq_18455665/article/details/50512764



 

相关文章
|
8月前
|
存储 监控 数据可视化
无代码开发怎么做?无代码开发核心流程与功能讲解
在数字化转型背景下,无代码开发(No-Code Development)正成为企业快速构建应用、提升效率的重要工具。它通过可视化界面和模块化设计,使非技术人员也能轻松参与开发,显著降低了技术门槛与开发成本。本文深入解析无代码开发的核心流程与功能,涵盖需求分析、模型设计、页面搭建与测试发布等关键阶段,并结合实际案例为企业提供可行建议。同时,文章也探讨了无代码开发的优势与适用场景,帮助企业理解如何在快速变化的市场中灵活应对,推动创新与业务增长。
|
监控 Cloud Native Java
基于阿里云容器服务(ACK)的微服务架构设计与实践
本文介绍如何利用阿里云容器服务Kubernetes版(ACK)构建高可用、可扩展的微服务架构。通过电商平台案例,展示基于Java(Spring Boot)、Docker、Nacos等技术的开发、容器化、部署流程,涵盖服务注册、API网关、监控日志及性能优化实践,帮助企业实现云原生转型。
|
机器学习/深度学习 自然语言处理 语音技术
大语言模型系列-Transformer
大语言模型系列-Transformer
|
监控 Serverless API
利用云函数实现后端服务的无服务器化
【10月更文挑战第7天】本文介绍了无服务器架构中的核心组件——云函数,探讨了其概念、优势及应用。云函数使开发者能在无需管理服务器的情况下运行代码,具备自动扩展、成本效益、快速迭代和聚焦业务逻辑等优势。文章还详细说明了实施云函数的步骤,并分享了实战技巧,旨在帮助读者更好地理解和应用这一技术。
|
12月前
|
机器学习/深度学习 传感器 大数据
大数据如何化解城市交通拥堵的难题?
大数据如何化解城市交通拥堵的难题?
394 5
|
搜索推荐 API 开发者
淘宝买家秀API接口(淘宝API系列)
淘宝买家秀API接口为电商运营和产品分析提供宝贵数据,反映消费者真实反馈。通过HTTP GET请求,开发者可获取商品的买家秀信息,包括图片、文字描述、点赞数等,帮助商家改进产品和优化营销策略。Python示例代码展示了如何调用该接口并处理返回数据。需在淘宝开放平台注册并申请权限。
|
缓存 弹性计算 网络协议
阿里云服务器对接高防的时候可能会出现的问题
本文总结了高防服务使用中常见的六大类问题及其解决方法,包括网络延迟与跨运营商访问异常、安全组配置错误、后端服务器异常、高防服务状态异常、端口协议配置错误及其他常见问题。针对每类问题,文章分析了可能的原因,并提供了具体排查和解决方案,如选择合适防护节点、放行回源IP段、优化服务器性能、调整防护策略等,帮助用户快速定位并解决问题,提升服务稳定性。
|
存储 缓存 算法
深入解析B树:数据结构、存储结构与算法优势
深入解析B树:数据结构、存储结构与算法优势
|
人工智能 自动驾驶 安全
《解锁数据新动能:数据标注工具与AI模型训练平台的无缝对接热潮》
在人工智能快速发展的今天,数据成为核心驱动力。数据标注工具与模型训练平台的集成,实现了数据无缝流转,犹如为AI发展装上双引擎。集成不仅提高了数据传输效率、减少了人工干预,还确保了数据准确性,提升了模型性能。统一的数据标准、高效的接口设计和严格的安全保障是实现无缝流转的关键要素。这种集成推动了医疗、自动驾驶等领域的快速发展,促进了数据驱动的创新,为企业和社会带来巨大价值。未来,这一趋势将更加高效智能,进一步推动AI技术的广泛应用。
461 8
|
Web App开发 JSON Android开发
Flutter笔记:获取设备信息
Flutter笔记:获取设备信息
1629 0