qoj10093 Jump the Frog

news/2025/9/17 16:04:41/文章来源:https://www.cnblogs.com/WuMin4/p/19096942

题意

给出 \(n\) 个由 O~ 组成的字符串 \(s_i\),还有 \(m\) 个额外字符串,第 \(n+i\) 个字符串 \(s_{n+i}\) 由第 \(s_x\)\(s_y\) \((x,y<n+i)\) 个字符串拼接得到,即 \(s_{n+i}=s_x+s_y\)。你需要对这 \(n+m\) 个字符串解决以下问题:

有一只青蛙从字符串的起点出发,它只能站在 O 上,且每次可以向前跳 \(1\sim k\) 格,问跳到末尾有多少种不同的方案。

\(1\le n,m\le 10^5,1\le k\le 20,\sum|s_i|\le 10^5\)

思路

我们先对前 \(n\)\(s_i\) 进行朴素 dp。设 \(f_{i}\) 为青蛙跳到第 \(i\) 格的方案数,显然有:

\[f_{i}=\begin{cases} 0 & s_i\neq 'O' \\ \sum_{j=\max(0,i-k)}^{i-1} f_{j} & s_i='O' \end{cases} \]

答案即为 \(f_{end}\)

我们解决了前 \(n\) 个字符串的答案,考虑后 \(m\) 个字符串的答案。

假如把两段字符串拼接到一起,可以发现从一个字符串跳到另一个字符串只有可能从前一个字符串的最后 \(k\) 个位置跳到后一个字符串的前 \(k\) 个位置,所以我们对每个字符串不用存储太多的信息。

于是记 \(f_{i,s,t}\) 表示从第 \(i\) 个字符串的第 \(s\) 个字符开始,跳到距离末尾 \(t\) 个字符的位置的方案数。

\(n\) 个处理方法同上,对于后 \(m\) 个,用以上思路转移,则有:

\[f_{i,s,t}=\sum_{t',s'}^{s\le t',s'\le t,t'+s'+1\le k} f_{x,s,t'} f_{y,s',t} \]

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

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

相关文章

new 和make

func NewCase() {// 通过new , 可以创建任意类型,并返回指针mpPtr := new(map[string]*user)if *mpPtr == nil { // 通过 * 获取指针内容fmt.Println("map 为空")}// sliceslicePtr := new([]user)if *slicePtr == nil {fmt.Println("slice 为空")}*sliceP…

微信商户绑定微信公众号、小程序

https://pay.weixin.qq.com/index.php/extend/merchant_appid/mapay_platform/account_manage版权木有,侵权不究,欢迎转载

Ceres 常用 LossFunction 对比

Ceres 常用 LossFunction 对比

测试开发全日制学徒班火热报名中|跟着名企大咖做真实项目,结业即上岗

测试开发全日制学徒班,采用系统化教学的全日制线下课程,通过「人工智能测试+自动化测试+Python开发+测试开发」四维能力培养体系,配备行业资深专家导师陪跑服务(私教1v1答疑+周末私教陪跑服务),全程采用企业级学徒制培养模式。 学员将参与真实企业级项目开发,完成测试全…

唯创知音AI语音交互芯片与模组介绍

AI语音交互已经成为智能产品的基础配置,比如常见的AI玩具、智能家居、带AI功能的蓝牙音响,还有汽车的智能车机和智能穿戴设备等。唯创知音顺应市场趋势推出了WT2606A系列的AI语音交互芯片,和WT3000A M06、WT3000A M07、WT3000A M08三款AI语音交互模组。WT2606A AI语音交互芯…

k3s 高可用集群部署(内置 etcd + VIP + keepalived)

k3s 高可用集群部署(内置 etcd + VIP + keepalived) 一、节点规划master 节点:10.0.0.40、10.0.0.51、10.0.0.53 worker 节点:10.0.0.52、10.0.0.54 VIP(高可用入口):10.0.0.41二、离线包准备下载 k3s 安装脚本、二进制、镜像包 导入镜像到本地或 Harbor 打包所有安装文…

问HashMap底层原理?

HashMap是基于数组+链表+红黑树的哈希表。用于存储键值对。 1.哈希计算和扰动处理,也就是Hash方法 每一个Object都有一个 .hashCode 方法。(哈希计算)在对hashmap进行插入和查询时,先调用key键的key.hashCode()方法获取一个未处理的int哈希值,在底层代码中该值被复制给变量…

用 Go 重写 adbkit:原理、架构与搭建实践

用 Go 重写 adbkit:原理、架构与搭建实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !impor…

C语言环境搭建之Linux子系统使用vscode连接子系统

安装准备工作查看当前系统版本确保高于16215.0开启WSL Windows Subsystem for Linux(简称WSL)是一个为在Windows 10上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层。安装步骤微软商城Microsoft Store安装Ubuntu(本人安装的版本是22.04)点击等待安装完成输入用户名跟…

移远AT指令笔记

# 测试 AT - 测试AT指令功能是否正常# 模块相关 ATI - 查询模块信息 AT+CGMI - 查询模块制造商标识 AT+CGMM - 查询模块型号 AT+CGMR - 查询模块固件版本号# 网络相关 AT+QCCID - 查询集成电路卡识别码(ICCID) AT+GSN …

Chromium历史版本下载方式

首先,访问 https://chromiumdash.appspot.com/branches此链接,点击将要下载的chromium版本。我们点击想要下载的版本的Chromium列,这里我们以137为例。点击此处。会打开https://chromium.googlesource.com/chromium/src.git/+log/refs/branch-heads/7151网页。点击上图红框处…

【ACM出版】第三届物联网与云计算技术国际学术会议 (IoTCCT 2025)

第三届物联网与云计算技术国际学术会议(IoTCCT 2025)将于‌2025年9月26-28日‌在中国海口市盛大召开!【ACM独立出版 | 往届会后四个月EI检索! 】 【IEEE Fellow助力,行业内精彩报告!】 第三届物联网与云计算技术国际学术会议 (IoTCCT 2025) 2025 3rd International Confe…

2025年最全 Wiki 管理工具测评:ONES、Confluence、Notion......哪个更适合你?

随着技术和团队规模的不断发展,如何有效管理知识、文档和任务,成为了研发团队面临的重要挑战。Gartner 发布的《Top Strategic Predictions for 2024 and Beyond》报告指出,成功的研发领导者应该采用新的方法,构建数字化的研发生态系统,利用技术工具创造一个高绩效的研发环…

天下拍拍卖系统:二方系统也能扩展三方平台功能

过去很多年,大多数拍卖公司为了快速开展线上拍卖会,普遍选择入驻阿里拍卖、京东拍卖、公拍网等三方平台——功能齐全、流量大、上线快。但随着业务深入,企业逐渐发现三方平台存在一些限制,想要私有化搭建一套属于拍卖公司自己的拍卖系统,但同时可能也想保留一些三方平台的…

express使用redis

我用的pnpm pnpm add express redisconst express = require(express); const redis = require(redis); var app = express() var port = 3000 // 创建 Redis 客户端实例 const redisClient = redis.createClient({url: redis://172.17.0.185:6379 ,password: b7371d927aec647d…

day07 课程

day07 课程课程:https://www.bilibili.com/video/BV1o4411M71o?spm_id_from=333.788.videopod.episodes&p=148 7.1 字典的应用场景7.2 创建字典的语法7.3 字典常用操作之新增7.4 字典常用操作之删除7.5 字典常用操作之修改———————————————————————…

排序实现java - 教程

排序实现java - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size: 14p…

.net core 发布到 iis 步骤

1. 打开服务器管理器,管理,添加角色和功能,把 IIS 相关的全勾上。 2. 安装.net core 环境,需要 ASP.NET Core 运行时的 Hosting Bundle 版本,其他版本没用。 3. 安装 webdeploy, 服务器防火墙打开8172端口。 4. 在 IIS 上创建站点, 配置的文件夹权限需要添加 everyone 的…

kylin SP2安装mysql8.4.5

环境:OS:kylin SP2mysql:8.4.5 glibc2.17,建议安装glibc.2.28版本 查看系统glibc版本[root@localhost soft]# ldd --version ldd (GNU libc) 2.28 Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There i…