291312a_tải nhạc

291312a_tải nhạc一个序列长度是L,每个位置取1的概率是p,取0的概率是1-p

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

一个序列长度是L,每个位置取1的概率是p,取0的概率是1 – p。连续的n个1的得分是1 + 2 + …… + n。求分数的期望。

http://www.bnuoj.com/bnuoj/problem_show.php?pid=29140

dp[i][j]为长度是i的序列,后j个都是1的概率,f[i]是长度为i的序列的得分。(EX = ∑xi * pi, f[i]就是xi * pi)ans = ∑f[i]

dp[0][0] = 1;                                                    f[0] = 0;

dp[1][0] = 1 – p, dp[1][i] = p;                            f[1] = p;

我们考虑L = 3的情况, 可能的序列为:

000

001

010

011

100

101

110

111

考虑第1为是1,只有后面4个序列的第1位是1对答案的贡献为:p * (1 – p) * (1 – p) * 1 + p * (1 – p) * p * 1 + p * p * (1 – p) * 1 + p * p * p * 1 = p,而f[1]同样为p。

 第2位是1的序列对答案的贡献为:(1 – p) * p * (1 – p) * 1 + (1 – p) * p * p * 1 + p * p * (1 – p) * 2 + p * p * p * 2 = p + p * p。

 第3位是1的序列对答案的贡献为:(1 – p) * (1 – p) * p * 1 + (1 – p) * p * p * 2 + p * (1 – p)  * p * 1 + p * p * p * 3 = p + p * p + p * p * p。对于序列001和101来说,在第3位得分都是1,(1 – p) * (1 – p) * p * 1 + p * (1 – p)  * p * 1 = (1 – p) * p。在不考虑第3位 情况下,00和10构成dp[2][0],由于它们的第3位都是1,所以其概率为dp[2][0] * p。

由此可以推出dp[2][0] = 1 – p。并且可以依次推出dp[i][0] = 1 – p。

于是就可以这样做~~~

   for(int i=1; i<=L; i++){
            dp[i][0] = 1.0 - p;
            f[i] = 0;
            for(int j=1; j<=i; j++){
                dp[i][j] = dp[i - 1][j - 1] * p;
                f[i] += dp[i][j] * j;
            }
            ans += f[i];
        }

Jetbrains全家桶1年46,售后保障稳定

但是这样是会TLE的,有<=1000组数据,L<=1000。复杂度为O(L^2),所以1000 * 1000 * 1000 = ……     = =#。。。。QAQ

我们先手算几个数据:

f[0] = 0;

f[1] = p;

f[2] = p + p * p;

f[3] = p + p * p + p * p * p;

.

.

.

发现f[i] = ∑p^k, k = 1, 2, …, i      (⊙v⊙)…

于是,

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = 1000 + 10;
double dp[maxn][maxn], f[maxn];
int L, T;
double p, ans;
int main(){
    scanf("%d", &T);
    while(T--){
        scanf("%d%lf", &L, &p);
        ans = 0.0;
        double tmp = p;
        for(int i=0; i<L; i++){
            ans += (L - i) * tmp;
            tmp *= p;
        }
//        dp[0][0] = 1.0;
//        f[0] = 0;
//        for(int i=1; i<=L; i++){
//            dp[i][0] = 1.0 - p;
//            f[i] = 0;
//            for(int j=1; j<=i; j++){
//                dp[i][j] = dp[i - 1][j - 1] * p;
//                f[i] += dp[i][j] * j;
//            }
//            ans += f[i];
//        }
        printf("%lf\n", ans);
    }
    return 0;
}

over~ (>^ω^<)喵~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/234872.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Java知识体系最强总结(2021版)[通俗易懂]

    更新于2019-12-1510:38:00本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同进步,结交更多志同道合的朋友。特此分享给大家,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。文章目录…

  • java base64encoder包_Base64Encoder.java

    java base64encoder包_Base64Encoder.java/***Base64编码解码*可以对二进制数据生成URL安全的字符串***/publicclassBase64EncoderimplementsEncoder{/***对字节数据进行Base64编码*@paramsrc源字节数组*@return编码后的字符串*/publicStringencode(byte[]src)throwsException{String…

  • 固态硬盘坏了怎么恢复数据恢复不了_笔记本固态硬盘坏了数据能恢复吗

    固态硬盘坏了怎么恢复数据恢复不了_笔记本固态硬盘坏了数据能恢复吗今天的这篇经验和大家聊一聊关于固态硬盘坏了怎么恢复数据恢复的问题,希望能够帮助到有需要的朋友。方法/步骤 现在的电脑不用ssd简直对不起那么好的cpu,比较机械硬盘的速度才是目前整个电脑的性能瓶颈,而使用了ssd后,很多人都在说固态硬盘是不能恢复数据的,这是怎么回事呢?大家都知道传统的机械硬盘即便是数据删了,回收站清空了,只要不被大量的数据再次覆盖就可以恢复出原来的数据的,那么我什么这一点在ssd上不能用了呢?实测下来大多数默认的ssd数据丢失了都是10次有9次都恢复不了,为什么SSD的成…

  • Windows Azure AppFabric应用程序

    Windows Azure AppFabric应用程序WindowsAzureAppFabric团队在大步前进。在上个月发布服务总线队列和Topics到CTP之后,这个团队刚刚发布AppFabric应用程序到CTP。AppFabric应用程序简化了将服务组成一个应用程序的任务,但实际上,它似乎重写了平台作为服务的意义(PaaS)

    2022年10月16日
  • PrepareStatement概述

    PrepareStatement概述PrepareStatement概述Statement安全问题Statement执行,其实是拼接sql语句的。先拼接sql语句,然后在一起执行。 Stringsql=”select*fromt_userwhereusername='”+username+”‘andpassword='”+password+”‘”; UserDaodao=ne…

  • 刚入校的孩子写了一封信电脑

    刚入校的孩子写了一封信电脑

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号