1 条题解

  • 0
    @ 2025-10-8 17:02:14
    #include <bits/stdc++.h>
    using namespace std;
    
    double dfs(double x, double y, int k) {
        if (k == 1) return max(x, y) / min(x, y);
        double ans = 999999999.0;
        for (int i = 1; i < k; i++) {
            ans = min(ans, max(dfs(x, y / k * i, i), dfs(x, y / k * (k - i), k - i)));
            ans = min(ans, max(dfs(x / k * i, y, i), dfs(x / k * (k - i), y, k - i)));
        }
        return ans;
    }
    
    int main() {
        double x, y; int n;
        scanf("%lf%lf%d", &x, &y, &n);
        printf("%.6lf\n", dfs(x, y, n));
        return 0;
    }
    
    • 1

    信息

    ID
    2677
    时间
    2000ms
    内存
    128MiB
    难度
    3
    标签
    递交数
    19
    已通过
    18
    上传者