区间DP(可以看成记忆化搜索)

U盘文件变exe?3步教你用火绒+批处理脚本恢复隐藏文档(附注册表修复) 本文详细解析了U盘文件被病毒隐藏并伪装成exe文件的原理,并提供了三步解决方案:首先使用火绒安全软件进行全盘查杀清除病毒;其次通过批处理脚本批量恢复被隐藏的文件属性;最后修复被篡改的注册表设置,彻底解决文件无法显示的问题,帮助用户安全找回数据并加固系统防护。 阅读详情

最少步

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 22   Accepted Submission(s) : 4
Font: Times New Roman | Verdana | Georgia
Font Size: ← →

Problem Description

有两个等长字符串str1和str2,仅由字符A和B组成, 现在要把str1变换成str2,唯一允许的变换操作是把str1的某个连续区间全变成A或者全变成B. 问怎样变换才能步数最少

Input

第一行是一个整数t (t ≤ 100),表示测试用例的数目.每一测试用例有两行组成,第一行是str1,第二行是str2,字符串长度不大于200,字符串前导和后缀均无空白符.

Output

对于每一测试用例,输出最小空白符.

Sample Input

2
BB
AA
BAAAB
ABBAA

Sample Output

1
2
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAXN 205
int dp[MAXN][MAXN];
int rem[MAXN][MAXN],remA[MAXN][MAXN],remB[MAXN][MAXN];
char s1[MAXN],s2[MAXN];
int inite(int len)
{
	int i,j,k,temp;
	memset(rem, 0, sizeof(rem));
	memset(remA, 0, sizeof(remA));
	memset(remB, 0, sizeof(remB));
	for(i = 0; i < len; i++)
	{
		for(j = i; j < len; j++)
		{
			temp = 0;

			if(j)temp = rem[i][j-1];
			if(s1[j]!=s2[j])
				rem[i][j]=temp + 1;
			else
				rem[i][j]=temp;

			for(k = i; k <= j; k++)
			{
				if(s2[k]!=s2[k+1]||(k+1>j))
				{
					if(s2[k]=='A')
						remB[i][j]++;
					else
						remA[i][j]++;
				}
			}
		}
	}
	for(i = j = 0;j < len;j++)
	{
		if((s1[j]!=s1[j+1])||j+1>=len)
		{
			if(s1[j-1]=='A')
				remA[i][j-1]-=1;
			else
				remB[i][j-1]-=1;
			i = j + 1;
		}
	}
	return 0;
}
int DP(int l,int r)
{
	int i,temp;
	if(dp[l][r]!=-1)return dp[l][r];
	dp[l][r]=(rem[l][r]<(temp=(remA[l][r]+1)))?rem[l][r]:temp;
	dp[l][r]=(dp[l][r]<(temp=(remB[l][r]+1)))?dp[l][r]:temp;

	for(i = l; i < r; i++)
	{
		temp = DP(l,i)+DP(i+1,r);
		if(temp<dp[l][r])dp[l][r] = temp;
	}
	return dp[l][r];
}
int main()
{
	int T,len;
	freopen("in.txt","r",stdin);
	scanf("%d",&T);
	while(T--)
	{
		scanf("%s%s",s1,s2);
		len = strlen(s1);
		inite(len);
		memset(dp, -1, sizeof(dp));
		DP(0,len-1);
		printf("%d\n",dp[0][len-1]);
	}
	return 0;
}





2025年“区块链技术”职业院校技能大赛赛后复盘与总结(必看) 记录一次2025年“区块链技术”职业院校技能大赛的参加经验总结与赛后复盘 阅读详情

相关推荐

高精度有源积分器设计:基于罗氏线圈的电流测量方案解析

在电力系统保护、工业自动化及高精度计量领域,电流的非接触式精确测量是核心需求。传统电流互感器存在磁芯饱和、频带受限等局限,难以应对现代电力电子设备产生的复杂波形。罗氏线圈作为一种空心电流传感器,凭借其宽频带、高线性度及无饱和风险的优势,成为理想解决方案。其工作原理基于法拉第电磁感应定律,输出信号与被测电流的导数成正比,因此必须通过积分运算恢复原始电流波形。积分器的精度、稳定性及动态响应直接决定了整个测量系统的性能上限。一个设计精良的有源积分器能有效解决直流漂移、相位误差及噪声放大等挑战,在继电器保护、断路器

weixin_30036289的博客 316

【基础算法】区间DP和记忆化搜索

一篇用题目来介绍区间DP和记忆化搜索的文章

qq_72363261的博客 423

Vercel静态站被墙别慌!手把手教你用Cloudflare免费CDN+域名解析搞定DNS污染

本文详细介绍了如何利用Cloudflare免费CDN和域名解析解决Vercel静态网站遭遇DNS污染的问题。通过诊断DNS污染、设计Cloudflare解决方案架构、实战配置步骤以及高级调优技巧,帮助用户快速恢复站点访问并提升防护能力。

weixin_27442001的博客 677

【算法】区间DP (从记忆化搜索到递推DP)⭐

考虑增加后的回文字符串,对称的两个字符不可能都是新增加的,要么其中一个是新增加的,要么就是都属于原字符串。如果只把两个都属于原字符串的那些字符作为子序列提出来(奇数长度的情况包含中间那个),他是一个回文子序列,并且是原字符串的回文子序列。并且有insertion step的数量就是原字符串长度 - 回文子序列的长度(要为那些本来只有一个的字符手动增加对称的字符)。因此,一个增加字符使得原字符串变成回文的方案,对应着一个原字符串的回文子序列。还是经典的那句话,不知道枚举的顺序,就看状态从哪里转移过来。

小威的博客 1192

Qt 5.9.1 32位下,手把手搞定周立功CAN二次开发库的加载与配置(含常见错误排查)

本文详细介绍了在Qt 5.9.1 32位环境下配置周立功CAN二次开发库的完整流程,包括环境准备、项目配置、常见错误排查及性能优化建议。特别针对MinGW 32bit环境,提供了.pro文件的精准配置和DLL部署策略,帮助开发者快速解决库文件匹配、编译报错和运行时问题,实现高效的CAN总线通信开发。

weixin_28717431的博客 356

RT-Thread新手必看:FMT飞控移植中的5个常见坑及解决方案

本文针对RT-Thread新手在移植FMT开源飞控时遇到的5大核心挑战,提供了深度解决方案。内容涵盖SCons构建系统配置、RT-Thread版本API兼容性处理、BSP与设备驱动适配、TOML系统配置解析以及算法模块集成调试,帮助开发者高效避坑,成功完成飞控移植。

gin88的博客 250

线性DP / 区间DP / 记忆化搜索

DP DFS

jyyyyx的算法之旅 263

别再手动挂载NPU了!手把手教你用Ascend-Docker-Runtime一键启动昇腾AI容器

本文详细介绍了如何使用Ascend-Docker-Runtime一键启动昇腾AI容器,大幅简化NPU设备挂载流程。通过环境变量ASCEND_VISIBLE_DEVICES,开发者可以灵活指定NPU设备,提升开发效率。文章还提供了安装配置指南、高级使用技巧和常见问题排查方法,帮助开发者快速掌握这一高效工具。

weixin_42662605的博客 252

括号配对(区间dp,记忆化搜索实现)

题目链接 事实证明,一道题如果你第一次做错了,那么第二次做的时候很可能依旧会错. 当初写这道题就被细节折磨了很久,现在第二次做还是被折磨了. 思路分析:记忆化搜索嘛,就是写主框架+扣递归边界.依旧是自顶向下的方法写. 主框架:最终状态是一整条字符串需要的最小字符数.如果说字符串的头尾是匹配的.那么可以缩小范围到[i+1,j-1].不过要注意的是.[i+1,j-1]范围的字符串需要的个数不一定就比[...

weixin_45590210的博客 373

【知识分享】IBIS 建模指南 03

本文介绍了差分缓冲器的数据提取方法,重点分析了差分系统与单端系统的核心差异。文章详细阐述了差分接收机和驱动器的结构特点、工作原理及建模方法,指出全差分结构具有优异的电源噪声抑制能力。针对IBIS建模规范,作者提出了三维I-V曲面数据提取技术,并介绍了共模/差模电流分离、片上端接处理以及V-T表生成的解决方案。文章还探讨了差分电容(C_diff)的测量方法和数据简化策略,为复杂差分缓冲器的精确建模提供了系统化的技术路径。

一只豌豆象的博客 1282

嵌入式代码审计中常见的漏洞(四)

经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。 本篇介绍了以下代码安全问题: 编号 漏洞 1 敏感信息硬编码 2 未初始化安全 3 越界访问 4 迭代器失效 5 迭代器尾部解引用

武天旭的博客 3318

codeforces 149d 区间dp + 记忆化搜索

题意: 只包括'(' , ')'的长度为n的字符串s,该字符串符合括号匹配原则。现在想要将s涂色。要求如下: 1.每个括号可以不涂色、涂红色或涂蓝色。 2.每对匹配的括号有且仅有一个括号涂色。 3.相邻括号可以都不涂色,但不能涂成相同颜色。 题解: 1.dp可以使用记忆化搜索或自底向上递推。 2.第i个字符是'(',match[i]存储第i个字符的匹配字符下标。第i个字符是')',m...

Irving0323的博客 385

告别 DEFINE VIEW:CDS View Entity 迁移全景实战(报表迁移 + ADT 向导 + 避坑清单)

CDS迁移的关键要点与策略 CDS DDIC-based View已被标记为废弃,迁移到CDS View Entity成为必要。迁移面临的主要挑战包括激活成本、命名约束和依赖风险。ABAP 7.57及以上版本必须优先处理,否则将积累技术债务。 迁移方式主要有两种: 报表路线:适合渐进式迁移的On-Premise项目 ADT向导:适合云环境批量迁移 关键注意事项: 必须提前检查SQL View依赖关系 金额/数量字段需要显式引用单位/货币字段 建议按使用场景分批迁移 最佳实践是结合报表进行系统盘点,再通过AD

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 208

数位dp详解,记忆化搜索,递推,OJ精讲

数位dp要学会总结出一套模板

EQUINOX1的博客 3189

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

记忆化搜索求解区间型dp

区间动态规划问题一般都是考虑对于每段区间,他们的最优值都是由几段更小区间的最优值得到,是分治思想的一种应用。将一个区间问题不断划分为更小的区间直至一个元素组成的区间,枚举他们的组合 ,求合并后的最优值。

OIljt12138的博客 850

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

区间DP 模板总结(递推版 / 记忆化搜索版通用伪代码)

区间 DP(interval DP)的核心,就是“状态 = 一个区间”,“转移 = 把区间拆成左右两个子区间再合并结果”。​下面用模板化的方式讲一遍:什么时候想到区间 DP、怎么设计状态与转移,以及常见两种代码写法(递推版 / 记忆化搜索版伪代码)。​。

六六哥的博客 704

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

数位dp + 记忆化搜索

2.还是同样的上面的题,对于上面题目我们发现,如果说此时遇到了11333这个数字,进行遍历完,然后继续往后遍历,就肯定会遍历到12333这个数字,此时我们其实可以当12333这个数字遍历到123前三位的时候就可以将这个数据是否为正确的数进行返回了,因为后面是不管出现什么情况,都已经在113?对于上题,如果说我们只是通过暴力遍历的方法,那么在进行操作的时候,要取到每一个数,然后对这个数字进行去位,然后判断的话,那么就会用很长的时间,在一些题目中直接就超时了,那么我们这时就应该想到通过数位dp的方法进行解决。

xiaobai_hellow的博客 1749

算法基础复盘笔记Day11【动态规划】—— 区间DP、计数类DP、树形DP、记忆化搜索

考虑一颗以u为根节点的子树,这颗子树的快乐指数应该是u的函数,并且分两种情况:选u和不选u。状态表示: f[u][1]表示以u 为根节点的子树并且包括u的总快乐指数,f[u][0] 表示以u为根节点的子树并且不包括u的总快乐指数。 状态计算:记点u的子节点是s - 选 $u$,f[u][1] += $\sum\limits_{}^{}$f[s][0]; - 不选 $u$,f[u][0] += $\sum\limits_{}

Java技术一点通 2207

记忆化搜索

记忆化搜索是一种结合递归与动态规划的算法优化技术,通过缓存子问题的解来避免重复计算,从而显著降低时间复杂度。其核心适用场景包括:具有递归定义和子问题重叠的问题(如斐波那契数列)、区间DP类问题(如矩阵链乘法)、状态转移复杂的问题(如背包变种)、路径/网格问题(如不同路径)、组合计数问题(如零钱兑换)以及博弈问题(如石子游戏)。典型实现步骤为:定义递归函数→添加备忘录缓存→递归前检查缓存→返回前存储结果。通过力扣例题(如509、62、300、375、329题)的解法演变,展示了从暴力搜索到记忆化搜索再到动态规

Small_entreprene的博客 1285

记忆化搜索或区间DP——石子合并

对应NYOJ题目:点击打开链接 石子合并(一) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述    有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆。求出总的代价最小值。 输入有多组测试数据,

大田二十 801

动态规划之区间DP详解

这几天在做有关dp的题,看到一个石子合并的问题,本来以为是个贪心,后来仔细一想压根不是贪心。贪心算法的思路是每次都取最大的,然而石子合并问题有个限制条件就是每次只能取相邻的,这就决定了它不是个贪心… 我们接下来会先直接上区间DP的模板,然后结合石子合并这道经典例题来讲解。 一、区间DP 区间dp其实就是一种建立在线性结构上的对区间的动态规划。主要的方法有两种,记忆化搜索和递推。 区间dp,顾名思义...

weixin_44623637的博客 3474

洛谷 P1880 石子合并【区间DP+记忆化搜索】

洛谷 P1880 石子合并 因为是在圆形操场中合并,也就是一个环,为了得到所有可能情况,断环为链,变成长度为2*n的链。dfs函数搜索[l,r]区间,得到相应的dp值。 这题也是区间DP,记忆化搜索可能比较好理解。 #include <bits/stdc++.h> using namespace std; const int N=205; int n,a[N],dp1[N][N],dp2[N][N],sum[N]; int dfs1(int l,int r)//求dp1,dp1[i][j]表示在区间[i,

nefu_ljw的博客 351

LC.312. 戳气球(记忆化搜索&区间DP)

LC.312. 戳气球(记忆化搜索&区间DP) 思路:记忆化搜索 ororor 区间dpdpdp。 乍一看这一题的操作有点复杂,再一看这不是就是石子合并的大水题吗。 显然可以记忆化搜索或者动态规划实现,具体看代码了,对了刚刚还学到了区间dpdpdp的另一种写法,以往我们都是第一维区间长度,第二维端点,第三位枚举中间位置。 其实还可以写第一维区间左端点,第二位区间右端点,第三位枚举中间位置。 注意这里要从区间要从后往前,从小往大,满足dpdpdp的正确性。 class Solution { publi

Harris-H的博客 733

AcWing算法学习笔记:动态规划(背包 + 线性dp + 区间dp + 计数dp + 状态压缩dp + 树形dp + 记忆化搜索)

若体积从小到大进行遍历,当更新f[i, j]时,f[i - 1, j - vi] 已经在更新f[i, j - vi]时被更新了。因此体积需要从大到小进行遍历,当更新f[i, j]时,f[i - 1, j - vi] 还未被更新。并枚举每一个数字,若以该数字结尾的序列,其倒数第二个数字应该是小于该数字的最大的数。更新状态时,记录每一位子串是由哪一位结尾的子串转移而来的。将f[i]与f[i - 1]轮流交替使用数组进行存储。枚举每一个分组内的物品,进行01背包的选法策略。由于不存在01背包中的更新覆盖的情况。

一只可爱的小猴子的博客 1660

用记忆化搜索解决数位DP的套路总结

Problem\mathrm{Problem}Problem Problem1\mathrm{Problem}1Problem1 区间[L,R]中每个数码出现的次数。 The Counting Problem——多组询问 ZJOI2007 数字统计——单组询问 Problem2\mathrm{Problem}2Problem2 求区间[L,R]中,在二进制下0的个数比1多的有多少个。 Rou...

Ronaldo7_ZYB的博客 524

动态规划(背包问题,状态压缩DP,树形DP,区间DP,线性DP,计数类DP,记忆化搜索等)介绍及应用

动态规划(背包问题,状态压缩DP,树形DP,区间DP,线性DP,计数类DP,记忆化搜索等)介绍及应用

weixin_61551023的博客 1051
上一篇: 套合子(典型的匈牙利算法)
下一篇: hdu 4412 Sky Soldiers(区间DP)
SprintfWater
博客等级 码龄15年 242粉丝 139原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值