2023牛客暑期多校训练营8-I Make It Square

2023牛客暑期多校训练营8-I Make It Square

https://ac.nowcoder.com/acm/contest/57362/I

文章目录

  • 2023牛客暑期多校训练营8-I Make It Square
    • 题意
    • 解题思路
    • 代码实现

题意

在这里插入图片描述

解题思路

这里有两种情况,即 ∣ s ∣ > ∣ t ∣ |s|>|t| s>t ∣ s ∣ < ∣ t ∣ |s|<|t| s<t,首先考虑 ∣ s ∣ > ∣ t ∣ |s|>|t| s>t的情况,对于不同的 m m m,有两种情况,用图画来表示下面两种情况:
在这里插入图片描述
显然对于每一种情况都要判断 t t t是否与 s 1 s_1 s1的后缀相同。否则答案必为 0 0 0
如图,对于第一种情况,即 p p p q q q有重叠,设重叠部分有 k k k个元素,其答案显然为 2 6 k 26^k 26k;
对于第二种情况,还需要判断 s 2 s_2 s2 s 1 s_1 s1的重叠部分是否相同。
判断 s 2 s_2 s2 s 1 s_1 s1的重叠部分相同不需要一一枚举,可以发现,重叠部分即是 s s s的相同的前缀与后缀,可以用 k m p kmp kmp算法中的求 n e x t next next数组的方法来求。
而对于 ∣ s ∣ < ∣ t ∣ |s|<|t| s<t,可以发现若交换 t t t s s s,不会影响最终答案,如下图:
在这里插入图片描述
左图中,上下 s s s对应的 t t t的区域距 t t t尾部都是 p / q p/q p/q,右图中,上下 s s s对应的 t t t的区域距 t t t头部都是 t 1 − t 2 / q 1 t_1-t_2/q_1 t1t2/q1,显然 t 2 = q 2 t_2=q_2 t2=q2所以 s s s所对的区域都相同, s s s显然相同,所以交换后 1 1 1还是 1 1 1 0 0 0还是 0 0 0 2 6 k 26^k 26k还是 2 6 k 26^k 26k

代码实现

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5,mod=998244353;
int m,nx[N];
long long ans[N];
char a[N],b[N];
int main(){cin>>m;scanf("%s %s",a+1,b+1);int A=strlen(a+1),B=strlen(b+1);if((A+B)%2){for(int i=1;i<=m;i++)cout<<0<<' ';return 0;}if(A<B)swap(a,b),swap(A,B);int k=0,f=0;nx[1]=0;for(int i=2;i<=A;i++){while(k>0&&a[k+1]!=a[i])k=nx[k];if(a[k+1]==a[i])k++;nx[i]=k;}int d=(A+B)/2,r=A-d;for(int i=1;i<=B;i++){if(b[i]!=a[d-B+i]){for(int i=1;i<=m;i++)cout<<0<<' ';return 0;}}f=nx[A];while(f>0){if(f<r)ans[r-f]=1;f=nx[f];}ans[r]=1;for(int i=r+1;i<=m;i++)ans[i]=ans[i-1]*26%mod;for(int i=1;i<=m;i++)cout<<ans[i]<<' ';
}

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

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

相关文章

ffmepg滤镜

视频按顺时针方向旋转90度 ffplay -vf transpose1 -i juren-30s.mp4 ffplay -f lavfi -i testsrc -vf transpose1 -f lavfi -i testsrc这个滤镜是ffmpeg给用户的一个测试使用的视频 视频水平翻转(左右翻转) -vf hflip 实现慢速播放&#xff0c;声音速度是原始速度的50% ffpla…

skywalking忽略调用链路中的指定异常

文章目录 一、介绍二、演示项目介绍1. 支付服务2. 订单服务 三、项目演示1. 未忽略异常2. 忽略异常修改配置使用注解 四、结论 往期内容 一、skywalking安装教程 二、skywalking全链路追踪 三、skywalking日志收集 一、介绍 在前面介绍在微服务项目中使用skywalking进行全链…

web后端解决跨域问题

目录 什么是跨域问题 为什么限制访问 解决 什么是跨域问题 域是指从一个域名的网页去请求另一个域名的资源。比如从www.baidu.com 页面去请求 www.google.com 的资源。但是一般情况下不能这么做&#xff0c;它是由浏览器的同源策略造成的&#xff0c;是浏览器对js施加的安全…

机器学习基础之《特征工程(4)—特征降维—案例》

一、探究用户对物品类别的喜好细分 1、找到用户和物品类别的关系 数据如下&#xff1a; &#xff08;1&#xff09;order_products__prior.csv&#xff1a;订单与商品信息 字段&#xff1a;order_id&#xff0c;product_id&#xff0c;add_to_cart_order&#xff0c;reordered…

面试题:Spring 与 Springboot 的区别以及优缺点

Spring是一个开源的Java开发框架&#xff0c;旨在简化企业级Java应用程序的开发。它提供了一套完整的基础设施&#xff0c;包括依赖注入、面向切面编程、声明式事务管理等。 Spring Boot是一个用于创建独立的、生产级别的基于Spring的应用程序的框架。它将各种Spring组件和第三…

用 oneAPI 实现 AI 欺诈检测:一款智能图像识别工具

简介 虚假图像和视频日益成为社交媒体、新闻报道以及在线内容中的一大隐患。在这个信息爆炸的时代&#xff0c;如何准确地识别和应对这些虚假内容已经成为一个迫切的问题。为了帮助用户更好地辨别虚假内容&#xff0c;我开发了一款基于 oneAPI、TensorFlow 和 Neural Compress…

CANdelaStudio 使用介绍

CANdela Studio使用_哔哩哔哩_bilibili 一.CANdelaStudio使用tips 1.开始菜单打开软件&#xff0c;避免软件字体是德文的 2.打开软件之后&#xff0c;用“Open”打开.cdd或者.cddt文件&#xff0c;不要双击文件打开&#xff0c;这样容易报错 3.查看软件版本信息 4.只有Admin版…

讲解密码学综合应用

密码学综合应用是指将密码学的理论和技术应用于各种场景中&#xff0c;以保障信息的安全性、完整性和可靠性。密码学的应用范围非常广泛&#xff0c;包括通信安全、网络安全、电子商务、数字签名、认证、密钥管理等。下面将简要介绍一些密码学综合应用的实例&#xff1a; 1. 加…

面试热题(路径总和II)

给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 在这里给大家提供两种方法进行思考&#xff0c;第一种方法是递归&#xff0c;第二种方式使用回溯的方式进行爆…

pytest接口自动化测试框架搭建的全过程

目录 一. 背景 二. 基础环境 三. 项目结构 四、框架解析 pytest是Python的一种单元测试框架,可用来组织用例执行,用例断言,下面这篇文章主要给大家介绍了关于pytest接口自动化测试框架搭建的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下 一. 背景 Pyte…

【Java】常用Stream API

常见 Stream 流表达式 总体结构图 一、两大类型 中间操作(Intermediate Operations) 中间操作是指在Stream上执行的操作, 它们返回一个新的Stream, 允许你链式地进行多个中间操作. 终端操作(Terminal Operations) 对Stream进行最终处理的操作, 当调用终端操作时, Stream会开始执…

wsl1 ubuntu通过宿主机代理连接外网

文章目录 环境变量配置apt换源apt安装&#xff0c;测试是否能通外网可能出现的问题&#xff1a;Temporary failure resolving 参考 背景&#xff1a;公司电脑是局域网&#xff0c;通过走代理来连接外网 wsl1 ubuntu想要通过来连接宿主机的局域网代理&#xff0c;访问外网 可以…

swift3.0 废弃 swift 4.0 以后字符串截取

截取前 n 个字符&#xff1a; let str "Hello, Swift!" let prefix str.prefix(5) print(prefix) // "Hello" 截取后 n 个字符&#xff1a; let str "Hello, Swift!" let suffix str.suffix(6) print(suffix) // "Swift!" 截取指…

github镜像网站

因为你懂的原因&#xff0c;ww.github.com就算修改hosts文件后&#xff0c;访问也不是很快&#xff0c;这里在某乎评论区找到几个镜像&#xff1a; GitHub: Let’s build from here、hub.yzuu.cf/、hub.nuaa.cf/、hub.fgit.ml/&#xff0c;这四个基本长期稳定 参考&#xff1a…

pycharm中配置conda

安装好pycharm和conda后&#xff0c;打开pycharm&#xff1a;

湘大 XTU OJ 1308 比赛 题解:循环结束的临界点+朴素模拟

一、链接 比赛 二、题目 题目描述 有n个人要进行比赛&#xff0c;比赛规则如下&#xff1a; 假设每轮比赛的人是m&#xff0c;取最大的k&#xff0c;k2^t且k≤m。这k个人每2人举行一场比赛&#xff0c;胜利者进入一下轮&#xff0c;失败者被淘汰。余下的m-k个人&#xff0…

解决无法引入 mysql-connector-j 的问题

开发环境 Windows 10Oracle JDK 1.8Maven 3.8.8IntelliJ IDEA 2022.2.2 问题 在使用 Spring initializr 创建 Spring Boot 项目时&#xff0c;无法引入 mysql-connector-j 这个依赖&#xff0c;报错信息&#xff1a; com.mysql:mysql-connector-j:jar:unknown was not foun…

web-vue

<html><head><title>永远朋友</title><script src"../js/vue.js"></script></head><body><div id "app"><input type"text" v-model"message">{{ message }}</div&g…

【自动化测试】概述了解

文章目录 一、了解自动化测试二、工具的配合使用三、补充 努力经营当下 直至未来明朗&#xff01; 一、了解自动化测试 自动化测试主要是UI自动化以及接口自动化。功能测试与UI自动化测试的相似度是最高的&#xff0c;当功能测试转型自动化测试的时候一般最先接触的是UI自动化…

mysql延时问题排查

背景介绍 最近遇到一个奇怪的问题&#xff0c;有个业务&#xff0c;每天早上七点半产生主从延时&#xff0c;延时时间12.6K&#xff1b; 期间没有抽数/备份等任务&#xff1b;查看慢日志发现&#xff0c;期间有一个delete任务&#xff0c;在主库执行了161s delete from xxxx_…