【解题思路】

  爆搜,状态f(r,x,y)表示剩下r刀,边长为x和y,对于每个状态枚举切成两块后的长度比或宽度比。复杂度o((n/2)n)。

【参考代码】

 #include <algorithm>
#include <cstdio>
#define REP(I,start,end) for(int I=(start);I<=(end);I++)
#define PER(I,start,end) for(int I=(start);I>=(end);I--)
#define REPs(I,start,end,step) for(int I=(start);I<=(end);I+=(step))
#define PERs(I,start,end,step) for(int I=(start);I>=(end);I-=(step))
#define maxint 32767
#define maxlongint 2147483647
#define maxint64 9223372036854775807ll
using namespace std;
typedef unsigned short US;
typedef unsigned long UL;
typedef long long LL;
typedef unsigned long long ULL;
inline int getint()
{
char ch=getchar();
while((ch<''||ch>'')&&ch!='-')
ch=getchar();
int result=;
bool impositive=ch=='-';
if(impositive)
ch=getchar();
while(ch>=''&&ch<='')
{
result=(result<<)+(result<<)+ch-'';
ch=getchar();
}
return impositive?-result:result;
}
inline int putint(int n)
{
int result=;
char* sav=new char[];
bool impositive=n<;
if(impositive)
{
putchar('-');
n=-n;
}
sav[]=n%+'';
while(n/=)
sav[result++]=n%+'';
PER(i,result-,)
putchar(sav[i]);
delete []sav;
return result+impositive;
}
inline LL getLL()
{
char ch=getchar();
while((ch<''||ch>'')&&ch!='-')
ch=getchar();
LL result=0ll;
bool impositive=ch=='-';
if(impositive)
ch=getchar();
while(ch>=''&&ch<='')
{
result=(result<<)+(result<<)+ch-'';
ch=getchar();
}
return impositive?-result:result;
}
inline int putLL(LL n)
{
int result=;
char* sav=new char[];
bool impositive=n<;
if(impositive)
{
putchar('-');
n=-n;
}
sav[]=n%+'';
while(n/=)
sav[result++]=n%+'';
PER(i,result-,)
putchar(sav[i]);
delete []sav;
return result+impositive;
}
template<typename integer> inline int read_int(integer &n)
{
char ch=getchar();
while((ch<''||ch>'')&&ch!='-')
ch=getchar();
int result=n=integer();
bool impositive=ch=='-';
if(impositive)
ch=getchar();
while(ch>=''&&ch<='')
{
n=(n<<)+(n<<)+integer(ch-'');
result++;
ch=getchar();
}
if(impositive)
{
n=-n;
result++;
}
return result;
}
template<typename integer> inline int write_int(integer n)
{
int result=;
char* sav=new char[];
bool impositive=n<;
if(impositive)
{
putchar('-');
n=-n;
}
sav[]=n%+'';
while(n/=)
sav[result++]=n%+'';
PER(i,result-,)
putchar(sav[i]);
delete []sav;
return result+impositive;
}
template<typename T> inline bool getmin(T &target,T pattern)
{
bool can=pattern<target;
if(can)
target=pattern;
return can;
}
template<typename T> inline bool getmax(T &target,T pattern)
{
bool can=pattern>target;
if(can)
target=pattern;
return can;
}
//==========================================Header Template================================================
#include <iomanip>
#include <iostream>
double DFS(int rest,double _x,double _y)
{
if(rest==)
return _x>_y?_x/_y:_y/_x;
double result=maxlongint;
REP(i,,rest>>)
{
long double x0=_x/rest,y0=_y/rest,_r=rest-i;
getmin(result,min(max(DFS(i,x0*i,_y),DFS(_r,x0*_r,_y)),max(DFS(i,_x,y0*i),DFS(_r,_x,y0*_r))));
}
return result;
}
int main()
{
int x=getint(),y=getint(),n=getint();
cout<<setiosflags(ios::fixed)<<setprecision()<<DFS(n,x,y)<<endl;
return ;
}

最新文章

  1. 确保 PHP 应用程序的安全
  2. iOS 图片大小压缩 图片尺寸处理
  3. 解析json串,利用正则表达式,split
  4. Lab_2_SysOps_VPC_Linux_v2.5
  5. SOC芯片的FPGA原型验证
  6. 8款适合乐队、歌手和音乐家免费 WordPress 主题
  7. Head First 设计模式 --8 模板方法模式 别找我,我会找你
  8. struts2 ajax的一种实现方式
  9. ASP.NET伪静态-无法读取配置文件,因为它超过了最大文件大小的解决办法
  10. Html笔记(二)字体
  11. JVMTI 中间JNI系列功能,线程安全和故障排除技巧
  12. 高性能mysql(二)——mysql的存储引擎
  13. JVM入门——运行时数据区
  14. Mysql编译安装及优化
  15. SQL Server信息偏差影响表联结方式统计
  16. 2019年华南理工校赛(春季赛)--I--炒股(简单思维水题)
  17. Smokeping安装部署
  18. TP5.0+小程序商城构建(1)
  19. struts2中ognl标签具体解释
  20. mysql数据库中查看当前使用的数据库是哪个数据库?

热门文章

  1. windows下注册ocx控件
  2. c++ 兰姆达表达式
  3. Delphi 左键代替右键
  4. Delphi 消息函数 SendMessage函数
  5. bzoj 3207 可持久化线段树+hash
  6. 【Flutter学习】基本组件之基本按钮组件
  7. NodeJS+Express+mySQL服务端开发详解
  8. layui多图上传
  9. XML 介绍
  10. webdriver使用已打开过的chrome