Coins

题意:一开始所有n个硬币都是反面朝上的,每次必须拿k个来抛,抛的人足够聪明,问m次之后向上的硬币的期望。

首先说了这个足够聪明的意思,就是只要向反面的有k个就不会sb地去拿向正面的来抛,想了一会之后就觉得是个概率dp的转移,

然而一开始想漏了个组合数的加权,但在+1的提醒下搞通了,但是分析了下,这是nmk的时间复杂度,

1e6还有个1e3的大T,emmm理论上会TLE的,但结果看网上题解,都是跟自己思路差不多,所以也是很迷。

嗯,转移过程其实很简单,dp[i][j]就是第i次抛了之后j个硬币向上的概率,所以如果n-j>=k很明显,这是全部拿向反面的来抛就行,那么dp[i+1][j+kk]=dp[i][j]*0.5的k次方*k个里面有kk个向正面的组合数

而n-j<的话,那么就得那一些向正面的来抛了,剩下的正面的就j-(k-(n-j))也就是n-k个,那么dp[i+1][n-k+kk]=dp[i][j]*0.5的k次方*k个里面有kk个向正面的组合数

 #include<cstdio>
const int N=;
double cf05[N],c[N][N],dp[N][N];
void init(){
for(int i=;i<=;i++){
c[i][]=1.0;
for(int j=;j<=i;j++){
if(j<=i/) c[i][j]=c[i-][j-]+c[i-][j];
else c[i][j]=c[i][i-j];
}
}
cf05[]=1.0;
for(int i=;i<=;i++) cf05[i]=cf05[i-]*0.5;
}
int main(){
init();
int t,n,m,k;
scanf("%d",&t);
while(t--){
scanf("%d%d%d",&n,&m,&k);
for(int i=;i<=m;i++)
for(int j=;j<=n;j++) dp[i][j]=0.0;
dp[][]=1.0;
for(int i=;i<m;i++){
for(int j=;j<=n;j++){
if(dp[i][j]==0.0) continue;
for(int kk=;kk<=k;kk++){
if(n-j>=k) dp[i+][j+kk]+=dp[i][j]*cf05[k]*c[k][kk];
else dp[i+][n-k+kk]+=dp[i][j]*cf05[k]*c[k][kk];
}
}
}
double ans=0.0;
for(int i=;i<=n;i++) ans+=dp[m][i]*i;
printf("%.3f\n",ans);
}
return ;
}

怪怪的哦

最新文章

  1. JAVA NIO Scatter/Gather(矢量IO)
  2. [Linux &amp; Mysql] Linux下Mysql的基本操作
  3. 转 MYSQL学习(一)
  4. Example of Get_File_Name Function in Oracle Forms
  5. 向post请求中写入数据,最终保存在了HttpWebRequest.Params中
  6. iOS中常见的设计模式——单例模式\委托模式\观察者模式\MVC模式
  7. swat主流域文件(file.cio)参数详解——引自http://blog.sciencenet.cn/blog-922140-710636.html
  8. mongodb修改器
  9. 0环境设置 - AUTOTRACE设置
  10. BZOJ2594: [Wc2006]水管局长数据加强版
  11. 【Cocos2d入门教程一】Cocos2d-x环境搭建
  12. 经典好文:android和iOS平台的崩溃捕获和收集
  13. map——映射(message.cpp)
  14. Swift - 经纬度位置坐标与真实地理位置相互转化
  15. [转载] Quartz作业调度框架
  16. Python 使用Pillow模块生成验证码
  17. NLP常用信息资源
  18. ef延迟加载不到导航属性问题
  19. LCD之mipi DSI接口驱动调试流程【转】
  20. 0077 web.xml中配置Spring MVC时,Servlet-name上报Servlet should have a mapping的错误

热门文章

  1. phpstudy的设置目录列表显示403找不到
  2. python学习-8 用户有三次机会登陆
  3. Scrapy爬虫-win7下创建运行项目
  4. VMware与主机联网设置
  5. Sharepoint2010设置自定义母版页
  6. pm2 常用操作
  7. 4、Wepy-Redux基本使用 参考自https://blog.csdn.net/baidu_32377671/article/details/86708019
  8. React会自动把虚拟DOM数组展开
  9. php压缩图片
  10. python实现蓝牙通信