[ARC132E] Paw
考虑最后形态,一定是有某一个区间 \([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的更多相关文章
- 精准化测试专业平台Paw:苹果APP应用代码质量的守护者
众所周知,一款苹果APP进入苹果应用商店后,要上排行榜,要被首页推荐,版本更新必不可少,但作为版本更新的关键所在,软件测试一直被业内吐槽“坑太多”,缺陷防不胜防.相关经验缺乏等等.若问如何“填坑”?以 ...
- 教你使用Paw解析http请求
教你使用Paw解析http请求 软件下载地址: 链接: http://pan.baidu.com/s/1gdzmjq7 密码: 3mpb 这款应用的图片像极了百度,哈哈. 支持的请求方式: 完整的显示 ...
- no persistent classes found for query class: FROM com.vrv.paw.domain.User
在整合Spring+Hibernate时报该错误,sessionFactory配置如下: <bean id="sessionFactory" class="org. ...
- Paw —— 比Postman更舒服的API利器
特点: 颜值高本地应用,流畅有收藏夹,管理请求可使用环境变量.比如用来一键切换开发环境请求和线上环境请求.即不同环境的同个接口只有host不一样,其它都是一样的,所以就把host抽离出来弄成一个环境变 ...
- Linux常用命令(一)
Linux常用命令 1. pwd查看当前路径(Print Working Directory) [root@CentOS ~]# pwd/root 2. cd .. 返回上一级 .. 表示上一级 ...
- 【原】HTTP in iOS你看我就够
声明:本文是本人 编程小翁 原创,转载请注明. 本文同步发布在简书中,强烈建议移步简书查看,编程小翁 HTTP属于老话题了,在项目中我们经常需要往服务端发POST或者GET请求,但是对于HTTP的了解 ...
- 行为驱动开发iOS <收藏>
前段时间在design+code购买了一个学习iOS设计和编码在线课程,使用Sketch设计App,然后使用Swift语言实现Designer News客户端.作者Meng To已经开源到Github ...
- maven实战(01)_搭建开发环境
一 下载maven 在maven官网上可下载maven:http://maven.apache.org/download.cgi 下载好后,解压.我的解压到了:D:\maven\apache-mave ...
- Java将TXT上的数据转换成excel里面
package test; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; im ...
- struts-spring-mybatis实现最简单的登录验证
1.导入项目相关的jar包 2.建立项目结构 3.配置文件的配置及代码 db.properties: jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:my ...
随机推荐
- SpringBoot3集成Redis
目录 一.简介 二.工程搭建 1.工程结构 2.依赖管理 3.Redis配置 三.Redis用法 1.环境搭建 2.数据类型 3.加锁机制 四.Mybatis缓存 1.基础配置 2.自定义实现 五.参 ...
- ❤️ GitHub Copilot 读心术揭秘,Copilot 逆向工程笔记
总览 你是否好奇 GitHub Copilot 如何知道你想写的内容?有时候它聪明得甚至好像读过你项目里其他文件一样,不要怀疑,它确实读过.这篇文章记录了我阅读一个对 Copilot 的逆向工程的笔记 ...
- tailwindcss -原子化 CSS 框架
原子化 CSS 框架 我记得很久之前有时候为了少写些css,我们通常会有如下的样板代码 .block { display: block; } .flex { display:flex } .flex- ...
- 详细讲解js实现电梯导航
场景 对于某一个页面内容繁多, 如果我们滚动的时间较长,为了增加用户体验. 我们需要实现点击某一个按钮,然后滚动到对应的区域. 滚动的时候,右侧对应的分类实现高亮 其实,这个功能就2个步骤: 1.点击 ...
- LeetCode952三部曲之二:小幅度优化(137ms -> 122ms,超39% -> 超51%)
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<LeetCode952三部曲& ...
- SICTF-2023 #Round2-WP-Crypto | Misc
Crypto 一.[签到]古典大杂烩 附件信息: 很明显可以看出来是base100,密码工具箱一把梭: SICTF{fe853b49-8730-462e-86f5-fc8e9789f077} 二.Ra ...
- WPF动画入门教程
Windows Presentation Foundation (WPF)是一种用于创建Windows客户端应用程序的UI框架.它让我们能够创建丰富的图形界面,包括各种各样的动画效果.接下来,我们将介 ...
- Solution -「YunoOI 2017」由乃的 OJ
Description Link. 起床困难综合症 上树. Solution 线段树维护,树剖上树. 具体题解有空再写,我要去睡觉了. #include<bits/stdc++.h> ty ...
- CocoaPods 在iOS开发中养活了这么多项目,它到底是个啥?
对于iOS开发者而言,CocoaPods并不陌生,通过pod相关的命令操作,就可以很方便的将项目中用到的三方依赖库资源集成到项目环境中,大大的提升了开发的效率.CocoaPods作为iOS项目的包管理 ...
- Oracle中的having()函数
having函数用在group by子句的后面,对分组结果集进行条件筛选. 1.having子句包含聚合函数 /*列出平均工资在1000之上,并且最低工资不低于800的工作信息*/select job ...