bzoj1024

这道题说实话第一眼看到是绝望。。。

但是看到数据范围后便松了口气:爆搜能过

因此,这道题的精髓就在于爆搜,是没有任何优化的爆搜。。

#include<bits/stdc++.h>
using namespace std;
double x,y;
int n;
double dfs(double x,double y,int d){
    double ret=1e9;
    if(d==1){
        if(x<y) swap(x,y);
        return x/y;
    }
    for(int i=1;i<=d/2;i++){
        double tmp=x*(double)i/(double)d;
        ret=min(ret,max(dfs(tmp,y,i),dfs(x-tmp,y,d-i)));    
    }
    for(int i=1;i<=d/2;i++){
        double tmp=y*(double)i/(double)d;
        ret=min(ret,max(dfs(x,tmp,i),dfs(x,y-tmp,d-i)));
    }
    return ret;
}
int main(){
    scanf("%lf%lf%d",&x,&y,&n);
    printf("%.6lf",dfs(x,y,n));
    return 0;
}

 

posted @ 2017-12-15 13:21  Accelerator-D-x  阅读(109)  评论(0编辑  收藏  举报