题目链接

考虑最后形态,一定是有某一个区间 \([l,r]\) 保持初始的样子, \(l\) 前面都是 <,\(r\) 后面都是 >

这个区间一定是某两个相邻圆点的位置。设 \(f_i\) 为前 \(i\) 个数全部被覆盖成 < 的概率。设 \(x\) 为 \(l\) 前面圆点的数量,\(y\) 为 \(r\) 后面圆点的数量,那么区间 \([l,r]\) 的概率就是 \(f_{x}\times f_{y}\)(\(y\) 那里是对称的)。同时区间的 < 数量我们也是好求的。

考虑如何求出 \(f_i\),从 \(f_{i-1}\) 转移。此时 \(i\) 这个圆点有 \(2n\) 种选择(方向两种,时间 \(n\) 种)。唯一不合法的是在第一次就往右走。所以 \(f_{i}=f_{i-1}\times \frac{2n-1}{2n}\)

// LUOGU_RID: 139275577
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5,P=998244353;
char s[N];
int inv[N],n,f[N],c,g[N],ans,nx[N];
int main()
{
inv[1]=1;
for(int i=2;i<N;i++)
inv[i]=1LL*(P-P/i)*inv[P%i]%P;
scanf("%d%s",&n,s+1);
for(int i=f[0]=1;i<=n;i++)
c+=s[i]=='.',g[i]=g[i-1]+(s[i]=='<'),f[i]=1LL*f[i-1]*(P+1-inv[2*i])%P;
s[0]='.',s[n+1]='.';
for(int i=n;~i;i--)
{
nx[i]=nx[i+1];
if(s[i+1]=='.')
nx[i]=i+1;
}
for(int i=0,p=0;i<=n;i++)
{
if(s[i]=='.'&&nx[i])
{
(ans+=1LL*f[p]*f[c-p]%P*(i+g[nx[i]-1]-g[i])%P)%=P;
// printf("%d %d %d %d %d %d\n",i,nx[i],p,c-p,i+g[nx[i]-1]-g[i]);
++p;
}
}
printf("%d",ans);
}

[ARC132E] Paw的更多相关文章

  1. 精准化测试专业平台Paw:苹果APP应用代码质量的守护者

    众所周知,一款苹果APP进入苹果应用商店后,要上排行榜,要被首页推荐,版本更新必不可少,但作为版本更新的关键所在,软件测试一直被业内吐槽“坑太多”,缺陷防不胜防.相关经验缺乏等等.若问如何“填坑”?以 ...

  2. 教你使用Paw解析http请求

    教你使用Paw解析http请求 软件下载地址: 链接: http://pan.baidu.com/s/1gdzmjq7 密码: 3mpb 这款应用的图片像极了百度,哈哈. 支持的请求方式: 完整的显示 ...

  3. no persistent classes found for query class: FROM com.vrv.paw.domain.User

    在整合Spring+Hibernate时报该错误,sessionFactory配置如下: <bean id="sessionFactory" class="org. ...

  4. Paw —— 比Postman更舒服的API利器

    特点: 颜值高本地应用,流畅有收藏夹,管理请求可使用环境变量.比如用来一键切换开发环境请求和线上环境请求.即不同环境的同个接口只有host不一样,其它都是一样的,所以就把host抽离出来弄成一个环境变 ...

  5. Linux常用命令(一)

    Linux常用命令 1. pwd查看当前路径(Print Working Directory)    [root@CentOS ~]# pwd/root 2. cd .. 返回上一级 .. 表示上一级 ...

  6. 【原】HTTP in iOS你看我就够

    声明:本文是本人 编程小翁 原创,转载请注明. 本文同步发布在简书中,强烈建议移步简书查看,编程小翁 HTTP属于老话题了,在项目中我们经常需要往服务端发POST或者GET请求,但是对于HTTP的了解 ...

  7. 行为驱动开发iOS <收藏>

    前段时间在design+code购买了一个学习iOS设计和编码在线课程,使用Sketch设计App,然后使用Swift语言实现Designer News客户端.作者Meng To已经开源到Github ...

  8. maven实战(01)_搭建开发环境

    一 下载maven 在maven官网上可下载maven:http://maven.apache.org/download.cgi 下载好后,解压.我的解压到了:D:\maven\apache-mave ...

  9. Java将TXT上的数据转换成excel里面

    package test; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; im ...

  10. struts-spring-mybatis实现最简单的登录验证

    1.导入项目相关的jar包 2.建立项目结构 3.配置文件的配置及代码 db.properties: jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:my ...

随机推荐

  1. U盘目录穿越获取车机SHELL - 分析与复现

    github上破解日系车机的文章 - https://github.com/ea/bosch_headunit_root 其中有利用 U 盘获取车机 shell 的操作 主要根据下面这篇文章进行环境搭 ...

  2. 《SQL与数据库基础》18. MySQL管理

    目录 MySQL管理 系统数据库 常用工具 mysql mysqladmin mysqlbinlog mysqlshow mysqldump mysqlimport source 本文以 MySQL ...

  3. 选择合适的方法进行API接口调试

    随着互联网的快速发展,API(Application Programming Interface)接口在软件开发中扮演着重要的角色.调试API接口是确保系统正常运行的关键步骤之一.本文将介绍如何选择适 ...

  4. 《Python魔法大冒险》 001 序章:少年小鱼的不平凡一天

    在一个普通的城市里,生活着一个名叫小鱼的少年.他是一名初中生,但在班级里,他的学习成绩总是垫底.同学们经常取笑他,有时甚至戏称他为"倒数王". 放学后,小鱼一个人走在回家的路上,他 ...

  5. vivo数据中心网络链路质量监测的探索实践

    作者:vivo 互联网服务器团队- Wang Shimin 网络质量监测中心是一个用于数据中心网络延迟测量和分析的大型系统.通过部署在服务器上的Agent发起5次ICMP Ping以获取端到端之间的网 ...

  6. 「codeforces - 687D」Dividing Kingdom II

    link. 好题啊. 首先有一个类 kruskal 暴力,就是对于每一个询问,把所有边按权值大小排降序,第一个加进去成为奇环的边就是答案.注意我们不需要关注偶环长成什么样子,所以我们实际上维护的是一棵 ...

  7. 一些H5对接微信JSSDK的问题记录

    这里给大家分享我在实际生活中总结出来的一些知识,希望对大家有所帮助 一.SDK引入 这里提供两套引入流程,一套是vue2.0及其他h5项目,一套是vue3.0的引入流程 不懂的也可以看我之前的一篇详细 ...

  8. 已发布:Oracle Database 23c 免费版 — 开发人员版!

    注:甲骨文云技术公众号文章备份 2023/04/12. 翻译新闻稿. 1.新发布 Oracle Database 23c 免费版 - 开发人员版 在 Oracle CloudWorld 2022 上, ...

  9. oracle的根容器下新建pdb容器及本地用户

    在Oracle12C根容器下,新建pdb,要求根据种子pdb建目的pdb:db_test,配置监听:在目的pdb下建本地用户 首先根据种子pdb新建目的pdb 1.管理员身份登录 C:\WINDOWS ...

  10. ContextWrapper

    /* * Copyright (C) 2006 The Android Open Source Project * * Licensed under the Apache License, Versi ...