循环节,CF 314B - Sereja and Periods

news2024/11/9 5:59:49

目录

一、题目

1、题目描述

2、输入输出

2.1输入

2.2输出

3、原题链接

二、解题报告

1、思路分析

2、复杂度

3、代码详解


一、题目

1、题目描述

2、输入输出

2.1输入

2.2输出

3、原题链接

314B - Sereja and Periods


二、解题报告

1、思路分析

如果 b 个 a 中出现了 tot 个 c,那么答案就是 tot / d

我们可以暴力找循环节,但是也可以类似于字符串匹配的方式构建nxt 数组 和 cnt 数组

nxt[i] 代表 从 c[i] 开始 匹配 一个a,结束位置的下一个位置

cnt[i] 代表 从 c[i] 开始 匹配 一个a,匹配得到的 c 的数目

这样对于 (a, b)而言,我们只需模拟a轮,每次O(1) 跳nxt,累加cnt

对于nxt  和 cnt,我们直接暴力构建即可,因为 a 和 b 的长度都很小

2、复杂度

时间复杂度: O(b + |a| |c|)空间复杂度:O(|a| + |c|)

3、代码详解

 ​
#include <bits/stdc++.h>
// #include <ranges>

using u32 = unsigned;
using i64 = long long;
using u64 = unsigned long long;

constexpr int P = 998244353;
constexpr int inf32 = 1E9 + 7;

void solve() {
    int b, d;
    std::cin >> b >> d;

    std::string a, c;
    std::cin >> a >> c;

    std::vector<int> nxt(c.size()), cnt(c.size());
    std::iota(nxt.begin(), nxt.end(), 0);

    for (int i = 0; i < c.size(); ++ i) {
        for (char ch : a) {
            if (ch == c[nxt[i]]) {
                if (++ nxt[i] == c.size()) {
                    nxt[i] = 0;
                    ++ cnt[i];
                }
            }
        }
    }

    int tot = 0, cur = 0;

    while (b --) {
        tot += cnt[cur];
        cur = nxt[cur];
    }

    std::cout << tot / d;
}

int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    
    int t = 1;
    // std::cin >> t;
    
    while (t--) {
        solve();
    }
    
    return 0;
}

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

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

相关文章

【Python报错已解决】AttributeError: ‘str‘ object has no attribute ‘read‘

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一&#xff1a;直接使用字符串2.2 步骤…

DWI扩散磁共振成像和结构连接组学指南

扩散磁共振成像和结构连接组学指南 引言流程概述扩散磁共振成像(dMRI)dMRI基础ADC&#xff08; apparent diffusion coefficient, 表观扩散系数&#xff09;MD&#xff08;mean diffusivity, 平均扩散率&#xff09;FA&#xff08; fractional anisotropy, 分数各向异性&#x…

安装FTP服务器教程

一。安装vsftpd yum install vsftpd 二。修改配置文件&#xff0c;匿名账户具有访问&#xff0c;上传和创建目录的权限 vim /etc/vsftpd/vsftpd.conf &#xff08;红色进行设置放开YES&#xff09; local_enable&#xff1a;本地登陆控制&#xff0c;no表示禁止&#xff0c;ye…

llama网络结构及源码

模型初始化 首先模型初始化&#xff0c;确定模型属性 class LLaMA(nn.Module):def __init__(self, config: LLaMAConfig) -> None:super().__init__()assert config.padded_vocab_size is not Noneself.config configself.lm_head nn.Linear(config.n_embd, config.pad…

5 模拟——59. 螺旋矩阵II ★★

5 模拟 59. 螺旋矩阵II 给你一个正整数n,生成一个包含 1 到 n2所有元素,且元素按顺时针顺序螺旋排列的nn正方形矩阵 matrix 。 示例1: 输入:n = 3 输出:[[1,2,3],[8,9,4],[7,6,5]] 示例2: 输入:n = 1 输出:[[1]] 算法设计 本题与上一题【54. 螺旋矩阵】不同,上一…

1、https的全过程

目录 一、概述二、SSL过程如何获取会话秘钥1、首先认识几个概念&#xff1a;2、没有CA机构的SSL过程&#xff1a;3、没有CA机构下的安全问题4、有CA机构下的SSL过程 一、概述 https是非对称加密和对称加密的过程&#xff0c;首先建立https链接需要经过两轮握手&#xff1a; T…

redis基本数据结构-hash

这里写自定义目录标题 1. redis的数据结构hash1.1 Hash 数据结构的特点1.2 常见命令1.3 适用示例 2. 常见业务场景2.1 用户信息存储2.1.1 场景2.1.2 优势2.1.3 解决方案2.1.4 代码实现 2.2 购物车管理2.2.1 背景2.2.2 优势2.2.3 解决方案2.2.4 代码实现 3. 注意事项&#xff1a…

使用虚拟信用卡WildCard轻松订阅POE:全面解析平台功能与订阅方式

POE&#xff08;Platform of Engagement&#xff09;是一个由Quora推出的人工智能聊天平台&#xff0c;汇集了多个强大的AI聊天机器人&#xff0c;如GPT-4、Claude、Sage等。POE提供了一个简洁、统一的界面&#xff0c;让用户能够便捷地与不同的AI聊天模型进行互动。这种平台的…

Shadertoy和desmos用来快速图像化辅助计算的好工具

Desmos适用场景解直线方程例子 Shadertoy是一个专门通过shader片段利用gpu像素着色的工具。每一帧都会执行显示区域每个像素点的着色。默认片段坐标是左下角(0,0)到右上角(像素分辨率大小)。有网页版&#xff0c;也有vscode插件版。插件版更方便.如果要验证一些图像化的计算。…

MyBatis-Plus分页查询、分组查询

目录 准备工作1. 实体类2. Mapper类3. 分页插件4. 数据 分页查询1. 使用条件构造器2. 使用自定义sql 分组查询1. 分组结果类2. 自定义sql3. 测试类 准备工作 1. 实体类 对地址字段address使用字段类型转换器&#xff0c;将List转为字符串数组保存在数据库中 package com.exa…

(web自动化测试+python)1

一.UI自动化测试介绍 1.测试化理论 UI就是指的是用户接口&#xff0c;指的是用户与电脑的接口&#xff0c;是用户界面 UI不仅仅指的是web&#xff0c;还可以指代app 我们为什么要进行自动化&#xff1f; 大量版本的回归 当新的功能出现&#xff0c;复测之间的--我们叫做回归&am…

《Diffusion Models Without Attention》CVPR2024

摘要 这篇论文探讨了在高保真图像生成领域&#xff0c;去噪扩散概率模型&#xff08;Denoising Diffusion Probabilistic Models, DDPMs&#xff09;的重要性。尽管DDPMs在捕捉复杂视觉分布方面表现出色&#xff0c;但在高分辨率图像生成上面临显著的计算挑战。现有的方法&…

动物目标检测——基于YOLOv5和树莓派4B平台

目标检测在计算机视觉领域中具有重要意义。YOLOv5&#xff08;You Only Look One-level&#xff09;是目标检测算法中的一种代表性方法&#xff0c;以其高效性和准确性备受关注&#xff0c;并且在各种目标检测任务中都表现出卓越的性能。本文将详细介绍如何在性能更强的计算机上…

java实习生第一次被分配需求——完成需求的大概流程

一、分配需求后第一步&#xff0c;首先是把项目跑起来 在我进入公司一两个星期之后&#xff08;基本熟悉了公司的框架&#xff09;&#xff0c;就被我所在的开发小组的某个大哥分派了一个需求&#xff0c;然后他给我发了一个git地址&#xff0c;以及一个git的分支&#xff08;…

知名专家曹启富主任:冠心病低龄化?早预防早受益,守护心脏从日常做起

冠心病&#xff0c;这一曾被视为中老年疾病的代表&#xff0c;如今正悄然向更年轻的人群逼近。冠心病多发生于40岁以上的年龄段&#xff0c;但近年来&#xff0c;其发病低龄化的趋势日益明显&#xff0c;根据数据显示&#xff0c;我国城市人群15岁以及15岁以上的人口&#xff0…

STM32G474之TAMPALRM输出

TAMPALRM输出源是指“RTC唤醒”、“RTC报警A”和“RTC报警B”输出&#xff0c;可以配置从RTC_OU1(PC13)或RTC_OUT2(PB2)输出&#xff0c;而OUT2EN用来决定从哪个引脚输出。 1、TAMPALRM输出原理见下表&#xff1a; 若不看CALIB输出&#xff0c;可以简化如下表&#xff1a; 2、 …

【API Testing and Development with Postman 2nd_001】关于本书

译者按 今天又淘到一本介绍 Postman 的宝藏级小册子&#xff0c;非常适合想进一步了解 API 接口测试的朋友们。本书最大的特点就是手把手教学。想当年第 1 版问世时&#xff0c;初出茅庐的我随便拣了书中一两招&#xff0c;就能轻松搞定工作中五花八门的 API 疑难杂症。只是当时…

监听键盘事件

问题&#xff1a;点击输入框弹出键盘遮挡文字 需求&#xff1a;点击输入框键盘弹起&#xff0c;点击别处键盘回收&#xff0c;输入框回到原来状态&#xff0c; 解决办法&#xff1a; 1.采用占位的思想&#xff08;隐藏&#xff09;&#xff0c;文本框控制采用焦点控制&#…

多态的概念

多态 所谓的多态其实就是多种形态&#xff0c;它又被分为编译时多态(静态多态) 和 运行时多态(动态多态)。 静态的多态其实就是之前的模版和函数重载&#xff0c;今天我们主要讲动态的多态。所谓的动态多态其实就是相同的函数&#xff0c;完成不同的功能。 这就实现了明明都是…

C#搭建WebApi服务

1&#xff0c;OWIN的介绍 OWIN 的全称是 "Open Web Interface for .NET"&#xff0c; OWIN 在 .NET Web 服务器和 .NET Web 应用之间定义了一套标准的接口&#xff0c; 其目的是为了实现服务器与应用之间的解耦&#xff0c;使得便携式 .NET Web 应用以及跨平台的愿望…