当前位置: 首页 > news >正文

【学习笔记】CF613E Puzzle Lover

这题本质上还是数据结构。

首先看到这个 2 × n 2\times n 2×n的网格图就很容易想到分治。我们还是考虑把要统计的东西变得可视化,一条路径要么穿过中线一次,那么我们可以将两边的串拼起来得到答案;要么穿过中线两次,考虑其中一边的路径是固定的,那么我们枚举两个端点再判断一下和原串是否匹配的上就做完了。那么考虑预处理出 d p i , j , 0 / 1 , 0 / 1 dp_{i,j,0/1,0/1} dpi,j,0/1,0/1表示从位置 ( 1 / 2 , i ) (1/2,i) (1/2,i)开始,匹配长度为 j j j,向左/右走的方案数,这事实上非常好转移,可以自己编一下。当然可能还要把串正着和倒着处理一边,总之挺麻烦的。

将网格图翻转后做两次即可得到答案。求 L c p Lcp Lcp可以用暴力 d p dp dp代替。事实上也并不需要分治。注意不要算重

细节题,贼容易写挂。

复杂度 O ( n 2 ) O(n^2) O(n2)

#include<bits/stdc++.h>
#define ll long long
#define fi first
#define se second
#define pb push_back
#define inf 0x3f3f3f3f
#define db double
#define cpx complex<db>
using namespace std;
const int mod=1e9+7;
const int N=2005;
int n,K,Right[2][N][N],Left[2][N][N],dpl[2][N][N],res;
string s[2],str;
void add(int &x,int y){x=(x+y)%mod;
}
void solve(){for(int i=0;i<2;i++){for(int j=n-1;j>=0;j--){for(int k=0;k<K;k++){Right[i][j][k]=(s[i][j]!=str[k])?0:((j!=n-1&&k>=1)?(Right[i][j+1][k-1]+1):1);}}}for(int i=0;i<2;i++){for(int j=0;j<n;j++){for(int k=0;k<K;k++){Left[i][j][k]=(s[i][j]!=str[k])?0:((j>=1&&k>=1)?(Left[i][j-1][k-1]+1):1);}}}memset(dpl,0,sizeof dpl);for(int i=0;i<2;i++){for(int j=0;j<n;j++){if(s[i][j]==str[0]){dpl[i][j][0]=1;}}}//fixedfor(int i=0;i<n;i++){for(int j=i;j<n;j++){for(int k=0;k<2;k++){//strangeif(Left[k][j][2*(j-i+1)-1]>=j-i+1&&Right[k^1][i][j-i]>=j-i+1){add(dpl[k][j][2*(j-i+1)-1],1);}}}}for(int k=1;k<K;k++){for(int i=0;i<2;i++){for(int j=0;j<n;j++){if(s[i][j]==str[k]){if(j)add(dpl[i][j][k],dpl[i][j-1][k-1]);if(s[i^1][j]==str[k-1]){if(j&&k-2>=0)add(dpl[i][j][k],dpl[i^1][j-1][k-2]);}}}}}
}
void getans(){//fixedfor(int i=0;i<2;i++){for(int j=0;j<n;j++){add(res,dpl[i][j][K-1]);}}for(int i=1;i<n;i++){for(int j=i+1;j<n;j++){for(int k=0;k<2;k++){if(Right[k][i][K-1]>=j-i+1&&K-(j-i+2)>=0&&Left[k^1][j][K-(j-i+2)]>=j-i+1&&K-2*(j-i+1)-1>=0){add(res,dpl[k^1][i-1][K-2*(j-i+1)-1]);}}}}
}
int main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cin>>s[0]>>s[1]>>str,n=s[0].size(),K=str.size();//fixedif(K==1){for(int i=0;i<2;i++){for(int j=0;j<n;j++){if(s[i][j]==str[0]){add(res,1);}}}cout<<res;return 0;}if(K==2){for(int i=0;i<2;i++){for(int j=0;j<n-1;j++){if(s[i][j]==str[0]&&s[i][j+1]==str[1]){add(res,1);}if(s[i][j+1]==str[0]&&s[i][j]==str[1]){add(res,1);}}}for(int i=0;i<2;i++){for(int j=0;j<n;j++){if(s[i][j]==str[0]&&s[i^1][j]==str[1]){add(res,1);}}}cout<<res;return 0;}//fixedsolve();getans();//fixedswap(s[0],s[1]),reverse(s[0].begin(),s[0].end()),reverse(s[1].begin(),s[1].end());solve();getans();cout<<res<<"\n";
}

相关文章:

【学习笔记】CF613E Puzzle Lover

这题本质上还是数据结构。 首先看到这个 2 n 2\times n 2n的网格图就很容易想到分治。我们还是考虑把要统计的东西变得可视化&#xff0c;一条路径要么穿过中线一次&#xff0c;那么我们可以将两边的串拼起来得到答案&#xff1b;要么穿过中线两次&#xff0c;考虑其中一边的…...

软考报名资格审核要多久?证明材料要哪些?

软考报名资格审核要多久&#xff1f; 一般来说&#xff0c;软考资格审核时间不超过1个工作日。当然&#xff0c;每个地区的具体情况都不一样。有些地区估计需要1-3个工作日。总之&#xff0c;为了顺利成功报名&#xff0c;大家应尽快报名&#xff0c;不要拖到最后一天。 软考…...

2023-04-27 polardbx-LSM-tree的Parallel Recovery性能优化

背景 数据库的Crash Recovery时长关系到数据库的可用性SLA、故障止损时间、升级效率等多个方面。本文描述了针对X-Engine数据库存储引擎的一种Crash Recovery优化手段,在典型场景下可以显著缩短数据库实例的故障恢复时间,提升用户使用感受。 当前面临的问题 X-Engine是阿里…...

创作纪念日让 AI 与我共同记录下今天 — 【第五周年、1460天】

今天正是五一&#xff0c;收到一条消息&#xff1f; 五一还要我加班 &#x1f60f;&#xff1f; 喔&#xff0c;原来是 CSDN 给我发的消息呀&#xff01;我在 CSDN 不知不觉已经开启第五周年啦&#xff01; 目录 1.机缘2.收获3.日常4.我与 AI 的“合作”part Ipart II Super al…...

枚举法计算24点游戏

# 请在此处编写代码 # 24点游戏 import itertools# 计算24点游戏代码 def twentyfour(cards):"""(1)itertools.permutations(可迭代对象)&#xff1a;通俗地讲&#xff0c;就是返回可迭代对象的所有数学全排列方式。itertools.permutations("1118") -…...

@Cacheable注解

Cacheable注解是Spring框架中提供的一种缓存技术&#xff0c; 用于标记一个方法的返回值可以被缓存起来&#xff0c;当再次调用该方法时&#xff0c;如果缓存中已经存在缓存的结果&#xff0c;则直接从缓存中获取结果而不是再次执行该方法&#xff0c;从而提高系统的性能和响应…...

CentOS分区挂载 fdisk、parted方式解析

1 介绍 在linux中&#xff0c;通常会将持久化数据保存到硬盘当中&#xff0c;但是硬盘一把会比较大&#xff0c;因此我们为了方便管理&#xff0c;会将一个硬盘分成多个逻辑硬盘&#xff0c;称之为分区。 为了能够让分区中的文件使得能让操作系统处理&#xff0c;则需要对分区…...

BuildKit

介绍 BuildKit是一个现代化的构建系统&#xff0c;主要用于构建和打包容器镜像。它是Docker官方的构建引擎&#xff0c;支持构建多阶段构建、缓存管理、并行化构建、多平台构建等功能。BuildKit还支持多种构建语法和格式&#xff0c;包括Dockerfile、BuildKit Build Specifica…...

c++ 11标准模板(STL) std::vector (二)

定义于头文件 <vector> template< class T, class Allocator std::allocator<T> > class vector;(1)namespace pmr { template <class T> using vector std::vector<T, std::pmr::polymorphic_allocator<T>>; }(2)(C17…...

Python 循环技巧

目录 在字典中循环时&#xff0c;用 items() 方法可同时取出键和对应的值&#xff1a; 在序列中循环时&#xff0c;用 enumerate() 函数可以同时取出位置索引和对应的值&#xff1a; 同时循环两个或多个序列时&#xff0c;用 zip() 函数可以将其内的元素一一匹配&#xff1a…...

【Java笔试强训 7】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 一、选择题 二、编程题 &#x1f525;Fibona…...

工作7年的程序员,明白了如何正确的“卷“

背景 近两年&#xff0c;出台和落地的反垄断法&#xff0c;明确指出要防止资本无序扩张。 这也就导致现在的各大互联网公司&#xff0c;不能再去染指其他已有的传统行业&#xff0c;只能专注自己目前存量的这些业务。或者通过技术创新&#xff0c;开辟出新的行业。 但创新这…...

数学建模——查数据

如果选择C题的小伙伴常常需要查找一些数据&#xff0c;那么这些数据一般都可以从哪里找到呢&#xff1f; 常用的查数据平台 优先在知网、谷歌学术等平台搜索国家统计局 最全面&#xff0c;月度季度年度&#xff0c;各地区各部门各行业&#xff0c;包罗万象 https://data.stat…...

PAT A1019 General Palindromic Number

1019 General Palindromic Number 分数 20 作者 CHEN, Yue 单位 浙江大学 A number that will be the same when it is written forwards or backwards is known as a Palindromic Number. For example, 1234321 is a palindromic number. All single digit numbers are pa…...

ChatGPT会颠覆SEO内容创作吗

近几年 AI 的发展日新月异。除了搜索算法本身大规模应用人工智能&#xff0c;我也一直关注着 AI 用于写作的进展。 上篇关于 Google 有用内容更新的帖子还在说&#xff0c;高质量内容创作是 SEO 最难的事之一&#xff0c;对某些网站来说&#xff0c;如果能有工具帮助&#xff…...

Maven私服搭建

为什么要搭建私服 通常在maven项目的pom.xml文件中引入了某个依赖包之后&#xff0c;maven首先会去本地仓库去搜索&#xff0c;本地仓库搜索不到会去maven的配置文件settings.xml中配置的maven镜像地址去找&#xff0c;比如&#xff1a; <mirrors><!-- mirror| Specif…...

Ajax和Json综合案例

1. 查询所有 创建brand.html,使用axios发送请求&#xff0c;其中查询一般采用get的请求方式 <script src"js/axios-0.18.0.js"></script><script>//1. 当页面加载完成后&#xff0c;发送ajax请求window.onload function () {//2. 发送ajax请求axi…...

【genius_platform软件平台开发】第九十四讲:int64_t的格式化问题(lld和PRId64)

问题起因是在进行上位机软件优化的工作安排时&#xff0c;同事对unsigned long long 类型的时间戳进行了格式化输出优化&#xff0c;从%ull优化为了% PRIu64&#xff0c;我进行代码合并请求处理的时候突然感觉这个可以仔细查一下。查阅到的相关资料如下&#xff1a; * 1. int6…...

多模态之clip

论文&#xff1a;Learning Transferable Visual Models From Natural Language Supervision Github&#xff1a;https://github.com/OpenAI/CLIP OpenAI出品 论文通过网络爬取4亿(image, text)对&#xff0c;使用对比学习的方法训练得到clip&#xff08;Contrastive Languag…...

Lombok常用注解

文章目录 一、简介二、Idea中配置三、Maven中配置四、相应注解1、Data2、RequiredArgsConstructor3、AllArgsConstructor4、NoArgsConstructor5、Getter/Setter:6、ToString7、EqualsAndHashCode8、Builder9、NonNull10、Log11、Slf4j12、Log4j213、SneakyThrows14、Cleanup15、…...

加拿大各省接受公立教育的初始年龄汇总 — 供携子女赴加的访学、博后参考

近年来到加拿大从事访问学者和博士后研究的申请者日益增多&#xff0c;有些申请者想带孩子同去上公立学校。因为加拿大各省教育局政策有差异&#xff0c;所以入学&#xff08;包括学前班&#xff09;年龄不同&#xff0c;为此知识人网小编整理本文为大家解惑答疑。 加拿大为本国…...

数字化工厂:虹科Vuzix AR眼镜在工业制造中的革新应用

随着现代科学技术和新兴需求的快速增长&#xff0c;增强现实(AR)、各种“现实”产品与技术不断涌入创新市场&#xff0c;新兴用例数量正在快速增长&#xff0c;可以肯定&#xff0c;在可预见的未来&#xff0c;AR技术将成为各行各业的生产与工作主流。 增强现实&#xff08;AR&…...

配置出接口方式的单服务器智能DNS

组网需求 如图1所示&#xff0c;企业部署了一台ISP1服务器对外提供Web服务&#xff0c;域名为www.example.com。ISP1服务器的私网IP地址为10.1.1.10&#xff0c;服务器映射后的公网IP地址为1.1.1.10。企业的DNS服务器上存在域名www.example.com与ISP1服务器地址1.1.1.10的对应关…...

数据结构初阶(栈和队列)

文章目录 一、栈1.1 什么是栈1.2 栈的使用&#xff08;1&#xff09;底层代码&#xff08;2&#xff09;方法&#xff08;3&#xff09;栈的应用 二、队列2.1 什么是队列2.2 队列的使用&#xff08;1&#xff09;底层代码的实现&#xff08;2&#xff09;队列的使用 2.3 双端队…...

IDEA实用设置

1、设置全局编码统一为UTF-8 file>setting中搜索框输入file encoding修改格式为UTF-8 2、设置文字大小 file>setting中搜索框输入font修改字体大小 3、配置maven file>setting中搜索框输入maven修改maven的路径、conf文件、文件仓库 4、idea中实现Serializable提示…...

关联爆破-RSA分解

今天遇到一个RSA题&#xff0c;给出n和pq求分解&#xff0c;翻箱倒柜也没找着原来写的程序&#xff0c;这里重写一下。都是编程的活。 第1种情况&#xff0c;给出p^q 这种情况当p,q相同位相同时为0&#xff0c;不同时为1&#xff0c;爆破的时候只需要逐位判断两种情况&#x…...

Netty内存管理--内存池PoolArena

一、写在前面 到这里, 想必你已知道了Netty中的内存规格化(SizedClass), Page和SubPage级别的内存分配, 但是具体使用者不应该关心应该申请page还是subpage。而且从过去的经验来说, 申请page/subpage的数量也是个动态值, 如果申请使用完之后就释放那使用内存池的意义就不大。N…...

RabbitMQ 发布订阅模式,routing路由模式,topic模式

发布订阅模式 一个消息可以由多个消费者消费同一个消息 消费者1和2同时消费了该消息 举例 public static void main(String[] args) throws IOException, TimeoutException {//1 创建连接工厂ConnectionFactory connectionFactorynew ConnectionFactory();//2 设置rabbitmq …...

又一款可视化神器,开源了!

在互联网数据大爆炸的这几年&#xff0c;各类数据处理、数据可视化的需求使得 GitHub 上诞生了一大批高质量的 BI 工具。 借助这些 BI 工具&#xff0c;我们能够大幅提升数据分析效率、生成更高质量的项目报告&#xff0c;让用户通过直观的数据看到结果&#xff0c;减低沟通成…...

干货 | 中科院心理所考研复试经验分享

Hello&#xff0c;大家好&#xff01; 这里是壹脑云科研圈&#xff0c;我是喵君姐姐&#xff5e; 此时此刻&#xff0c;23年考研的小伙伴估计正在为复试进行准备吧&#xff0c;大家都准备得怎么样了呢&#xff1f; 今天为大家带来的就是我国顶级心理学研究结构—中科院心理所…...