dp[k]用类似于低配版的这道题的做法求出,如下;

然后就从k逆推到0就好了

 #include<bits/stdc++.h>
using namespace std;
const int MX = ;
double dp[MX];
int x[MX];
int main(){
int T,n,k;
scanf("%d",&T);
for(int cas=;cas<=T;cas++){
memset(dp,,sizeof(dp));
scanf("%d%d",&n,&k);
int a=,b;
double sum1=,sum2=;
for(int i=;i<n;i++) {
scanf("%d",&x[i]);
if(x[i]>) {sum1+=x[i];a++;}
else sum2+=abs(x[i]);
}
if(a==){
printf("Case %d: -1\n",cas);
continue;
}
b=n-a;
if(a) sum1/=a;
if(b) sum2/=b;
k=min(k,b);
dp[k]=sum1+(b-k)*sum2/a;
for(int i=k-;i>=;i--){
dp[i]=(dp[i+]+sum2)*(b-i);
dp[i]+=sum1*a;
dp[i]/=n-i;
}
printf("Case %d: %.7f\n",cas,dp[]);
}
return ;
}

最新文章

  1. C++迪杰斯特拉算法求最短路径
  2. Tomcat启动后,从spring容器中获取Bean和ServletContext
  3. 20145218&amp;20145240 《信息安全系统设计基础》实验三 实时系统的移植
  4. android QQ消息左滑动删除实例(优化版SwipeListViewEX)
  5. html基础总结版
  6. 你会用Python做出装逼的东西吗
  7. 准备在新项目中使用pgsql【资源收集】
  8. 练习2 G题 - 数值统计
  9. [Struts2学习笔记] -- 输入校验
  10. python 函数形参四种格式
  11. CodeForces 610B Vika and Squares
  12. Ambari2.5.3卸载smartsense
  13. ES6中的类
  14. 初识Http协议抓包工具—Fiddler
  15. Guava常用方法
  16. http_server.go
  17. RecyclerView实现一个页面有多种item,每个item有多个view,并且可以让任意item的任意view自定义监听,通过接口方法进行触发操作
  18. 剑指offer:1.找出数组中重复的数(java版)
  19. js中字符替换函数String.replace()使用技巧
  20. vs widows服务的开发

热门文章

  1. 0005 uwsgi配置
  2. &lt;input type=&quot;file&quot;&gt;文件上传
  3. crontab定时任务打包备份文件并删除过期文件
  4. CF-478C Table Decorations (贪心)
  5. blob - 二进制文件流下载
  6. HDU1241 Oil Deposits(dfs+连通块问题)
  7. 手机内存卡RAW无法格式化的解决办法
  8. 巨杉数据库入选年度Gartner Peer Insights报告,获得市场高度评价
  9. OpenGL 编程指南 (1)
  10. CSS技巧!鼠标经过图片抖动效果