【题目链接】:http://www.lydsy.com/JudgeOnline/problem.php?id=1024

【题意】

【题解】



要求恰好分成n个部分;每个部分的面积都一样;

则dfs的时候三个域分别表示矩形的长宽以及要被切成的份数;

每次切一刀下去的时候肯定是按照比例分配的;

比如要这一刀切下去(假设竖着切)之后左边还要切x刀,右边切y刀

则左边肯定要分配当前面积的x/(x+y),右边肯定要分配当前面积的y/(x+y)

因为之后每一刀你都得按比例分啊.

又只能横着切、竖着切,没有其他的变数

所以如果不按照上面的方法根本不可能切成的每个块面积都一样的。



【完整代码】

#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define rei(x) scanf("%d",&x)
#define rel(x) scanf("%lld",&x)
#define ref(x) scanf("%lf",&x) typedef pair<int, int> pii;
typedef pair<LL, LL> pll; const int dx[9] = { 0,1,-1,0,0,-1,-1,1,1 };
const int dy[9] = { 0,0,0,-1,1,-1,1,-1,1 };
const double pi = acos(-1.0);
const int N = 110; int x, y, n; void input_data()
{
rei(x), rei(y), rei(n);
} double dfs(double x, double y, int z)
{
if (z == 1)
{
if (x < y) swap(x, y);
return x / y;
}
double tt = z;
double xx = x / tt;
double z1 = 21e8;
rep1(i, 1, z-1)
{
double t = xx*i;
double temp1 = dfs(t, y, i);
temp1 =max(temp1, dfs(x - t, y, z - i));
z1 = min(z1, temp1);
} double yy = y / tt;
rep1(i, 1, z-1)
{
double t = yy*i;
double temp1 = dfs(x, t, i);
temp1 = max(temp1, dfs(x, y - t, z - i));
z1 = min(z1, temp1);
}
return z1;
} int main()
{
//freopen("F:\\rush.txt", "r", stdin);
input_data();
printf("%.6f\n", dfs(x, y, n));
//printf("\n%.2lf sec \n", (double)clock() / CLOCKS_PER_SEC);
return 0;
}

最新文章

  1. Travis CI用来持续集成你的项目
  2. ASP.NET内置对象的总结
  3. stm32f系列单片机startup_stm32fxxx.s文件说明(转)
  4. [ruby on rails] 跟我学之(8)修改数据
  5. 第六篇 ORACLE EBS用户界面通用元素或功能背后的道理解析
  6. VS编译时自动下载NuGet管理的库
  7. P51、面试题5:从尾到头打印链表
  8. conda配置python混合开发环境一站式入门【全平台】
  9. mvc UrlHelper
  10. [0] 领域模型 VS 贫血模型
  11. IPFS的竞争对手们(一)
  12. git简介及使用方法
  13. C# DataTable,DataSet,IList,IEnumerable 互转扩展属性
  14. Navicat连接阿里云服务器Linux下的Mysql
  15. Windows Python+Eclipse环境配置
  16. java 属性封装
  17. JAVA构造方法与方法是啥意思,方法重载方法覆盖俗谈
  18. windows 下为Python安装redis
  19. OC中分类(Category)和扩展(Extension)
  20. NPOI datatable导出类

热门文章

  1. maven的pom.xml配置文件讲解
  2. POJ 1166 The Clocks 高斯消元 + exgcd(纯属瞎搞)
  3. 【iOS开发系列】颜色渐变
  4. CSS伪元素与伪类的区别
  5. 【例题 6-11 UVA-297】Quadtrees
  6. 深入理解线程本地变量ThreadLocal
  7. linux内核头文件 cdev.h 解析
  8. 使用wepy开发微信小程序商城第一篇:项目初始化
  9. java.util.logging使用笔记2
  10. 如何在 Linux 中统计一个进程的线程数