算法竞赛入门经典 每日一题(合并回文子串)

牛客每日一题系列(持续更新) 牛客每日一题系列(持续更新) 文章目录牛客每日一题系列(持续更新)ps一 tokitsukaze and Soldier ps 供自己复习、记录题解所用,如有错误概不负责(滑稽) 一 tokitsukaze and Soldier 题意: n个士兵,需要从中选出一些士兵,但是每个士兵都有对应的战力值v和对人数的限制s 求:选出的士兵,最多能形成多大的战力值 题解: 我们需要维护选出的士兵形成的集合... 阅读详情

题号:NC13230
时间限制:C/C++ 2秒,其他语言4秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

 

题目描述 

输入两个字符串A和B,合并成一个串C,属于A和B的字符在C中顺序保持不变。如"abc"和"xyz"可以被组合成"axbycz"或"abxcyz"等。
我们定义字符串的价值为其最长回文子串的长度(回文串表示从正反两边看完全一致的字符串,如"aba"和"xyyx")。
需要求出所有可能的C中价值最大的字符串,输出这个最大价值即可

输入描述:

第一行一个整数T(T ≤ 50)。
接下来2T行,每两行两个字符串分别代表A,B(|A|,|B| ≤ 50),A,B的字符集为全体小写字母。

输出描述:

对于每组数据输出一行一个整数表示价值最大的C的价值。

示例1

输入

复制

2
aa
bb
a
aaaabcaa

输出

复制

4
5

思路:

二个字符串就可以想到的是区间dp

那么如何找状态转移方程呢

string a,b 中我们分别用双指i j k l

dpi,j,k,l​∣=dpi+1,j−1,k,l​ (ai=ajai​=aj​,i<ji<j) 

dpi,j,k,l∣=dpi,j,k+1,l−1dpi,j,k,l​∣=dpi,j,k+1,l−1​ (bk=blbk​=bl​,k<lk<l) 

dpi,j,k,l∣=dpi+1,j,k,l−1dpi,j,k,l​∣=dpi+1,j,k,l−1​ (ai=blai​=bl​,i<=ji<=j,k<=lk<=l) 

dpi,j,k,l∣=dpi,j−1,k+1,ldpi,j,k,l​∣=dpi,j−1,k+1,l​ (aj=bkaj​=bk​,i<=ji<=j,k<=lk<=l)

 

const int MAX=52;
int dp[MAX][MAX][MAX][MAX];
int ans;
int main(){
    int t;
    cin>>t;
    while (t--) {
        string a,b;
        cin>>a>>b;
        mms(dp,0);
        ans=0;
        for(int x=0;x<=a.size();x++){
            for(int y=0;y<=b.size();y++){
                for(int i=1,j=x;j<=a.size();i++,j++){
                    for(int k=1,l=y;l<=b.size();k++,l++){
                        if(x+y<=1){
                            dp[i][j][k][l]=1;
                        }
                        else {
                            if(x>1&&(a[i-1]==a[j-1])){
                                dp[i][j][k][l]|=dp[i+1][j-1][k][l];
                            }
                            if(y>1&&(b[k-1]==b[l-1])){
                                dp[i][j][k][l]|=dp[i][j][k+1][l-1];
                            }
                            if(x&&y){
                                if(a[i-1]==b[l-1]){
                                    dp[i][j][k][l]|=dp[i+1][j][k][l-1];
                                }
                                if(a[j-1]==b[k-1]){
                                    dp[i][j][k][l]|=dp[i][j-1][k+1][l];
                                }
                            }
                        }
                        if(dp[i][j][k][l]){
                            ans=max(ans,x+y);
                        }
                    }
                }
            }
        }
        cout<<ans<<endl;
    }
}

hot100刷题笔记 手撕hot100笔记整理 阅读详情

相关推荐

联想后端笔试全攻略:题型解析、核心考点与避坑指南

后端开发岗位的春招笔试,往往是对计算机基础功底与工程实践能力的一次综合检验。从操作系统、计算机网络到数据库与Redis,再到Java集合并发与Spring生态,考察范围广而不偏,尤其重视对基础原理的深度理解。算法与数据结构作为拉开差距的关键板块,常以LeetCode中等偏上难度的编程题出现,重点考查代码的完整性与边界处理能力。掌握B+树索引结构、TCP拥塞控制、线程池执行流程、HashMap底层原理等高频考点,配合科学的刷题策略与时间分配方法,能显著提升笔试通过率。本文结合真实考试经历,系统性拆解联想后端笔

weixin_32325225的博客 254

合并回文子串

输入两个字符串A和B,合并成一个串C,属于A和B的字符在C中顺序保持不变。如"abc"和"xyz"可以被组合成"axbycz"或"abxcyz"等。 我们定义字符串的价值为其最长回文子串的长度(回文串表示从正反两边看完全一致的字符串,如"aba"和"xyyx")。 需要求出所有可能的C中价值最大的字符串,输出这个最大价值即可 输入描述: 第一行一个整数T(T ≤ 50)。 接下来2T行,每两行两个字符串分别代表A,B(|A|,|B| ≤ 50),A,B的字符集为全体小写字母。 输出描述: 对于每组数据输出一

水蛙菌 9583

【信息科学与工程学】【数据科学】数据科学领域 第六篇 算法设计 07 堆、栈、表、矩阵、集合、队列、数组、字符串、树、图、动态规划、结构体、元组的算法01

当前段必须包含所有字符的最后出现位置。1. 字符串分割成最多片段2. 基因序列功能域划分3. 文本段落划分4. 音频声道分离5. 图像色彩分区6. 社交网络社群划分7. 蛋白质结构域8. 音乐乐章分段9. 代码模块划分10. 章节划分特征:一次扫描,贪心确定边界。

weixin_49199313的博客 1268

HDU1251 trie(数组)

#include #include #include #include #include #include #include #include #include #include #include using namespace std; #define ll long long #define mxn 502000 #define eps 1e-8 int son[mxn][27], sz

yamiedie_ 785

Leetcode回文串拼接-leetcode:我的leetcode解决方案

Leetcode回文串拼接 leetcode my solutions

机械工程师如何用Codex实现CAD自动化:从重复劳动到智能设计

在机械设计领域,CAD二次开发长期面临学习门槛高、维护成本大的难题。随着AI编程助手如Codex的出现,通过自然语言生成可执行代码,工程师无需精通编程即可实现图纸批量处理、BOM表自动生成、参数化建模等任务。这种技术将重复性操作自动化,显著提升设计效率,让工程师聚焦于核心创新。应用场景涵盖批量修改图纸属性、跨软件数据流转、自动打印等。本文分享机械工程师利用Codex落地自动化的实战经验与避坑指南。

weixin_32296621的博客 357

牛客每日一题 合并回文子串(区间DP)

题目链接 题目描述 ????????????????接到了一份来自校方的委托,虽然没有学分但也必须完成。 需要粉刷????条木板,这些木板按照左端对齐,每条木板的高度都是1, 第????条木板的长度为????????。 ????????????????只有一个宽度为1的刷子,她每次可以水平或者竖直地对连续的 位置进行粉刷,刷子不能经过没有木板的位置。 ????????????????对校方的这个安排非常不满,但为了效率,她允许重复粉刷一个 位置,希望通过最少的次数来完成这????条木板的粉刷。 输...

qq_42479630的博客 354

注意力机制详解

注意力机制详解Attention机制由来Attention定义Encoder-Decoder框架存在问题:Attenion机制的引入Attention机制的类别Hard AttentionSoft AttentionGlobal AttentionLocal AttentionSelf AttentionMulti-head Attention附录—Transformer全局视角Tensor视角Encoder部分Self-AttentionSelf-Attention向量计算Self-Attention的矩

weixin_43236310的博客 1万+

牛客网【每日一题】 合集

文章目录2020年3月25日 NC50439 tokitsukaze and Soldier 牛客练习赛50-C2020年3月26日 NC13230 合并回文子串 美团2017年CodeM大赛-初赛A轮2020年3月27日 NC15553 数学考试 2018年长沙理工大学程序设计竞赛2020年3月30日 NC50528 滑动窗口 《信息学奥赛一本通》Part5.52020年3月31日 NC1333...

qq_35975367的博客 900

PotPlayer终极画质调校:深入MadVR渲染器设置,让你的显示器发挥100%潜力

本文深入探讨了如何通过MadVR渲染器优化PotPlayer的画质设置,充分发挥高端显卡和显示器的潜力。从色彩空间匹配、色深优化到HDR元数据处理,提供了一套完整的配置指南,帮助用户实现影院级视觉体验。特别适合拥有NVIDIA RTX或AMD RX系列显卡的用户进行精细调校。

weixin_42530458的博客 599

大麦网回流票监控实战:如何利用sign参数和cookie实现自动抢票(避坑指南)

本文详细介绍了如何利用sign参数和cookie构建大麦网回流票监控系统,实现自动化抢票。通过分析大麦网票务系统的核心机制、获取关键身份凭证、逆向分析sign签名算法,并构建完整的监控系统,帮助用户高效捕捉回流票机会。文章还提供了实战避坑指南和合法合规的注意事项,确保系统稳定运行且符合平台规则。

weixin_28568819的博客 411

leetcode000算法题 算法每天一题000:leetcode相关资源

力扣(leetcode)和牛客的使用指南知乎问答:大家都是如何刷 LeetCode 的?牛客网lintcode王道论坛力扣云网牛站赛码网代码随想录牛客竞赛在线执行环境 https://jsrun.net/cpp/new。

ResumeProject的博客 598

使用DevExpress22.X(Patch)控件库在VisualStudio2022使用C#进行Winform、WPF应用的开发,看这一篇就够了!

写在开头,Dev Express是个十分强大的控件库(下文简称Dev),但碍于其高昂的使用费用,“出于学习目的”,我们一般使用的都是Patch版本(在版权意识日趋加强的当下,不要提那两个字,现在加上那些字,百度都搜不出内容)。

平凡之路 2万+

基础算法 LeetCode 刻意练习总结

今年这个三月,虽然是在疫情中度过,但还是有一些收获的。在这一个月中参加了华电计算机系 马老师 组织的基础算法(LeetCode)刻意练习活动,每天按时写题目,写博客,坚持打卡,一晃一个月就过去了,感觉收获还是很大的。 在这一个月的刻意练习中,复习了一部分在高中学习的竞赛知识,练习了写c++代码,熟练了很多。本想着每天写程序的时候还要写一份java的代码,但是时间真的有限,就只能先练自己擅长的c++...

tangzhide123yy的博客 381

基于Mask-RCNN网络的书架图书书脊分割和检测(含代码)

图书馆的书架上的图书书脊分割/检测对于图书书名等信息的识别具有重要意义,因此,该博客基于Mask-RCNN网络实现了图书书脊的分割和检测,有利于进一步利用ocr文字识别技术实现图书书名等信息的入库。如下图所示,为书架原始数据和分割/检测后的结果。(本文已训练模型,无需训练)

qq_44619530的博客 2025

YOLOv11改进 - 卷积Conv | GCNet之金箍棒块GCBlock : 重参数化捕获全局依赖 | CVPR 2025

文介绍了GCBlock在YOLOv11中的结合应用。GCBlock是GCNet的核心组件,能高效捕获特征图中的全局依赖关系,融合了非局部网络和挤压 - 激励网络的优势,降低计算成本并保障模型性能。其遵循“上下文建模 - 特征变换 - 特征融合”框架,通过全局平均池化、全连接层等操作生成注意力权重。我们将GCBlock集成进YOLOv11,替代原有的部分卷积模块,实现更高效的全局上下文建模。实验证明,YOLOv11-GCBlock在目标检测任务中表现出色,展现了GCBlock在深度学习中的广泛应用前景。

魔改工程师的博客 905

推荐一个学算法的 GitHub 项目

点击上方蓝色“程序猿DD”,选择“设为星标”回复“资源”获取独家整理的学习资料!这个项目的名称不那么文雅,直接抛地址:https://github.com/labuladong/fuck...

程序猿DD 1247

Python代码加密与发布方案详解

本文详细介绍了多种Python代码保护方案,从基础加密到高级混淆,以及商业化发布的最佳实践。基础加密方案包括编译为字节码和使用PyArmor基础加密,适合临时保护和小项目。商业级加密方案如Cython编译和Nuitka完整打包,提供更高的保护强度和执行效率。高级混淆方案涉及控制流混淆、字符串加密和完整混淆工具链,进一步增加逆向难度。商业化发布方案则强调许可证系统集成、硬件绑定保护和完整发布流程。此外,文章还探讨了反逆向技术、最佳实践建议和常见问题解决方法。通过组合使用这些技术,可以构建出适合不同安全需求的P

数据知道的博客 1万+

对“基础算法(LeetCode)刻意练习活动”的复盘

“基础算法(LeetCode)刻意练习活动”已经结束了,这篇文章主要是对本次活动进行复盘,为以后类似的活动积累经验。 我想从三个方面进行复盘。第一方面,活动的哪些部分或者环节是可以保留的。第二方面,本次活动存在的问题。第三方面,以后活动努力的方向。 保留的环节(Keep) “基础算法(Leetcode)刻意练习活动”是配合LSGO软件技术团队的招新而开展的。既然每年都要做这样的事情,就应该寻找每次...

老马的程序人生 1070

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

2026 届计算机求职指南:如何准备技术面试?

计算机行业一直是就业市场上的热门领域,2026 届的毕业生面临着前所未有的竞争。无论是校招、社招还是实习,技术面试都是拿到的关键。本文将从简历准备、算法刷题、技术面试、系统设计、八股文知识、软技能面试等多个方面,帮助你系统化准备计算机相关的技术面试,少走弯路,高效上岸!技术面试是一个长期积累的过程,准备充分才能稳拿 Offer!希望这篇文章能帮助 2026 届的计算机专业同学少走弯路,高效上岸!🎯🚀如果你觉得这篇文章有帮助,欢迎,你的支持是我更新更多求职攻略的动力!🔥。

m0_63345182的博客 2248

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Leetcode热题100【第五周】完结篇!

【第五周打卡完成✔】

zyt131415的博客 294

2024蔚来汽车秋招软件岗笔试复盘:题型分布与备考策略

在新能源车企的招聘流程中,笔试作为简历筛选后的第一道标准化关卡,往往决定了候选人能否进入面试环节。无论智能座舱、自动驾驶还是车联网方向,扎实的计算机基础与算法功底都是必备能力。操作系统中的进程线程、死锁与内存管理,计算机网络里的TCP/IP、HTTP状态码,数据库的索引与事务特性,以及C++的智能指针和内存安全,这些核心知识点构成了笔试考察的主体。编程题则聚焦于数组、链表、二叉树、动态规划等经典数据结构与算法题型,要求候选人在限定时间内完成高效解题。理解这些技术原理并能灵活应用于实际场景,不仅是应对车企笔试

weixin_30263277的博客 387

触宝后端大数据岗校招笔试复盘:题型、考点与避坑全指南

大数据开发是当前后端领域的高门槛方向,其核心能力不仅包括Java并发、JVM调优等基础功底,更强调对Kafka、Spark、HDFS等组件的原理级理解和整条数据链路的工程思维。校园招聘笔试作为筛选人才的第一关,往往会通过算法、组件原理、系统设计等题型,检验候选人在海量数据场景下解决实际问题的能力。从日志采集到消息队列,从离线计算到实时分析,每一个环节都对应着真实业务中的技术选型与权衡取舍。本文以移动互联网公司后端大数据岗的校招笔试为例,梳理高频考点、答题思路与实战避坑经验,帮助准备校招或转岗的开发者建立清晰

weixin_30530339的博客 377
上一篇: 牛客挑战赛53 题解(A+B+C)
下一篇: 2021牛客OI赛前集训营-普及组(第七场)(A+B+C+D)
郭晋龙
博客等级 码龄6年 940粉丝 449原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭晋龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值