【题解】LuoGu1365:WJMZBMR打osu! / Easy

博客围绕一道期望DP题展开,定义f[i]为第i位时期望得分,g[i]为第i位时o期望长度。针对当前字符s[i]的不同情况('o'、'x'、'?')进行分类讨论,得出相应的递推公式,还指出f[i]、g[i]只与f[i - 1]、g[i - 1]有关可滚动处理。

原题传送门
这是一道期望dp题
f [ i ] 表 示 第 i 位 时 期 望 得 分 , g [ i ] 表 示 第 i 位 时 o 期 望 长 度 f[i]表示第i位时期望得分,g[i]表示第i位时o期望长度 f[i]i,g[i]io
对于当前字符 s [ i ] s[i] s[i],分类讨论:

  • s [ i ] = ′ o ′ : g [ i ] = g [ i − 1 ] + 1 s[i]='o':g[i]=g[i-1]+1 s[i]=o:g[i]=g[i1]+1, f [ i ] = g [ i ] 2 = ( g [ i − 1 ] + 1 ) 2 = g [ i − 1 ] 2 + 2 g [ i − 1 ] + 1 = f [ i − 1 ] + 2 g [ i − 1 ] + 1 f[i]=g[i]^2=(g[i-1]+1)^2=g[i-1]^2+2g[i-1]+1=f[i-1]+2g[i-1]+1 f[i]=g[i]2=(g[i1]+1)2=g[i1]2+2g[i1]+1=f[i1]+2g[i1]+1
  • s [ i ] = ′ x ′ : g [ i ] = 0 , f [ i ] = f [ i − 1 ] s[i]='x':g[i]=0,f[i]=f[i-1] s[i]=x:g[i]=0,f[i]=f[i1]
  • s [ i ] = ′ ? ′ ( 把 上 面 两 个 方 程 合 并 ) : g [ i ] = 0 2 + g [ i − 1 ] + 1 2 = g [ i − 1 ] + 1 2 , f [ i ] = f [ i − 1 ] 2 + f [ i − 1 ] + 2 g [ i − 1 ] + 1 2 = f [ i − 1 ] + g [ i − 1 ] + 0.5 s[i]='?'(把上面两个方程合并):g[i]=\frac{0}{2}+\frac{g[i-1]+1}{2}=\frac{g[i-1]+1}{2},f[i]=\frac{f[i-1]}{2}+\frac{f[i-1]+2g[i-1]+1}{2}=f[i-1]+g[i-1]+0.5 s[i]=?():g[i]=20+2g[i1]+1=2g[i1]+1,f[i]=2f[i1]+2f[i1]+2g[i1]+1=f[i1]+g[i1]+0.5

再发现: f [ i ] , g [ i ] 只 与 f [ i − 1 ] , g [ i − 1 ] 有 关 , 顺 手 滚 动 掉 f[i],g[i]只与f[i-1],g[i-1]有关,顺手滚动掉 f[i],g[i]f[i1],g[i1]
Code:

#include <bits/stdc++.h>
using namespace std;
double f[2], g[2];
int n;

int main(){
	scanf("%d", &n);
	for (int i = 1; i <= n; ++i){
		int p = i & 1;
		char c = getchar();
		for (; c != 'x' && c != 'o' && c != '?'; c = getchar());
		if (c == 'o') g[p] = g[p ^ 1] + 1, f[p] = f[p ^ 1] + 2 * g[p ^ 1] + 1; else
		if (c == 'x') g[p] = 0, f[p] = f[p ^ 1]; else g[p] = (g[p ^ 1] + 1) / 2, f[p] = f[p ^ 1] + g[p ^ 1] + 0.5;
	}
	printf("%.4f\n", f[n & 1]);
	return 0;
}
【博士论文复现】【阻抗建模、验证扫频法】光伏并网逆变器扫频与稳定性分析(包含锁相环电流环)(Simulink仿真实现)内容概要:本文档围绕“博士论文复现”主题,重点介绍了光伏并网逆变器的阻抗建模与扫频法稳定性分析,涵盖锁相环和电流环的Simulink仿真实现。文档旨在通过完整的仿真资源和代码帮助科研人员复现相关技术细节,提升对新能源并网系统动态特性和稳定机制的理解。此外,文档还提供了大量其他科研方向的复现资源,包括微电网优化、机器学习、路径规划、信号处理、电力系统分析等,配套MATLAB/Simulink代码与模型,服务于多领域科研需求。; 适合人群:具备一定电力电子、自动控制或新能源背景的研究生、博士生及科研人员,熟悉MATLAB/Simulink环境,有志于复现高水平论文成果并开展创新研究。; 使用场景及目标:①复现光伏并网逆变器的阻抗建模与扫频分析过程,掌握其稳定性判据与仿真方法;②借鉴提供的丰富案例资源,支撑博士论文或期刊论文的仿真实验部分;③结合团队提供的算法与模型,快速搭建实验平台,提升科研效率。; 阅读建议:建议按文档目录顺序浏览,优先下载并运行配套仿真文件,结合理论学习与代码调试加深理解;重点关注锁相环与电流环的建模细节,同时可拓展学习其他复现案例以拓宽研究视野。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值