NC20272 [SCOI2009]生日快乐
题目
题目描述
windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕。现在包括windy ,一共有 N 个人来分这块大蛋糕,要求每个人必须获得相同面积的蛋糕。
windy主刀,每一切只能平行于一块蛋糕 的一边(任意一边),并且必须把这块蛋糕切成两块。这样,要切成 N 块蛋糕,windy必须切 N-1 次。
为了使得每块蛋糕看起来漂亮,我们要求 N块蛋糕的长边与短边的比值的最大值最小。你能帮助windy求出这个比值么?
输入描述
包含三个整数,X Y N。
1 ≤ X,Y ≤ 10000 ; 1 ≤ N ≤ 10
输出描述
包含一个浮点数,保留6位小数。
示例1
输入
5 5 5
输出
1.800000
备注
100%的数据,满足\(1 \le X,Y \le 10000 ; 1 \le N \le 10\) 。
题解
知识点:DFS。
最大值最小很容易想到二分,然鹅答案并不单调2333。
发现 \(N\) 很小考虑暴搜。对于长宽为 \(x\) 和 \(y\) 的一块蛋糕,如果要切成 \(n\) 块面积相等的,那么每块面积是 \(\frac{xy}{n}\) ,则一定要切在长上 \(\frac{x}{n}\) 的倍数点或宽上 \(\frac{y}{n}\) 的倍数点上,其他切法都不能保证每块都是 \(\frac{xy}{n}\) 。
方法有了就可以搜索了。对于每一块蛋糕(包括原蛋糕)切长或宽切 \(i\) 倍的点,\(i\) 只需到 \(\lfloor \frac{n}{2} \rfloor\) 即可,再大会对称。然后再搜索切出来两块的答案,取两块中的长宽比最大值作为这种切法的答案,如果 \(n=1\) 返回长宽比作为答案。然后取长宽两种切法的所有切点中答案的最小值返回,作为这整块的蛋糕切出来的长宽比最大值的最小值。
时间复杂度 \(O(?)\)
空间复杂度 \(O(n)\)
代码
#include <bits/stdc++.h>
using namespace std;
double ans = 0;
double dfs(double x, double y, int n) {///长x宽y的蛋糕要切成n块
if (n == 1) return max(x, y) / min(x, y);
double dx = x / n, dy = y / n, ans = 1e9;///每刀只能切在x/n或y/n的倍数上
for (int i = 1;i <= (n >> 1);i++) {///切出1~n/2块的大小,再大就对称的了
double l = max(dfs(i * dx, y, i), dfs(x - i * dx, y, n - i));///切在长上
double w = max(dfs(x, i * dy, i), dfs(x, y - i * dy, n - i));///切在宽上
ans = min({ ans, l, w });///取两种情况的最小值
}
return ans;
}
int main() {
std::ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
double x, y;
int n;
cin >> x >> y >> n;
cout << fixed << setprecision(6) << dfs(x, y, n) << '\n';
return 0;
}
NC20272 [SCOI2009]生日快乐的更多相关文章
- BZOJ 1024: [SCOI2009]生日快乐 dfs
1024: [SCOI2009]生日快乐 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...
- BZOJ 1023 [SCOI2009]生日快乐
1024: [SCOI2009]生日快乐 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1729 Solved: 1219[Submit][Statu ...
- BZOJ 1024 [SCOI2009]生日快乐 (搜索)
1024: [SCOI2009]生日快乐 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 3025 Solved: 2201[Submit][Statu ...
- 【BZOJ1024】[SCOI2009]生日快乐(搜索)
[BZOJ1024][SCOI2009]生日快乐(搜索) 题面 BZOJ 洛谷 题解 看到这个数据范围就感觉是爆搜.我们爆搜左右分成多少块,这样子左右的面积已知,再枚举一下横着切还是竖着切,这样子就可 ...
- bzoj千题计划115:bzoj1024: [SCOI2009]生日快乐
http://www.lydsy.com/JudgeOnline/problem.php?id=1024 枚举横着切还是竖着切,一边儿分多少块 #include<cstdio> #incl ...
- 【bzoj1024】[SCOI2009]生日快乐
1024: [SCOI2009]生日快乐 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2372 Solved: 1717[Submit][Statu ...
- BZOJ1024 [SCOI2009]生日快乐
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
- BZOJ 1024: [SCOI2009]生日快乐
Description 将一个 \(x\times y\) 的矩形分成 \(n\) 块,让最长边:最短边 最小. Sol 搜索. \(n\) 只有 \(10\) 写一个类似于记搜的东西就好了. Cod ...
- 1024: [SCOI2009]生日快乐
暴力题,N<=10,没注意到平均分,读题真是.. 我们对于一个矩形分成两块进行搜.然后求较大值. ans=min(ans,max(dfs(x,y/n*i,i),dfs(x,y/n*(n-i),n ...
- 1024: [SCOI2009]生日快乐 - BZOJ
Description windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕.现在包括windy,一共有 N 个人来分这块大蛋糕,要求每个人必须获得相同面积的蛋 ...
随机推荐
- zookeeper 节点介绍及节点常用命令总结
本文为博主原创,未经允许不得转载: 目录: 1. znode 节点特性 2. zookeeper 的四种节点类型及适用场景分析 3. zookeeper 客户端常用操作命令 4. znode 数据增删 ...
- [粘贴]关于preparedStatement
作者:wuxinliulei链接:https://www.zhihu.com/question/37043270/answer/83914933来源:知乎著作权归作者所有.商业转载请联系作者获得授权, ...
- [转帖]第24/24周 数据库维护(Database Maintenance)
https://www.cnblogs.com/woodytu/p/4795542.html 哇哦,光阴似箭!欢迎回到性能调优培训的最后一期.今天我会详细讲下SQL Server里的数据库维护,尤其是 ...
- [转帖]Oracle 创建和查看DBLink 的方法
https://www.cnblogs.com/zhouzangood/articles/4612441.html 1.如果需要创建全局 DBLink,则需要先确定用户有创建 dblink 的权限: ...
- [转帖]分析redis 大key
http://www.lishuai.fun/2023/05/05/redis-bigkey/#/%E5%AE%89%E8%A3%85 redis-rdb-tools 是一个 python 的解析 r ...
- [转帖]Linux系统NVME盘分区和挂载
https://www.jianshu.com/p/04327f1b97cb 查看系统里面识别到的硬盘和分区的信息 $ sudo fdisk -l Disk /dev/nvme1n1: 1.8 TiB ...
- [转帖]挂载文件系统选项nodiratime、noatime
默认的方式下linux会把文件访问的时间atime做记录,文件系统在文件被访问.创建.修改等的时候记录下了文件的一些时间戳,比如:文件创建时间.最近一次修改时间和最近一次访问时间:这在绝大部分的场合都 ...
- [转帖]如何在 Linux 中使用ss命令监控网络连接
https://zhuanlan.zhihu.com/p/99421574 ss命令是用于在Linux系统上显示与网络套接字相关的信息的工具. 该工具显示netstat命令的更多详细信息,该命令用于显 ...
- Docker镜像精简方法之二 COPY vs ADD 与镜像层
Docker镜像精简方法之二 COPY vs ADD 与镜像层 摘要 昨天只是讲了一下大体的思路. 但是没有实操. 今天想着修改一下默认的打包镜像的命令,验证一下效果 原始命令 FROM adopto ...
- [转帖]关于linux:NUMA架构下的内存延迟区别测试
https://lequ7.com/guan-yu-linuxnuma-jia-gou-xia-de-nei-cun-yan-chi-qu-bie-ce-shi.html 当初的服务器物理机CPU个别 ...