ARC132E题解
简要题意
有
求无法操作时方格为左的期望数。
数据范围:
题解
首先看到这个操作我们可以把每一段方格看成一个整体,以空为分界线,然后最自然的思路就是对于每一个整体考虑对答案的贡献。
然后大概说一下我的想法。就是对于第
- 对于没被更新的情况,需要满足对于它左边的空都向左走,右边的空都向右走,贡献就是原始区间中左方格的个数。
- 对于被更新的情况,如果最后被左边向右的覆盖则无贡献,否则就贡献区间长度。
然后经过一番推导你会发现,第二种情况求解的复杂度似乎是
我们可以从最终状态入手。
考虑最终的方格状态一定是左边一段左方格,右边一段右方格,然后中间的一段是原始状态。原因显然。
所以我们只用讨论最后哪一段没有被覆盖过,直接枚举是
于是我们可以设计一个状态
然后对于枚举段的右边和左边其实是等价的,所以这段的答案就是
其中
代码
signed main(){
for(int i = 1; i <= n; ++i)
if(a[i] == '<')++cnt;
else if(a[i] == '.')s[++tot] = i, c[tot] = cnt;
c[++tot] = cnt; f[1] = 1;
for(int i = 2; i <= tot; ++i)f[i] = 1ll * f[i - 1] * (p + 1 - qmi(2 * i - 2, p - 2)) % p;
for(int i = 1; i <= tot; ++i)ans = (0ll + ans + 1ll * f[i] * f[tot - i + 1] % p * (c[i] - c[i - 1] + s[i - 1])) % p;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)