BZOJ - 4318: OSU! (期望DP&Attention)】的更多相关文章

Description osu 是一款群众喜闻乐见的休闲软件.  我们可以把osu的规则简化与改编成以下的样子:  一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为1个长度为n的01串.在这个串中连续的 X个1可以贡献X^3 的分数,这x个1不能被其他连续的1所包含(也就是极长的一串1,具体见样例解释)  现在给出n,以及每个操作的成功率,请你输出期望分数,输出四舍五入后保留1位小数.  Input 第一行有一个正整数n,表示操作个数.接下去n行每行有一个[0,…
4318: OSU! 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4318 Description osu 是一款群众喜闻乐见的休闲软件. 我们可以把osu的规则简化与改编成以下的样子: 一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为1个长度为n的01串.在这个串中连续的 X个1可以贡献X^3 的分数,这x个1不能被其他连续的1所包含(也就是极长的一串1,具体见样例解释) 现在给出n,以及每个操作…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4318 期望DP,因为平方的期望不等于期望的平方,所以用公式递推: 第一次推错了囧,还是看这位的博客改过来的:https://blog.csdn.net/Clove_unique/article/details/62422100 代码如下: #include<iostream> #include<cstdio> #include<cstring> using nam…
这次要求$x^3$的概率和. 直接维护三个值$x$ $x^2$ $x^3$的期望. 概率的平方不等于平方的概率. #include <map> #include <ctime> #include <cmath> #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using…
[题意]有一个长度为n的01序列,每一段极大的连续1的价值是L^3(长度L).现在给定n个实数表示该位为1的概率,求期望总价值.n<=10^5. [算法]期望DP [题解]后缀长度是一个很关键的量,设g[i]表示前i个的期望后缀长度.根据全期望公式,依赖于第i-1位为0或1:(以下所有公式最后省略+(1-ai)*0) $$g[i]=a_i*(g[i-1]+1)$$ 设f[i]表示前i个的期望长度,当第i-1位为1时,f[i]相对于f[i-1]的后缀多了[ (g[i-1]+1)^3 ] - [ g…
这两道题是一样的...... 我就说一下较难的那个 OSU!: 这道15行的水题我竟然做了两节课...... 若是f[i][0]=(1-p)*f[i-1][0]+(1-p)*f[i-1][1],f[i][1]=p*(f[i-1][0]+1.0)+p*(f[i-1][1]+OOXX); 我们合并一下f[i]=p*1.0+p*OOXX=p*OX; OX:就是期望x^3的差,也就是(x+1)^3=x^3+3*x^2+3*x+1.0,中的3*x^2+3*x+1.0,这样我们要维护x^2以及x注意这里的x…
题意 中文题面,难得解释了 题目传送门 分析 考虑到概率DPDPDP,显然可以想到f(i,j)f(i,j)f(i,j)表示到第iii位末尾有jjj个111的期望值.最后输出f(n+1,0)f(n+1,0)f(n+1,0)即可 但 n<=100000n<=100000n<=100000 xxx表示连续的111的个数.所以想想怎么可以得到 x3x^3x3. 有 x3=(x−1)3+3(x−1)2+3(x−1)+1x^3=(x-1)^3+3(x-1)^2+3(x-1)+1x3=(x−1)3+3…
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=4318题解: 期望dp 如果我们能够得到以每个位置结尾形成的连续1的长度的相关期望,那么问题就好解决了. 定义g[i]表示以1位置结尾的连续1的长度的期望. 转移显然:g[i]=p[i]*(g[i]+1) 然后定义h[i]表示以1位置结尾的连续1的长度的平方的期望 由于(x+1)^2=x^2+2x+1, 所以h[i]=p[i]*(h[i-1]+2*g[i-1]+1) 最后定义f[i]表示1-…
[BZOJ4318]OSU! Description osu 是一款群众喜闻乐见的休闲软件.  我们可以把osu的规则简化与改编成以下的样子:  一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为1个长度为n的01串.在这个串中连续的 X个1可以贡献X^3 的分数,这x个1不能被其他连续的1所包含(也就是极长的一串1,具体见样例解释)  现在给出n,以及每个操作的成功率,请你输出期望分数,输出四舍五入后保留1位小数.  Input 第一行有一个正整数n,表示操作个…
期望dp. 考虑问题的简化版:一个数列有n个数,每位有pi的概率为1,否则为0.求以每一位结尾的全为1的后缀长度的期望. 递推就好了. l1[i]=(l1[i-1]+1)*p[i]+0*(1-p[i]); 再考虑一发:一个数列有n个数,每位有pi的概率为1,否则为0.求以每一位结尾的全为1的后缀长度的平方的期望. 平方的期望显然不等于期望的平方.但是平方的期望也是可以递推的. l2[i]=(l2[i-1]+2*l1[i-1]+1)*p[i]+0*(1-p[i]); 再来考虑问题,第i位的答案与第…