题目链接

搜索,枚举切的n-1刀。
对于长n宽m要切x刀,可以划分为若干个 长n'宽m'要切x'刀 的子问题,对所有子问题的答案取max 对所有子问题的方案取min 就是当前状态答案。
这显然是会有很多重复状态的,用map记忆化(长宽都是double)。
每一刀会将当前分成两份。比如当前是横着切,枚举上边再切i刀(分成i+1份)(下边就再切x-1-i刀),由m不变,有 \(n'*m=n*m*(i+1)/(x+1)\),可以得到n'。同理可以得到每种切法的n',m'。
double可以用pair<LL.LL>表示最简分数,不用也没太大问题吧。

总结:1.划分子问题;记忆化。
2.按切成块数划分面积。(肯定是啊)

//824kb 56ms
#include <map>
#include <cstdio>
#include <algorithm>
#define mp std::make_pair
#define pr std::pair<double,double>
//typedef Status std::pair<pr,int>std::map<pr,double> f[10];
std::map<pr,double>::iterator it;double DFS(double n,double m,int x)
{if(!x) return std::max(n,m)/std::min(n,m);if((it=f[x].find(mp(n,m)))!=f[x].end()) return it->second;double res=1e15, nn=n/(x+1), mm=m/(x+1);for(int i=0; i<x; ++i)//剩余可切次数为x-1(注意这就是一次) res=std::min(res,std::max(DFS((i+1)*nn,m,i),DFS((x-i)*nn,m,x-1-i))),//x是刀数,别混了。res=std::min(res,std::max(DFS(n,(i+1)*mm,i),DFS(n,(x-i)*mm,x-1-i)));f[x][mp(n,m)]=f[x][mp(m,n)]=res;return res;
}int main()
{int n,m,x; scanf("%d%d%d",&n,&m,&x);
//  double Ans=DFS(n,m,x-1);//一样 printf("%.6lf",DFS(n,m,x-1));return 0;
}

转载于:https://www.cnblogs.com/SovietPower/p/8976556.html

BZOJ.1024.[SCOI2009]生日快乐(记忆化搜索)相关推荐

  1. BZOJ 1024 SCOI2009 生日快乐 暴力搜索

    奇怪以前做了却没写题解..强行爆搜保平安..CSDN不支持普通编辑器编辑的博客转换成MarkDown的? 看到n<=10,可以联想到O(n!)的算法,大概就是暴力(brute force)的搜索 ...

  2. bzoj 1024 [SCOI2009]生日快乐

    1024: [SCOI2009]生日快乐 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 1955  Solved: 1395 [Submit][Sta ...

  3. BZOJ 1024: [SCOI2009]生日快乐

    1024: [SCOI2009]生日快乐 Description windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕.现在包括windy,一共有 N 个人来分 ...

  4. BZOJ 1024: [SCOI2009]生日快乐 dfs

    题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=1024 题意: 题解: http://www.cnblogs.com/ljh2000-ju ...

  5. bzoj 1024 [SCOI2009]生日快乐——模拟

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1024 可以枚举这边放多少块.那边放多少块. 注意精度.不要每次用x*y/base算有多少块, ...

  6. BZOJ 1589 Trick or Treat on the Farm (tarjan缩点,记忆化搜索)[Usaco 2008 Dec Gold]【BZOJ计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://hydro.ac/d/bzoj/p/1589 Problem 每年万圣 ...

  7. [BZOJ 1048] [HAOI2007] 分割矩阵 【记忆化搜索】

    题目链接:BZOJ - 1048 题目分析 感觉这种分割矩阵之类的题目很多都是这样子的. 方差中用到的平均数是可以直接算出来的,然后记忆化搜索 Solve(x, xx, y, yy, k) 表示横坐标 ...

  8. 【BZOJ 1415】 1415: [Noi2005]聪聪和可可 (bfs+记忆化搜索+期望)

    1415: [Noi2005]聪聪和可可 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1640  Solved: 962 Description ...

  9. BZOJ 1079: [SCOI2008]着色方案 记忆化搜索

    1079: [SCOI2008]着色方案 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...

最新文章

  1. maven3 手动安装本地jar到仓库
  2. tornado 入门
  3. 图片右击打印不弹出打印首选项
  4. 分享一些优秀有趣的博客
  5. 【Linux系统编程】同步和互斥的概念
  6. 【转】【C#.NET】ASP.NET状态管理之一:Cookie
  7. 大数据和人工智能时代下的运筹学
  8. 【转】Objective-C 属性特性(assign , retain , copy , readonly , readwrite , atomic , nonatomic)...
  9. 寄售Consignment和VMI有什么区别?
  10. Python argv小结
  11. mysql 全文索引无效_为什么MySQL全文索引不起作用?
  12. Vue中native的用法
  13. MySQL DUAL表的作用
  14. 假如杨笠吐槽程序员。。。
  15. 【已解决】TF_REPEATED_DATA ignoring data with redundant timestamp for frame
  16. 如何轻松高效开展设备巡检?
  17. 面试题:如何测试微信朋友圈
  18. 7-3 降价提醒机器人 (10 分)小 T 想买一个玩具很久了,但价格有些高,他打算等便宜些再买。但天天盯着购物网站很麻烦,请你帮小 T 写一个降价提醒机器人,当玩具的当前价格比他设定的价格便宜时发
  19. MQTT客户端远程控制WIFI设备(阿里云物联网平台)
  20. 海康威视的监控软件 手机端

热门文章

  1. mysql5.7乱码_mysql5.7中解决中文乱码的问题
  2. js html 导出word 不用activexobject,javascript下用ActiveXObject控件替换word书签,将内容导出到word后打印第2/2页...
  3. php脚本来创建一个表,PHP - SQL脚本创建器
  4. 深度学习loss值变为0_利用TensorFlow2.0为胆固醇、血脂、血压数据构建时序深度学习模型(python源代码)...
  5. 安装卡主_智能温室四周玻璃的安装学问还这么多
  6. error: ‘CV_BGR2RGB’ was not declared in this scope
  7. python 示例_带有示例的Python文件关闭属性
  8. 合页损失,铰链损失_多点铰链损失功能 使用Python的线性代数
  9. 字符串 charat_Java | String.charAt(index)| 从字符串中按索引获取字符
  10. 用于将类型从double转换为int的C#程序