生日快乐

[SCOI2009]生日快乐

https://ac.nowcoder.com/acm/problem/20272

思路:直接根据题意爆搜(dfs)就可以了。
代码如下:

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;
double x,y;
int n;
double dfs(double x,double y,int cnt){
    if(cnt==1){
        if(x<y) swap(x,y);      //long / short
        return x/y;
    }
    double minn=10000.0,maxx=0.0;
    double xx=x/cnt,yy=y/cnt;
    for(int i=1;i<cnt;i++){
        maxx=dfs(x-xx*i,y,cnt-i);
        maxx=max(maxx,dfs(xx*i,y,i));
        minn=min(maxx,minn);
    }
    for(int i=1;i<cnt;i++){
        maxx=dfs(x,y-yy*i,cnt-i);
        maxx=max(maxx,dfs(x,yy*i,i));
        minn=min(maxx,minn);
    }
    return minn;
}
int main()
{
    scanf("%lf %lf %d",&x,&y,&n);
    printf("%.6f\n",dfs(x,y,n));
}
全部评论

相关推荐

10-30 23:23
已编辑
中山大学 Web前端
去B座二楼砸水泥地:这无论是个人素质还是专业素质都👇拉满了吧
点赞 评论 收藏
分享
尊尼获获:闺蜜在哪?
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务