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.hqwc.cn/news/63660.html

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

相关文章

IoTDB1.X windows运行失败问题的处理

在windows运行 IoTDB1.x时 会出现如图所示的问题 为什么会出现这样的问题&#xff1f;java没有安装还是未调用成功&#xff0c;我是JAVA8~11~17各种更换都未能解决问题&#xff0c;最后对其bat文件进行查看&#xff0c;发现在conf\datanode-env.bat、conf\confignode-env.bat这…

安路FPGA的赋值报错——移位处理,加括号

authordaisy.skye的博客_CSDN博客-嵌入式,Qt,Linux领域博主 在使用移位符号用来当作除以号使用时&#xff0c;发现如下问题 其中 cnt_8K 为偶数和奇数时输出的数据不一样 reg [10:0] cnt_8K; reg [10:0] ram1_addra; always(posedge clk_16M) begin if(ram_out_flag )begin if(…

网络安全 Day27-运维安全项目-堡垒机部署

运维安全项目-堡垒机部署 1. 运维安全项目-架构概述2. 运维安全项目之堡垒机2.1 堡垒机概述2.2 堡垒机选型2.3 环境准备2.4 部署Teleport堡垒机2.4.1 下载与部署2.4.2 启动2.4.3 浏览器访问teleport2.4.4 进行配置2.4.5 安装teleport客户端 2.5 teleport连接服务器 1. 运维安全…

函数的模拟实现

题一&#xff1a; 模拟实现strncpy #include <stdio.h>void my_strncpy(char* arr2, char* arr1, size_t num){int i 0;for (i 0; i < num; i){*(arr2 i) *(arr1 i);}}int main(){char arr1[] "hello liangzai";char arr2[10] { 0 };//strncpy(ar…

TansUNet代码理解

首先通过论文中所给的图片了解网络的整体架构&#xff1a; vit_seg_modeling部分 模块引入和定义相关量&#xff1a; # codingutf-8 # __future__ 在老版本的Python代码中兼顾新特性的一种方法 from __future__ import absolute_import from __future__ import division fr…

C++ 派生类的析构函数

派生类的析构函数的功能是在该类对象消亡之前进行的一些必要的清理工作。析构函数没有类型&#xff0c;也没有参数。 在派生过程中&#xff0c;基类的析构函数也不可以继承下来&#xff0c;如果需要析构的话&#xff0c;就要在派生类中声明新的析构函数。派生类析构函数的声明…

户外组网摆脱布线困扰,工业5G网关实现无人值守、远程实时监控

在物联网通信技术发达的2023&#xff0c;网络覆盖对所及之处的全面覆盖&#xff0c;科技发展的促使下很多高危户外场景也在思考如何利用无线技术提高人员安全及现场无人化管理。 煤矿是我们国家不可缺少的重要能源&#xff0c;其开采过程的危险系数也是众所皆知的&#xff0c;…

HbuildX生成安卓签名证书

HbuildX生成安卓签名证书 安装和配置JRE环境 根据此链接安装和配置JRE环境 生成签名证书 keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystoretestalias是证书别名&#xff0c;可修改为自己想设置的字符&#xff0c;建议…

策略模式【Strategy Pattern】

刘备要到江东娶老婆了&#xff0c;走之前诸葛亮给赵云&#xff08;伴郎&#xff09;三个锦囊妙计&#xff0c;说是按天机拆开解决棘手问题&#xff0c; 嘿&#xff0c;还别说&#xff0c;真是解决了大问题&#xff0c;搞到最后是周瑜陪了夫人又折兵呀&#xff0c;那咱们先看看…

深度学习(37)—— 图神经网络GNN(2)

深度学习&#xff08;37&#xff09;—— 图神经网络GNN&#xff08;2&#xff09; 这一期主要是一些简单示例&#xff0c;针对不同的情况&#xff0c;使用的数据都是torch_geometric的内置数据集 文章目录 深度学习&#xff08;37&#xff09;—— 图神经网络GNN&#xff08…

volte端到端问题分析(一)

1、MME专载保持功能验证 **描述&#xff1a;**当无线环境较差时&#xff0c;有可能由于“Radio_Connection_with_UE_Lost” 原因造成的VoLTE通话掉话&#xff0c;如果UE发生RRC重建成功&#xff0c;手机将不会掉话。 对MME1202进行功能验证&#xff1a;开启后&#xff0c;MME专…

在时间和频率域中准确地测量太阳黑子活动及使用信号处理工具箱(TM)生成广泛的波形,如正弦波、方波等研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…