题目链接:

http://www.lydsy.com/JudgeOnline/problem.php?id=1024

题意:

题解:

http://www.cnblogs.com/ljh2000-jump/p/6063364.html
直接搜索每次横着切还是竖着切,同时均分成多少块。因为每个人的面积相等,所以注意一下,切成两半后必须要保证两边分成的块数之比要等于面积之比,仔细想想就可以想通了

dfs为什么取两种的最大值嘞 这两个是一个状态下的 一个产生 另一个就是必然
因为对于当前长为x的矩形, 在长度为x1*i 上分成i块 就必须在剩下的x-x1*i 上分成num-i块。 否则, 上面分的和下面分的就不一样长了 , 不能保证每块面积相等

说好的裸搜索 看了很久才懂点 菜的无可救药了

代码:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 #define MS(a) memset(a,0,sizeof(a))
 5 #define MP make_pair
 6 #define PB push_back
 7 const int INF = 0x3f3f3f3f;
 8 const ll INFLL = 0x3f3f3f3f3f3f3f3fLL;
 9 inline ll read(){
10     ll x=0,f=1;char ch=getchar();
11     while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
12     while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
13     return x*f;
14 }
15 //
16 const int maxn = 1e5+10;
17
18
19 double dfs(double x,double y,int num){  // 需要分成num块,且矩形长宽分别为x,y
20     if(num == 1){
21         return max(x,y)/min(x,y);
22     }
23
24     double ans1,ans2,ans=INF;
25     for(int i=1; i<=num/2; i++){ // 枚举横着或者竖着分成i份
26         double x1 = x/num, y1 = y/num;
27         ans1 = max(dfs(x1*i,y,i),dfs(x1*(num-i),y,num-i));
28         ans2 = max(dfs(x,y1*i,i),dfs(x,y1*(num-i),num-i));
29         ans = min(ans,min(ans1,ans2));
30     }
31     return ans;
32 }
33
34 int main(){
35     int x,y,n;
36     cin >> x >> y >> n;
37
38     printf("%.6lf\n",dfs(x,y,n));
39
40     return 0;
41 }

转载于:https://www.cnblogs.com/yxg123123/p/6827674.html

BZOJ 1024: [SCOI2009]生日快乐 dfs相关推荐

  1. bzoj 1024 [SCOI2009]生日快乐

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

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

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

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

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

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

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

  5. BZOJ.1024.[SCOI2009]生日快乐(记忆化搜索)

    题目链接 搜索,枚举切的n-1刀. 对于长n宽m要切x刀,可以划分为若干个 长n'宽m'要切x'刀 的子问题,对所有子问题的答案取max 对所有子问题的方案取min 就是当前状态答案. 这显然是会有很 ...

  6. BZOJ-1024 生日快乐 DFS+一丝sb的数学思考

    1024: [SCOI2009]生日快乐 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 1948 Solved: 1391 [Submit][Statu ...

  7. BZOJ1024 SCOI2009生日快乐

    1024: [SCOI2009]生日快乐 Time Limit: 1 Sec   Memory Limit: 162 MB Submit: 1846   Solved: 1315 [ Submit][ ...

  8. 【搜索】[SCOI2009] 生日快乐 BZOJ 1024

    [SCOI2009]生日快乐 BZOJ 1024 Time Limit: 1 Sec  Memory Limit: 162 MB Description windy的生日到了,为了庆祝生日,他的朋友们 ...

  9. bzoj 1024 生日快乐 暴力搜索

    bzoj 1024 生日快乐 传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1024 Description windy的生日到了,为了庆祝生 ...

最新文章

  1. 结构型模式---适配器模式
  2. 《C和C++程序员面试秘笈》——1.9 如何理解C++是面向对象化的,而C是面向过程化的...
  3. JAVA知识总结目录
  4. listbox icon
  5. python按键盘上哪个键运行_python根据键盘输入进行相应操作
  6. 【每日一题】8月17日题目精讲-[SCOI2009]生日礼物
  7. 用java写的教职工信息管理系统_基于Java的教师信息管理系统的设计与实现论文.doc...
  8. Zabbix 3.0 配置企业微信报警(注册---测试)
  9. 机器学习--线性回归(LinearRegression)
  10. Maven学习总结(44)——Maven构建时生命周期及其常用集成命令详解
  11. JSON Web Token(缩写 JWT) 目前最流行的跨域认证解决方案
  12. win10改计算机用户名,win10如何改成自己想要的文件夹用户名?
  13. 安装 tensorflow 环境
  14. 学会提问pdf_原来只要1分钟,Word、PPT、PDF文件就能随意互相转换,快学学
  15. java 分组求和函数_java8 怎么精简分组求和
  16. VMware Workstation 12激活码
  17. 国际象棋渲染测试软件,C4D结合Octane Render渲染器制作三维国际象棋建模渲染教程 含中英文字幕...
  18. 证明费马最后定理的英国数学家,终获2016阿贝尔奖
  19. latex语法_【研创基地科研实训】关于举办第27期“LaTeX使用技巧交流分享会” 线上科研实训交流活动的通知...
  20. Vlan 单线复用之复式二层住宅网络改造实操案例(一)

热门文章

  1. AD采样的平均值滤波
  2. 【XLL 框架库函数】 Excel/Excel12f
  3. C# 文本操作类 Trim() 和Replace()的用法小例子
  4. java 蓝桥杯算法训练 P0501
  5. Flume Source
  6. mysql数据库单用户_SQLServer数据库之SqlServer数据库单用户模式无法删除的处理
  7. (01)System Verilog 程序数据采集
  8. QGIS2.18二次开发环境搭建--番外篇
  9. 截取年月日在hana中怎么写_获取Sting类型格式-日期中的年月日
  10. pulsar 容量_[Apache Pulsar] 企业级分布式消息系统-Pulsar入门基础