【期望DP】BZOJ3450- Tyvj1952 Easy
---恢复内容开始---
【题目大意】
有n次点击要做,成功了就是o,失败了就是x,分数是按comb计算的,连续a个comb就有a*a分,comb就是极大的连续o。求期望分数。
【思路】
比之前的OSU!简单好多的OSU。
设f[i]为期望分数,g[i]为期望末尾combo的长度。
①s[i]='x',f[i]=f[i-1],g[i]=0;
②s[i]='o',f[i]=f[i-1]+(g[i-1]+1)^2-g[i-1]^2=f[i-1]+2*g[i-1]+1,g[i]=g[i-1]+1
③s[i]='?',①*50%+②*50%
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 const int MAXN=300000+50; 7 int n; 8 char s[MAXN]; 9 double f[MAXN],g[MAXN]; 10 11 int main() 12 { 13 scanf("%d",&n); 14 scanf("%s",s+1); 15 f[0]=g[0]=0; 16 for (int i=1;i<=n;i++) 17 { 18 if (s[i]=='x') f[i]=f[i-1],g[i]=0; 19 if (s[i]=='o') f[i]=f[i-1]+2*g[i-1]+1,g[i]=g[i-1]+1; 20 if (s[i]=='?') f[i]=f[i-1]+g[i-1]+0.5,g[i]=(g[i-1]+1)/2; 21 } 22 printf("%.4lf",f[n]); 23 return 0; 24 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?