2021牛客暑期多校训练营5 B、Boxes

Boxes

https://ac.nowcoder.com/acm/contest/11256/B

题目大意

你有个盒子,每个盒子内存在可能有黑球和白球中的一种,打开每个盒子都有一个代价,你还有一次询问裁判的机会,当然询问裁判代价为,你需要告诉裁判这个盒子每个盒子里面的球颜色,你需要花费的最小代价是多少?

Solution

考点:思维

首先我们不询问裁判的话,我们就要把个盒子全部打开,代价为

如果我们询问裁判,那么想想我们是不是最多只需要打开个盒子,并且如果用代表白球代表黑球如下分析。

考虑开次盒子结束,如果裁判告诉我们有个白球或者个黑球用二进制表示那就是这样的时候结束,那么我们这次代价就只有

考虑开次盒子结束,那么我们要先开最小花费的那个,并且结束的要求是或者,并且还需要对上裁判给你的颜色,所以这里应该概率多乘一个,那么这种概率计算为

考虑开次盒子结束,那么我们结束的要求就是或者,那么这种概率计算为

以此类推,把开盒子代价排序然后求前缀和处理就行了。

const int N = 1e6 + 7;
int n;
double C;
double p[N];

int solve() {
    cin >> n >> C;
    for (int i = 1; i <= n; ++i) cin >> p[i];
    sort(p + 1, p + 1 + n);
    for (int i = 1; i <= n; ++i) p[i] += p[i - 1];

    double res = C;
    for (int i = 1; i < n; ++i)  res += p[i] * pow(0.5, n - i);

    res = min(res, p[n]);
    printf("%.12f\n", res);
    return 1;
}
2021牛客暑期多校训练营 文章被收录于专栏

))补题-ing

全部评论

相关推荐

梦倩倩:同学,瞅瞅我司,医疗独角兽,校招刚开,名额有限,先到先得,****最新动态,绿灯直达,免笔试~
我的秋招日记
点赞 评论 收藏
分享
亲爱滴达瓦里氏:又有嵌软又有FPGA又有硬件的,三个方向显得你的简历太杂糅了,展示不出你在某一个方向有哪些技术栈。基本上也不会有企业会去招一个本科的全栈工程师。HR一般是看你的技术栈是否和招聘要求匹配才发面试的。如果你想三个方向都试试的话还是建议你分成三份不同的简历根据不同岗位来投。多看看****或牛客上面的招聘信息,根据上面要求的技术栈来写简历。看了你的帖子经历这一块还是过关的,不过看的每个方向都会一点,但每个方向优势都不突出。 还有就是要海投,你这才几十份算不了啥。去年投了一两百份的大有人在。多去跑跑线下招聘吧,有机会继续搞份实习,后面转正机会大些。有条件就多往北上广深投吧。武汉竞争还是太激烈了。
我的秋招日记
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务