生日快乐

[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));
}
全部评论

相关推荐

09-29 17:44
已编辑
蔚来_测(准入职员工)
//鲨鱼辣椒:见不了了我实习了四个月上周再投筛选了一天就给我挂了
点赞 评论 收藏
分享
喜欢走神的孤勇者练习时长两年半:池是池,发是发,我曾池,我现黑
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务