首先要推出dp[i]的期望方程,会发现每一项都和dp[0]相关,

那我们将dp[i]设为和dp[0]有关的式子dp[i]=a[i]*dp[0]+b[i],然后再回代到原来的期望方程里

然后进行整理,可以发现两个系数a[i],b[i]是可以逆推的,并且通过求出a[0],b[0]可以求出dp[0]

#include<bits/stdc++.h>
using namespace std;
#define maxn 1050
double A[maxn],B[maxn],p[maxn];
int main(){
double K1,K2,K3;
int t,a,b,c,n;
cin>>t;
while(t--){
memset(p,,sizeof p);
memset(A,,sizeof A);
memset(B,,sizeof B);
cin>>n>>K1>>K2>>K3>>a>>b>>c;
double base=(double)/(K1*K2*K3); for(int i=;i<=K1;i++)
for(int j=;j<=K2;j++)
for(int k=;k<=K3;k++)
if(i==a && j==b && k==c)
p[]+=base;//跳回0的概率
else p[i+j+k]+=base;//跳i+j+k步的概率 for(int i=n;i>=;i--){
for(int j=;j<=K1+K2+K3;j++)
A[i]+=p[j]*A[i+j],B[i]+=p[j]*B[i+j];
A[i]+=p[],B[i]+=;
} printf("%.8lf\n",B[]/(-A[]));
}
}

最新文章

  1. Dropzone.js实现文件拖拽上传
  2. Atitit opencv版本新特性attilax总结
  3. MYSQL介绍安装及一些问题解决
  4. angularJS中directive与controller之间的通信
  5. CSS实现垂直居中
  6. 高级特性(2)- XML
  7. javascript windows对象
  8. SqlSugar ORM 入门到精通【一】入门篇
  9. Excel 2010高级应用-饼图(四)
  10. 关于Intellij Idea导出可执行打jar
  11. LaTeX技巧892: Ubuntu 安装新版本TeXLive并更新
  12. mfc简单框架的分析和原理记录
  13. Android精通之AsyncTask与ListView讲解
  14. Codeforces 817
  15. 【嵌入式】——arm裸机开发 step by step 之 串口通信
  16. python 笔记 2017
  17. vue中使用codemirror
  18. Timus 1005 解题报告
  19. cmake函数參数解析
  20. MySQL 数据库常用命令小结

热门文章

  1. linux每日命令(3):which命令
  2. 压缩与解压缩 gzip bzip2 tar 命令
  3. 传输文件到docker容器
  4. Java new和getInstance
  5. Batch - 重定向符号Redirection &gt;
  6. Linux基本使用命令
  7. VS 2015 Download
  8. BASS HOME
  9. 在线暴躁:&lt;script /&gt;问题
  10. JavaWeb学习篇之----Tomcat中配置数字证书以及网络传输数据中的密码学知识