Ch5702-Count The Repetitions【字符串,倍增,dp】

正题


题目大意

要求s2n2∗ms_2^{{n_2}*m}s2n2m是串s1n1s_1^{n_1}s1n1的字串,求最大的mmm


解题思路

首先求一个m′m'm使得s2ms_2^ms2m能够被s1n1s_1^{n_1}s1n1生成,然后可以从而求出mmm
倍增优化,设fi,jf_{i,j}fi,j表示从s1is1_is1i开始至少需要多少字符串才能生成s22js_2^{2^j}s22j
在这里插入图片描述
然后有

fi,j=fi,j−1+f(i+fi,j−1)%∣s1∣,j−1f_{i,j}=f_{i,j-1}+f_{(i+f_{i,j-1})\%|s1|,j-1}fi,j=fi,j1+f(i+fi,j1)%s1,j1

然后就拼凑


codecodecode

#include<cstdio>
#include<algorithm>
#include<string>
#include<iostream>
#include<cstring>
#define ll long long
using namespace std;
ll n1,n2,f[105][32];
string s1,s2;
void VeryImportantFakeMainP()
{memset(f,0,sizeof(f));for(ll i=0;i<s1.size();i++){ll pos=i;f[i][0]=0;for(ll j=0;j<s2.size();j++){ll cnt=0;while(s1[pos]!=s2[j]){pos=(pos+1)%s1.size();if(++cnt>=s1.size()){printf("0\n");return;}}pos=(pos+1)%s1.size();f[i][0]+=cnt+1;}}for(ll j=1;j<=30;j++)for(ll i=0;i<s1.size();i++)f[i][j]=f[i][j-1]+f[(i+f[i][j-1])%s1.size()][j-1];ll m=0;for(ll st=0;st<s1.size();st++){ll x=st,ans=0;for(ll k=30;k>=0;k--)if(x+f[x%s1.size()][k]<=s1.size()*n1){x+=f[x%s1.size()][k];ans+=1<<k;}m=max(m,ans);}printf("%lld\n",m/n2);
}
int main()
{while(cin>>s2>>n2>>s1>>n1){VeryImportantFakeMainP();}
}

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

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

相关文章

如何加快github的clone速度

有时候在github上下载一个项目需要很长的时间&#xff0c;甚至只有几k每秒&#xff0c;项目大了之后甚至直接下载失败。 这里有两种方法: 1、在GitHub域名后面加上.cnpmjs.org 正常的下载速度只有几十k每秒&#xff0c;但是在镜像上clone则能很大程度的节省时间&#xff0c;加…

Orleans入门

一、GrainsGrains是Orleans编程模型的关键原语。 Grains是Orleans应用程序的构建块&#xff0c;它们是隔离&#xff0c;分配和持久性的原子单元。 Grains是表示应用程序实体的对象。 就像在经典的面向对象编程&#xff08;Object Oriented Programming&#xff09;中一样&#…

爬虫基础5.24

request进阶第一步 1、爬取网页所有内容 import urllib.request fileurllib.request.urlopen(http://www.baidu.com) datafile.read() #读取全部 datalinefile.readline() #读取一行内容 print(data)添加请求头 java headers {user-agent: Mozilla/5.0 (Windows NT 1…

Tomcat面试题(2020最新版)

转载自 Tomcat面试题&#xff08;2020最新版&#xff09; Tomcat是什么&#xff1f; Tomcat 服务器Apache软件基金会项目中的一个核心项目&#xff0c;是一个免费的开放源代码的Web 应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很…

.NET Core 已经实现了PHP JIT,现在PHP是.NET上的一门开发语言

12月23日&#xff0c;由开源中国联合中国电子技术标准化研究院主办的2017源创会年终盛典在北京万豪酒店顺利举行。在本次大会上&#xff0c;链家集团技术副总裁、PHP 开发组核心成员鸟哥发表了以 “ PHP Next: JIT ”为主题的演讲&#xff0c;分享了 PHP 的下一个性能提升的主要…

Java虚拟机(JVM)面试题(2020最新版)

转载自 Java虚拟机(JVM)面试题&#xff08;2020最新版&#xff09; Java内存区域 说一下 JVM 的主要组成部分及其作用&#xff1f; JVM包含两个子系统和两个组件&#xff0c;两个子系统为Class loader(类装载)、Execution engine(执行引擎)&#xff1b;两个组件为Runtime da…

ASP.NET Core中的OWASP Top 10 十大风险-跨站点脚本攻击 (XSS)

本博文翻译自&#xff1a;https://dotnetcoretutorials.com/2017/10/25/owasp-top-10-asp-net-core-cross-site-scripting-xss/在这篇文章的前几次迭代中&#xff0c;我用了一个很长的篇幅解释了什么是跨站脚本(XSS)。但在花了好几个小时来完善它之后&#xff0c;我觉得向你展示…

(C语言)请编写程序,计算1-1/2-1/3-1/4-.....-1/50的和。

代码如下&#xff1a; #include<stdio.h>int main() {float i,sum1;for(i2;i<50;i){sumsum-1/i;}printf("%f",sum); }注意这里用的是float&#xff0c;不能用int&#xff0c;否则像是1/2&#xff0c;1/3统统都是0&#xff0c;最终运行的结果也是0&#xff…

芋道 Spring Boot 自动配置原理

转载自 芋道 Spring Boot 自动配置原理 1. 概述 友情提示&#xff1a;因为本文是分享 Spring Boot 自动配置的原理&#xff0c;所以需要胖友有使用过 Spring Boot 的经验。如果还没使用过的胖友&#xff0c;不用慌&#xff0c;先跳转到《芋道 Spring Boot SpringMVC 入门》文…

云设计模式

随着技术的快速发展&#xff0c;应用的架构逐渐从单体、分层、SOA逐渐向微服务的方向演进&#xff0c;而基础设施也逐渐从大型机&#xff0c;自建机房&#xff0c;到托管在云平台的各种服务上。所有这一切都是为了使应用&#xff08;web/mobile&#xff09;更快、更安全的上线&…

(C语言)数组去重

现有一组数&#xff0c;a[]{1,1,1,3,3,5,5,5,5,6,6,8,8,9,10,10} 要求将他们变为&#xff1a;{1&#xff0c;3&#xff0c;5&#xff0c;6&#xff0c;8&#xff0c;9&#xff0c;10} #include<stdio.h> int fun(int a[],int n){&#xff0c;int i,j1,ka[0],m,flag0;for…

Orchard Core Framework:ASP.NET Core 模块化,多租户框架

上一篇编写Orchard Core一分钟搭建ASP.NET Core CMS &#xff0c;介绍ASP.NET Core CMS &#xff0c;Orchard的ASP.NET Core版&#xff0c;同时对应有一个ASP.NET Core框架。支持模块化和多租户。整个Orchard Core就是通过一个个模块Module组成的首先创建一个空的 ASP.NET Core…

Zookeeper超详细的面试题

转载自 Zookeeper超详细的面试题 1.ZooKeeper是什么&#xff1f; ZooKeeper是一个分布式的&#xff0c;开放源码的分布式应用程序协调服务&#xff0c;是Google的Chubby一个开源的实现&#xff0c;它是集群的管理者&#xff0c;监视着集群中各个节点的状态根据节点提交的反馈…

【什么是泛型,有什么好处】

✅什么是泛型&#xff0c;有什么好处 ✅典型回答✅泛型是如何实现的✅什么是类型擦除&#xff1f;&#x1f4dd;C语言对泛型的支持&#x1f4dd;泛型擦除的缺点有哪些&#xff1f; ✅对泛型通配符的理解&#x1f4dd;泛型中上下界限定符 extends 和 super 有什么区别&#xff1…

.NET Core容器化@Docker

温馨提示&#xff1a;本文适合动手演练&#xff0c;效果更佳。1. 引言我们知道. NET Core最大的特性之一就是跨平台&#xff0c;而对于跨平台&#xff0c;似乎大家印象中就是可以在非Windows系统上部署运行。而至于如何操作&#xff0c;可能就有所欠缺。那这一节我们就结合简单…

Netty面试题(2020最新版)

转载自 Netty面试题&#xff08;2020最新版&#xff09; 1.Netty 是什么&#xff1f; Netty是 一个异步事件驱动的网络应用程序框架&#xff0c;用于快速开发可维护的高性能协议服务器和客户端。Netty是基于nio的&#xff0c;它封装了jdk的nio&#xff0c;让我们使用起来更加…

.NET开源三周年

3 年前&#xff0c;微软宣布开源 .NET 框架的大部分内容。正如Scott Hanselman在Connect 2016主题演讲中所说的那样&#xff0c;微软一直在做重大贡献&#xff1a;开源 .NET 框架并不总是一帆风顺的&#xff0c;可以肯定的说&#xff0c;总是会遇到一些困难。在过去的三年中&am…

Viewpager的使用

第一&#xff1a; 首先在activity_main中加入Viewpager控件 <androidx.viewpager.widget.ViewPagerandroid:layout_width"match_parent"android:layout_height"match_parent"android:id"id/viewPager"></androidx.viewpager.widget.Vi…

消息中间件MQ与RabbitMQ面试题(2020最新版)

转载自 消息中间件MQ与RabbitMQ面试题&#xff08;2020最新版&#xff09; 为什么使用MQ&#xff1f;MQ的优点 简答 异步处理 - 相比于传统的串行、并行方式&#xff0c;提高了系统吞吐量。 应用解耦 - 系统间通过消息通信&#xff0c;不用关心其他系统的处理。 流量削锋 …

IdentityServer4 第三方快速入门和示例

这些示例不由IdentityServer团队维护。 IdentityServer团队提供链接到了社区示例&#xff0c;但不能对示例做任何保证。 如有问题&#xff0c;请直接与作者联系。各种ASP.NET Core安全示例https://github.com/leastprivilege/AspNetCoreSecuritySamplesIdentityServer4 EF 和 A…