zoukankan      html  css  js  c++  java
  • LightOJ 1274 Beating the Dataset

    题意是一个人做ACM题,这道题的数据的字节数和提问数已经给出,答案只有YES或NO。那个人做不来这道题,只能蒙,一开始一定蒙YES,数据会告诉你蒙对了没有,之后蒙的都是之前的正确答案,求蒙错的数据组数的期望数量。

    因为字节数和提问数已经给出,所以立方程组可以算出来YES和NO的个数,设为X,Y。题目可以抽象为某个01串全排列该位置与前一个位置不同或者第一位为0的数量期望。

    每个1贡献的期望是各个0在它前面或者后面两种所以是2 * X * Y,每个0额外贡献了处在第一位期望也就是Y。

    所以得出公式(2 * X * Y + Y) / (X + Y)。

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        int t;
        scanf("%d", &t);
        int cas = 0;
        while(t--) {
            int n, s;
            scanf("%d %d", &n, &s);
            double x = s - 2 * n, y = n - x;
            double ans = 0;
            ans = (2.0 * x * y + y) / (double) n;
            printf("Case %d: %.7lf
    ", ++cas, ans);
        }
    }
  • 相关阅读:
    python 操作mysql
    openstack 与 VMware(vSphere) 不同
    python redis 实现订阅发布
    python redis 管道
    python rabbitMQ 实现RPC
    python 连接redis
    使用gdb
    在应用程序中如何打印调用栈
    如何使用coredump
    linux中常用命令
  • 原文地址:https://www.cnblogs.com/lonewanderer/p/5746649.html
Copyright © 2011-2022 走看看