Codeforces Round #848 (Div. 2) D - Flexible String Revisit

news2024/10/7 16:19:09

Codeforces Round #848 (Div. 2) D - Flexible String Revisit

题意:给定两个 题意:给定两个 题意:给定两个 01 01 01 字符串 字符串 字符串 a a a 和 和 b b b 每次操作可选择字符串 每次操作可选择字符串 每次操作可选择字符串 a a a 上的数字反转 上的数字反转 上的数字反转 即: 0 即:0 即:0 − > 1 ->1 >1 或者 1 1 1 − > 0 。 -> 0。 >0 每个位上操作的 每个位上操作的 每个位上操作的 概率相同 即每个位上操作的概率都是 1 / n 即每个位上操作的概率都是1/n 即每个位上操作的概率都是1/n 现问将字符串 a 翻转成 b 的期望步数是多少。 现问将字符串a翻转成b的期望步数是多少。 现问将字符串a翻转成b的期望步数是多少。

公式推导: 公式推导: 公式推导:
在这里插入图片描述
参考代码: 参考代码: 参考代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long 
#pragma GCC optimize(3)
typedef pair<int,int>PII;
#define pb push_back
const int N = 1e6+10;
const int mod = 998244353;
int inv[N];
int c[N],d[N];//kx+b
int qmi(int a,int b){
    int res=1;
    while(b){
        if(b&1)res=res*a%mod;
        a=a*a%mod;
        b>>=1;
    }
    return res;
}
void cf(){
    int sum=0;
    int n;
    cin>>n;
    string a,b;
    cin>>a>>b;
    for(int i=0;i<a.size();i++){
        if(a[i]!=b[i])sum++;
    }
    c[0]=d[0]=d[1]=0;
    c[1]=1;
    for(int i=2;i<=n;i++){
        c[i] = (c[i-1]*n-c[i-2]*(i-1))%mod*inv[n-i+1]%mod;
        d[i] = (d[i-1]*n-d[i-2]*(i-1)-n)%mod*inv[n-i+1]%mod;
    }
    int dp1=(1+d[n-1]-d[n])*qmi(c[n]-c[n-1],mod-2)%mod;
    int ans=(c[sum]*dp1+d[sum])%mod;
    if(ans<0)ans+=mod;
    cout<<ans<<endl;
    return ;
}
signed main(){
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    inv[1]=1;
    for(int i=2;i<N;i++){//O(n)线性求区间逆元
        inv[i]=mod-mod/i*inv[mod%i]%mod;
    }
    int _=1;
    cin>>_;
    while(_--){
        cf();
    }
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/194227.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于rust的,gRPC动态代理,无需proto文件自动http转gRPC

目录前言grpc实践github地址第一步第二步第三步第四步测试结构和原理尾语前言 沟通服务间接口内容(尤其是前后端接口)&#xff0c;是非常让人头疼的事。极其容易扯皮。接口文档写起来也很痛苦&#xff0c;每个字段的改动都需要及时更新&#xff0c;否则就会出问题。服务端通信如…

链表(初学)

n个结点由指针链组成一个链表。链表的结点在存储器中的位置是任意的&#xff0c;即逻辑上相邻的数据元素在物理上不一定相邻。链表的每一个结点有两个区域&#xff0c;分别是数据域和指针域。数据域存储的是当前结点的数据值&#xff0c;而指针域存储的是下一个结点的存储地址。…

URL的正则表达式(js代码)

在WWW上&#xff0c;每一信息资源都有统一的且在网上的地址&#xff0c;该地址就叫URL&#xff08;Uniform Resource Locator,统一资源定位器&#xff09;&#xff0c;它是WWW的统一资源定位标志&#xff0c;就是指网络地址。语法URL由三部分组成&#xff1a;资源类型、存放资源…

2022财年业绩增长乏力渐显,AR电商是Snap下一个突破口吗?

北京时间2月1日&#xff0c;Snap公布了2022财年第四季度和全年财务业绩&#xff0c;财报发布后&#xff0c;Snap盘后股价大幅下跌&#xff0c;最终收跌14.97%。 这并非Snap首次出现公布业绩后股价暴跌的情况&#xff0c;不可否认的是市场的敏锐度十分迅捷。那么&#xff0c;20…

数据结构——栈

一、栈的定义 栈是限定仅在表尾进行插入和删除操作的线性表。 允许插入和删除的一端称为栈顶&#xff0c;另一端称为栈底&#xff0c;不含任何数据元素的栈称为空栈。栈又称为后进先出的线性表&#xff0c;简称LIFO结构。 栈的插入操作&#xff0c;叫作进栈&#xff0c;也称压栈…

不固定版式文档的OCR模型自主开发流程及技术应用实例

随着各行业数字化、智能化建设的脚步加快&#xff0c;OCR得到了普及应用。当前&#xff0c;OCR技术主要应用于标准证件、票据识别&#xff0c;通过自动检测并识别、提取文字&#xff0c;减少人工录入信息的工作量&#xff0c;提升业务效率。目前&#xff0c;企业对OCR的识别精度…

java 分布式缓存 redis持久化 redis主从 Redis哨兵 Redis分片集群

-- 基于Redis集群解决单机Redis存在的问题 单机的Redis存在四大问题&#xff1a; 数据丢失问题 &#xff1a;Redis是内存存储&#xff0c;服务重启可能会丢失数据 并发能力问题 &#xff1a;单节点Redis并发能力虽然不错&#xff0c;但也无法满足如618这样的高并发场景 故障…

flink学习35:flinkSQL查询mysql

总览&#xff1a; import org.apache.flink.streaming.api.scala._ import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment import org.apache.flink.table.api.EnvironmentSettings import org.apache.flink.table.api.bridge.scala.{StreamTableEnvi…

day 23 贪心

P4447 [AHOI2018初中组]分组要求分成的每个小组的队员实力值连续&#xff0c;同时&#xff0c;一个队不需要两个实力相同的选手满足所有人都恰好分到一个小组&#xff0c;使得人数最少的组人数最多&#xff0c;输出人数最少的组人数的最大值。注意&#xff1a;实力值可能是负数…

【软件测试】 MySQL数据库总结,表的一系列操作,你看的都用得到......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 MySQL中的数据类型 …

ROS小车研究笔记2/2/2023 激光雷达建图

1 启动激光雷达建图节点 roslaunch turn_on_wheeltec_robot mapping.launch 2 启动rviz使建图可视化 rviz 在rviz中如果出现小车坐标错误&#xff0c;如小车坐标倾斜&#xff0c;可以按单片机上的RESET键使里程计复位。 我在测试中还出现启动mapping.launch后持续显示无法启动…

2023牛客寒假算法基础集训营5 -- C - 小沙の不懂

题目如下&#xff1a; 题目描述 输入描述: 输入两个整数 a, b, 0≤a,b<101050 \le a, b < 10^{10^5}0≤a,b<10105 输出描述: 如果在每一种情况中 a>ba>ba>b, 则输出">“。 如果在每一种情况中 a<ba<ba<b, 则输出”<“。 如果在每一种…

KT6368A双模蓝牙芯片功能 参数 应用 等等介绍

目录 一、KT6368A蓝牙芯片的基本介绍 二、KT6368A的功能介绍 三、KT6368A应用场景介绍 四、KT6368A的扩展说明 一、KT6368A蓝牙芯片的基本介绍 先看看官网的简单介绍&#xff1a; KT6368A芯片是一款支持蓝牙双模的纯数据芯片&#xff0c;蓝牙5.1版本。芯片的亮点在超小尺…

2022年重回王座,通用汽车电气化前景几何?

北京时间1月31日&#xff0c;美国汽车巨头通用汽车发布2022财年年报&#xff0c;第四度业绩超预期。 据通用汽车财报显示&#xff0c;其2022年Q4实现营收431.08亿美元&#xff0c;市场预期为406.5亿美元&#xff0c;摊薄调整后每股收益为2.12美元&#xff0c;市场预期为1.69美…

开学礼物送什么给孩子有意义?盘点最好的开学礼物之护眼台灯

即将开学啦&#xff0c;很多家长会给孩子准备开学的礼物&#xff0c;鼓励孩子春季新学期好好学习。 那么在开学送哪些礼物能显现出家长的良苦用心呢&#xff1f;也是随着这几年儿童近视率逐渐上升&#xff0c;近视成为许多家长担忧的问题&#xff0c;能更好的预防近视&#xf…

mongodb副本集部署及springboot集成

一、mongodb应用安装1、官网下载mongodb的社区版https://www.mongodb.com/try/download/community2、离线安装将下载好的mongodb安装包上传至服务器指定目录病解压&#xff08;1&#xff09;配置环境变量export MONGO_HOME/home/master/mongodb/mongo export PATH$MONGO_HOME/b…

自定义注解

如何实现自定义注解在我们实际开发过程中如果能合理的运用自定义注解&#xff0c;则会大大减少我们代码的开发量。那怎么才能实现自定义注解呢&#xff1f;废话不多说&#xff0c;直接上干货&#xff01;一、创建注解这一步呢&#xff0c;我们可以理解成对应的实体类&#xff0…

BetaFlight统一硬件资源抽象设计

BetaFlight统一硬件资源抽象设计1. 源由2. 资源配置注意事项3. 资源配置文件修改验证步骤Step 1&#xff1a;确认硬件修改内容Step 2&#xff1a;资源配置文件修改Step 3&#xff1a;验证配置文件Step 4&#xff1a;提交资源配置文件PR4. 参考资料就笔者接触嵌入式设计以来&…

ESP32设备驱动-MAX44009环境光传感器驱动

MAX44009环境光传感器驱动 文章目录 MAX44009环境光传感器驱动1、MAX44009介绍2、硬件准备3、软件准备4、驱动实现1、MAX44009介绍 MAX44009 环境光传感器具有 IC 数字输出,非常适合智能手机、笔记本电脑和工业传感器等多种便携式应用。 它的工作电流小于 1A,是业内功耗最低…

Springboot——Swagger

Swagger2 的 maven 依赖使用 Swagger2 工具&#xff0c;必须要导入 maven 依赖&#xff0c;当前官方最高版本是 2.8.0&#xff0c;我尝试了一下&#xff0c;个人感觉页面展示的效果不太好&#xff0c;而且不够紧凑&#xff0c;不利于操作。另外&#xff0c;最新版本并不一定是最…