博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Schedule(Hackerrank Quora Haqathon)
阅读量:6034 次
发布时间:2019-06-20

本文共 1834 字,大约阅读时间需要 6 分钟。

Problem Statement

At Quora, we run all our unit tests across many machines in a test cluster on every code push.

One day, we decided to see if we could optimize our test cluster for cost efficiency by using only one machine to run all N tests.

Suppose we know two things about each test: the time needed to run this test, Ti, and the probability that this test will pass, Pi.

Given these as input, come up with the minimum expected time (based on the optimal ordering of the tests) of getting “go or no go” feedback on the code push, i.e. the expected time when we understand that either i) at least one test has failed, or that ii) all tests have passed.

Constraints

  • Accuracy threshold for evaluating floats: 106
  • 1N100
  • 1Ti100
  • 0Pi1

Input Format

Line 1: One integer N

Line 2..N+1: One integer Ti and one float Pi separated by one space.

Output Format

Line 1: One float, the minimum expected time

Sample Input

33 0.17 0.59 0.2

Sample Output

4.04

很久之前看的一道题,标签是easy可就是想不到如何做。

问了woshilalala之后,才豁然开朗。对于这种题我就是束手无策。

这种贪心的题目,首先可以假设n = 2. 从而总结出他们之间的关系。然后推广到多个的情况。

附上代码:

1 #include 
2 #include
3 using namespace std; 4 5 int t[100], id[100]; 6 double p[100]; 7 8 bool cmp(int i, int j) { 9 return (t[i] * (1.0 - p[j]) < t[j] * (1.0 - p[i]));10 }11 12 int main(void) {13 int N, i;14 scanf("%d", &N);15 16 for (i = 0; i < N; i++) {17 scanf("%d %lf", t + i, p + i);18 id[i] = i;19 }20 21 sort(id, id + N, cmp);22 23 double ans = 0.0, c = 1.0;24 int s = 0.9;25 for (i = 0; i < N - 1; i++) {26 s += t[id[i]];27 ans += c * (1 - p[id[i]]) * s;28 c *= p[id[i]];29 }30 s += t[id[N-1]];31 ans += c * s;32 33 printf("%.17f\n", ans);34 35 return 0;36 }

 

转载于:https://www.cnblogs.com/Stomach-ache/p/4237130.html

你可能感兴趣的文章
数字通信原理笔记(一)---概述
查看>>
HDU 2243 考研路茫茫——单词情结(自动机)
查看>>
Dubbo OPS工具——dubbo-admin & dubbo-monitor
查看>>
如何将OpenCV中的Mat类绑定为OpenGL中的纹理
查看>>
CutyCapt
查看>>
Dungeon Master ZOJ 1940【优先队列+广搜】
查看>>
解决https://localhost:1158/em 页面无法打开的问题
查看>>
[Cocoa]深入浅出Cocoa之Core Data(4)- 使用绑定
查看>>
原理:什么是Quadtrees?(转)
查看>>
记:返回方法参数的值(或多个值),
查看>>
Effective C++ 的52个条款列表
查看>>
c#读取ini文件
查看>>
一阶微分方程的求解
查看>>
其它 Helper
查看>>
监控利器Prometheus初探
查看>>
foreach遍历打印表格
查看>>
Oracle笔记(中) 多表查询
查看>>
Delphi 中的 XMLDocument 类详解(5) - 获取元素内容
查看>>
差异分析定位Ring 3保护模块
查看>>
2013年7月12日“修复 Migration 测试发现的 Bug”
查看>>