Schedule(优化测试)
来源:互联网 发布:网络歌手好听的歌2008 编辑:程序博客网 时间:2024/05/18 02:01
简单地说下题目
有n个test case,我们已经知道这n个test case的运行时间T[0],T[1],..., T[n-1],以及每个test case成功pass的概率P[0], P[1], ... ,P[n-1];
现在要求设定test case的顺序,使得按该顺序运行这些test case的期望时间最小,
输入:
Line 1: One integer
Line 2..
输出
Line 1: One float, the minimum expected time
Sample Input
33 0.17 0.59 0.2
Sample Output
4.04
可以用类似冒泡排序的算法做,比较交换两个相邻元素后期望运行时间是否减小,若是则交换,若不是则不交换;double solve(vector<pair<int,double> > &A){int n=A.size();if(n==1) return A[0].first;int T=A[0].first;double P=1-A[0].second;double r=T*P;for(int i=1;i<n;i++){T+=A[i].first;P/=(1-A[i-1].second);P*=(A[i-1].second*(1-A[i].second));r+=T*P;}P = (P/(1-A[n-1].second))*A[n-1].second;r+=T*P;for(int i=n;i>1;i--){T=A[0].first; P=1-A[0].second;for(int j=1;j<i;j++){double old = T*P + (T+A[j].first)*(P/(1-A[j-1].second))*A[j-1].second*(1-A[j].second);double cur = (T-A[j-1].first+A[j].first)*(P/(1-A[j-1].second))*(1-A[j].second)+(T+A[j].first)*P*A[j].second;if(cur<old){ swap(A[j],A[j-1]); r = r-old+cur;T+=A[j-1].first; P*=A[j-1].second;}else{ T+=A[j].first; P=(P/(1-A[j-1].second))*A[j-1].second*(1-A[j].second);}}}return r;}
0 0
- Schedule(优化测试)
- SCHEDULE 简单测试
- 基于rails的schedule网站开发(15):学习如何测试
- schedule()函数(重点)
- schedule()函数(重点)
- schedule()函数(重点)
- SCHEDULE(调度程序)
- schedule()函数(重点)
- Schedule
- schedule
- schedule
- schedule()
- schedule
- schedule
- Schedule
- Schedule
- Leetcode(207)Course Schedule (210)Course Schedule II
- Machine Schedule (二分匹配)
- A*算法入门
- Java中Runnable和Thread的区别(转载)
- PHP相关系列 - 蚂蚁变大象:浅谈常规网站是如何从小变大的
- Android之系统架构
- 更改git bash默认的路径
- Schedule(优化测试)
- JAVA冒泡排序和折半查找算法
- CCF练习心得
- .Net程序测试使用阿里云OCS开放缓存服务
- .嵌入式jetty启动spring(java配置方式),junit测试用.标准spring 配置(java config) 嵌入式jetty9启动
- URL转义
- unity之数据库
- Downloading love
- 进程间通信方式及比较