正题

luogu
CF1363F


题目大意

给你一个字符串,你以旋转其中一个字串(将最后一给点移到前面,然后整体向后移一位),问最少要多少布可以到目标字符串


解题思路

设 fi,jf_{i,j}fi,j​ 为 sss 中的前 iii 个字符构成 ttt 中的前 jjj 个字符的最小步数(不足的后面旋转过来补)

那么对于 sss 中的一个字符,可以直接和当前点匹配,也可以往前移去补位置(不能直接往后移)

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


code

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define N 2022
using namespace std;
int T,n,pp,a[N][26],b[N][26],f[N][N];
char s[N],t[N];
const int inf=1000000000;
int main()
{scanf("%d",&T);while(T--){scanf("%d%s%s",&n,s+1,t+1);memset(a[0],0,sizeof(a[0]));memset(b[0],0,sizeof(b[0]));for(int i=1;i<=n;++i){memcpy(a[i],a[i-1],sizeof(a[i]));memcpy(b[i],b[i-1],sizeof(b[i]));a[i][s[i]-'a']++;b[i][t[i]-'a']++;}pp=1;for(int i=0;i<26;++i)if(a[n][i]!=b[n][i]){pp=0;break;}if(!pp){puts("-1");continue;}for(int i=0;i<=n;++i)for(int j=0;j<=n;++j)f[i][j]=inf;f[0][0]=0;for(int i=0;i<=n;++i)for(int j=max(i,1);j<=n;++j){f[i][j]=min(f[i][j],f[i][j-1]+1);if(i&&s[i]==t[j])f[i][j]=min(f[i][j],f[i-1][j-1]);if(i&&a[i][s[i]-'a']<=b[j][s[i]-'a'])f[i][j]=min(f[i][j],f[i-1][j]);}printf("%d\n",f[n][n]);}return 0;
}

【DP】Rotating Substrings(CF1363F)相关推荐

  1. 【DP】晨练计划(ybtoj)

    正题 ybtoj 题目大意 给你n个时间点 在第i个时间点跑步有aia_iai​点贡献,但会加一点疲惫值,疲惫值不能超过m 当前疲惫值为x,那么你可以花x点时间来清空疲惫值,当然也可以啥都不干 问你第 ...

  2. 【状压DP】【cofun1373】中国象棋(cchess)

    [cofun1373]中国象棋(cchess) Description 在N行M列的棋盘上,放若干个炮(可以是0个),使得没有任何一个炮可以攻击另一个炮. 请问有多少种放置方法,中国象棋中炮的行走方式 ...

  3. 【分享】常用JS(2)

    ============================================== 1.文本框焦点问题 onBlur:当失去输入焦点后产生该事件 onFocus:当输入获得焦点后,产生该文件 ...

  4. 【GAMES101】作业3(提高)与法线贴图原理和渲染管线框架分析

    目录 1. 作业描述 1.1 任务 1.2 编译与运行 1.3 框架与代码说明 2. 需要注意的问题 3. 解 3.1 rasterize_triangle 3.2 get_projection_ma ...

  5. 【JDK7】新特性(2) 语法

    2019独角兽企业重金招聘Python工程师标准>>> JDK7对Java语法有少量更新,重点是在易用性和便捷性的改进.     1.二进制字面量 JDK7开始,终于可以用二进制来表 ...

  6. 【Python】将字典(dict)转化为Dataframe

    [Python]将字典(dict)转化为Dataframe_张欣的博客-CSDN博客_python字典转dataframe dictory = {'a':1,'b':2} df = pd.DataFr ...

  7. 【 MATLAB 】离散傅里叶级数(DFS)与DFT、DTFT及 z变换之间的关系

    上篇博文我们简单的讨论了离散傅里叶级数DFS和离散傅里叶变换DFT之间的关系,简单地说,DFT就是DFS在一个周期内的表现. [ MATLAB ]离散傅里叶变换(DFT)以及逆变换(IDFT)的MAT ...

  8. 【FPGA】Buffer专题介绍(三)

    目录 背景 IOBUF IOBUFDS OBUF OBUFDS OBUFT OBUFTDS 背景 首先给出这个专题的第一个地址:[FPGA]Buffer专题介绍(一) 第二篇的地址:[FPGA]Buf ...

  9. 【FPGA】Buffer专题介绍(二)

    目录 背景 IBUF IBUFDS IBUFG IBUFGDS 背景 这篇博文是下面这篇博文的继续: [FPGA]Buffer专题介绍(一) 但介绍方式我想放的更自由一点,要不然就是官方文档了. IB ...

最新文章

  1. web进修之—Hibernate 继承映射(5)
  2. [JLOI 2012]树
  3. 蓝桥杯第六届决赛真题大全解(java版本)
  4. 前端学习(1924)vue之电商管理系统电商系统之权限的渲染方式
  5. 代替紧急通知_人员紧急替代程序与替代方案的通知
  6. 【操作基本数据类型的流】
  7. 什么时候建立分区的时候需要建立EFI分区
  8. 2018美赛D翻译从汽油驾驶到 E 驾驶( E 指电,而不是空)
  9. mysql innodb_data_file_path_应急预案:专有云V3环境中RDS MySQL5.7实例修改innodb_temp_data_file_path参数的方法...
  10. 北京邮电大学计算机导论试题,2020年秋季《北京邮电大学网络教育》各种考试题目汇总.docx...
  11. 【日常点滴013】python雪球网沪深港美股情爬取
  12. C++高并发服务器设计--共享内存封装(六)
  13. Shader学习7——法线贴图
  14. 干货分享 | 全文 40000 字,最强(全) Matplotlib 实操指南
  15. 席绢言情系列书评总序
  16. java+英尺英寸,身高英寸换算(身高换算成英尺英寸)
  17. 你真的了解机器学习、人工智能、统计建模吗?
  18. 年度战略方案制定步骤
  19. 元征科技Golo3 硬件拆解分析报告——榕树投资研究员.杜志君(2014-07-21
  20. 更强大了!开发者演示 iOS 11.3 ARKit 1.5 新增功能

热门文章

  1. php转译html,使用php转义输出HTML到JavaScript
  2. python做一个单项选择题系统_(完整版)python选择题word打印版
  3. 调整png的不透明度_TGA与PNG的优劣对比
  4. python魔术方法由谁定义_Python的魔术方法
  5. python输入日期计算天数_用python计算日期(1、返回指定日期所在的一周,2,计算一个日期的月份和天数加减)...
  6. PTA 数据结构与算法题目集(中文)
  7. 关于前端性能优化问题,认识网页加载过程和防抖节流
  8. [Spring5]IOC容器_Bean管理XML方式_外部属性文件
  9. 高等数学上-赵立军-北京大学出版社-题解-练习4.5
  10. [蓝桥杯2015决赛]五星填数-枚举+数论