top1编程
← 返回题目
题解

鸡尾酒疗法

1 条题解

  • 0
    @ 2026-8-5 0:48:24

    解题思路

    治疗有效率 = 有效病例数 ÷ 总病例数。先读第一组算鸡尾酒疗法的有效率 x,再依次读其余 n-1 组算每种改进疗法的有效率 y,比较:y-x>0.05 更好、x-y>0.05 更差、否则差不多。

    参考代码

    #include <iostream>
    using namespace std;
    
    int main() {
        int n;
        cin >> n;
        double x;   // 鸡尾酒疗法有效率
        {
            int p, q;
            cin >> p >> q;
            x = (double)q / p;   // 有效率 = 有效病例数 / 总病例数
        }
        for (int i = 1; i < n; i++) {
            int p, q;
            cin >> p >> q;
            double y = (double)q / p;   // 改进疗法有效率
            if (y - x > 0.05) cout << "better" << endl;
            else if (x - y > 0.05) cout << "worse" << endl;
            else cout << "same" << endl;
        }
        return 0;
    }
    

    复杂度分析

    循环 n-1 次,n 最大 100,时间复杂度 O(n);额外空间复杂度 O(1)。

    • 1