BZOJ3450 Tyvj1952 Easy
来源:互联网 发布:golang defer func 编辑:程序博客网 时间:2024/05/21 17:09
f[i]表示前i次操作,结尾最长连续1的期望,g[i]表示前i次操作的答案
p表示这次为1的概率
f[i]=p*(f[i-1]+1)+(1-p)*0
g[i]=(1-p)*g[i-1]+p*(g[i-1]-f[i-1]^2+(f[i-1]+1)^2)
化简得
f[i]=p*(f[i-1]+1);
g[i]=g[i-1]+p*(2*f[i-1]+1);
并不需要long double -_-
#include<iostream>#include<cstdlib>#include<cstdio>#include<cstring>#include<ctime>#include<cmath>#include<algorithm>#include<iomanip>#include<queue>#include<map>#include<bitset>#include<stack>#include<vector>#include<set>using namespace std;#define MAXN 300010#define MAXM 1010#define INF 1000000000#define MOD 1000000007#define ll long long#define eps 1e-8int n;char s[MAXN];double f[MAXN],g[MAXN];int main(){int i;scanf("%d%s",&n,s+1);for(i=1;i<=n;i++){double p;if(s[i]=='o'){p=1;}if(s[i]=='x'){p=0;}if(s[i]=='?'){p=0.5;}f[i]=p*(f[i-1]+1);g[i]=g[i-1]+p*(2*f[i-1]+1);}printf("%.4lf\n",g[n]);return 0;}/**/
0 0
- BZOJ3450: Tyvj1952 Easy
- 【bzoj3450】 Tyvj1952 Easy
- [BZOJ3450] Tyvj1952 Easy
- bzoj3450 Tyvj1952 Easy
- BZOJ3450 Tyvj1952 Easy
- 期望【bzoj3450】Tyvj1952 Easy
- [BZOJ3450] Tyvj1952 Easy
- BZOJ3450: Tyvj1952 Easy
- bzoj3450: Tyvj1952 Easy
- BZOJ3450: Tyvj1952 Easy
- 【bzoj3450】 Tyvj1952 Easy
- bzoj3450: Tyvj1952 Easy
- bzoj3450 Tyvj1952 Easy
- BZOJ3450 Tyvj1952 Easy
- 【BZOJ3450】【Tyvj1952】Easy 概率DP
- 【BZOJ3450】Tyvj1952 Easy【期望DP】
- 【bzoj3450】Tyvj1952 Easy 期望DP
- bzoj3450 Tyvj1952 Easy 概率期望
- 十大机器学习算法之支持向量机(三)
- 多线程(四)线程的同步之线程安全问题
- Effective c++ 第一章总结
- Spark安装与环境配置
- POJ-1276 Cash Machine(多重背包问题)
- BZOJ3450 Tyvj1952 Easy
- mysql能用localhost连接不能使用127.0.0.1连接的问题之一
- 树-堆结构练习——合并果子之哈夫曼树
- cpu测试
- “Several ports ( 8088, 8009) required by Tomcat v6.0 Server at localhost are already in use. The ser
- (三十五)、File类
- Fox And Two Dots
- 三、SQLite数据库
- HttpClient下载图片和向服务器提交数据实例