暑末 Day1 Face
来源:互联网 发布:nginx点播系统 编辑:程序博客网 时间:2024/05/16 15:44
//伪概率DP#include<bits/stdc++.h>using namespace std;int hm, high, low, n, m, c, a, b, t;int delta;double dp[810][16001], sum[16001];inline int read(){ int num = 0; char c; while((c = getchar()) == ' ' || c == '\r' || c == '\n'); num = c - '0'; while(isdigit(c = getchar())) num = num*10 + c - '0'; return num;}inline void getInit(){ memset(dp, 0, sizeof(dp));}int main(){ t = read(); while(t--){ m = read(); c = read(); n = read(); a = read(); b = read(); getInit(); delta = b - a + 1; hm = m + c; low = n * a; high = n * b; if(high < m){ printf("0.00000\n"); continue; } else if(low > hm){ printf("0.00000\n"); continue; } for(int i = a; i <= b; i++) dp[1][i] = 1; for(int i = 1; i <= n; i++){ dp[i][a*i] = 1; dp[i][b*i] = 1; } for(int i = 2; i <= n; i++){ memset(sum, 0, sizeof(sum)); for(int j = i*a-b; j <= i*b-a; j++) sum[j] = sum[j-1] + dp[i-1][j]; for(int j = i*a+1; j <= i*b-1; j++) //for(int k = a; k <= b; k++) //if(j - k >= 0) dp[i][j] += sum[j-a] - sum[j-b-1]; //dp[i-1][j-k]; } double ans = 0; long long final = 1; for(int i = 1; i <= n; i++) final *= (long long)delta; for(int i = m; i <= hm; i++) ans += dp[n][i]; ans /= (double)final; printf("%.5lf\n", ans); } return 0;}
阅读全文
0 0
- 暑末 Day1 Face
- 暑末 Day2 T3
- 暑末 Day3 T3
- 暑末 Day3 T1 Sum
- FACE
- Face++
- Day1
- day1
- day1
- day1
- day1
- day1
- day1
- Day1
- DAY1
- day1
- day1
- day1
- CentOS中安装与配置Tomcat-7的方法
- python模块之zipfile
- xamarin android异步更新UI线程
- 1285:最简单的循环
- Asp.net 开发中常用对象
- 暑末 Day1 Face
- POJ 3233(矩阵快速幂的转化法)
- Bootstrap3.0学习第三轮(栅格系统案例)
- struts入门案例 登录
- 操作系统------进程间通信
- 最新Linux(CentOS5.5)搭建GFS系统--iSCSI+GFS实现网络存储
- iptables学习笔记
- Task类使用总结
- 获取微信公众号授权失败, 请稍后重试! 公众平台返回原始数据为: 错误代码-40164