1 条题解

  • 0
    @ 2026-9-30 12:34:27

    C++ :

    
    #include <cstdio>
    /* 浓度 C = 溶质 / 体积,其中「溶质」用 Σ(v·c) 表示(等价于质量的 100 倍,
       因为百分浓度 C% 下第 i 份贡献的质量是 v·c/100)。
       初始:V0·C0 即初始溶质。P 直接累加;Z 撤销最后一次生效的 P(可用栈记录)。
       体积恒 >= V0 >= 1,不会除零。每次操作后输出「Vi Ci(5 位小数)」。 */
    static long long sv[10005], sc[10005];
    int main(){
        long long V, C;
        if(scanf("%lld %lld", &V, &C) != 2) return 0;
        long long S = V * C;
        int n;
        if(scanf("%d", &n) != 1) return 0;
        int top = 0;
        for(int i = 0; i < n; i++){
            char op[8];
            if(scanf("%s", op) != 1) break;
            if(op[0] == 'P'){
                long long v, c;
                scanf("%lld %lld", &v, &c);
                V += v; S += v * c;
                sv[top] = v; sc[top] = c; top++;
            }else{
                if(top > 0){
                    top--;
                    V -= sv[top]; S -= sv[top] * sc[top];
                }
            }
            printf("%lld %.5f\n", V, (double)S / (double)V);
        }
        return 0;
    }
    
    
    • 1

    信息

    ID
    2603
    时间
    1000ms
    内存
    256MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者