牛客网-2018 美团 CodeM 编程大赛-资格赛-2-可乐

ACM模版

描述


题解

贪心,这里我们其实只用取一种可乐即可,因为可乐是无限的,所以我们只需要简单算一下 max(pa[i]+(1.0p)b[i]) m a x ( p ∗ a [ i ] + ( 1.0 − p ) ∗ b [ i ] ) 即可。

代码

#include <iostream>

using namespace std;

const int MAXN = 1e4 + 10;

int n, m, k;
int a[MAXN], b[MAXN];

int main(int argc, const char * argv[])
{
    while (cin >> n >> m >> k)
    {
        for (int i = 1; i <= k; i++)
        {
            cin >> a[i] >> b[i];
        }

        int pos = 1;
        double p = 1.0 * m / n;
        double ans = p * a[1] + (1.0 - p) * b[1];
        for (int i = 2; i <= k; i++)
        {
            double tmp = p * a[i] + (1.0 - p) * b[i];
            if (tmp >= ans)
            {
                ans = tmp;
                pos = i;
            }
        }

        for (int i = 1; i <= k; i++)
        {
            printf("%d%c", i == pos ? n : 0, i == k ? '\n' : ' ');
        }
    }

    return 0;
}
全部评论

相关推荐

01-04 07:53
门头沟学院 C++
心愿便利贴:工作了以后回头再看待这个问题,从客观的视角来讲是因为每个人对自己的要求不同,学习好的人对自己的要求很高,所以觉得考不好就天塌了,认为自己学习好并且值得一份好工作的人也是一样,找不到符合自己预期的工作肯定也会觉得是侮辱,牛客上有很多名校大学生,肯定会存在这种好学生心态啊,“做题区”从来都不是贬义词,这是大部分普通人赖以生存的路径,这个有什么好嘲讽的,有“好学生心态”没有错,但是不要给自己太大的压力了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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