bzoj1024 [SCOI2009]生日快乐

bzoj1024 [SCOI2009]生日快乐


原题链接


题解

为了弥补信心做的。
这两天被各种火题踩爆。
开始以为是DP,然后习惯性的上CJOJ搜了下,在搜索专题里。。。
简单dfs不解释。


Code

// It is made by XZZ
#include<cstdio>
#include<algorithm>
using namespace std;
#define rep(a,b,c) for(rg int a=b;a<=c;a++)
#define drep(a,b,c) for(rg int a=b;a>=c;a--)
#define erep(a,b) for(rg int a=fir[b];a;a=nxt[a])
#define il inline
#define rg register
#define vd void
#define db double
typedef long long ll;
il int gi(){
    rg int x=0;rg char ch=getchar();
    while(ch<'0'||ch>'9')ch=getchar();
    while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
    return x;
}
int x,y,n;db s;
il db dfs(db a,db b,int k){//k人分a*b的蛋糕
    if(k==1)return max(a,b)/min(a,b);
    db ret=1e10;
    rep(i,1,k-1)ret=min(ret,max(dfs(a*i/k,b,i),dfs(a*(k-i)/k,b,k-i)));
    rep(i,1,k-1)ret=min(ret,max(dfs(a,b*i/k,i),dfs(a,b*(k-i)/k,k-i)));
    return ret;
}
int main(){
    x=gi(),y=gi(),n=gi();
    s=(db)x*y/n;
    printf("%.6lf\n",dfs((db)x,(db)y,n));
    return 0;
}
posted @ 2017-09-07 22:23  菜狗xzz  阅读(102)  评论(0编辑  收藏  举报