{CSDN}{英雄会}{反相互}

思路:

给定一个字符串,求两个不重叠的字串,他们翻转互补。其中一个字符串可以是删掉最多两个字符的原字符串子串。

动态规划,由于可以对子串进行删除操作,我首先想到了LCS问题,但需要枚举所有的长度,这样复杂度为O(N^3),不可取。

由于长度线性增加,考虑使用二分查找目的长度,这样复杂度为O(N^2*log(N))。

需要查找两次,查找子串(ln)的长度等于被查找子串(ln+k)的LCS长度,那么存在相应的子串互补,其中k为删掉的字符数,题中为2。

这样题中复杂度与k无关。但是,这个方法一直没有AC,正确与否需要大牛来指正。

{CSDN}{英雄会}{反相互}

时间: 2024-08-25 21:27:19

{CSDN}{英雄会}{反相互}的相关文章

{CSDN}{英雄会}{砍树、石子游戏}

砍树 思路: 可以将题目意图转化为:给定一棵树,求其中最接近总权值一半的子树. DFS求每个节点的所有子节点的权值和,遍历每个节点,最接近总权值一半的即为答案.复杂度O(N). 石子游戏: 思路: 一个Nim博弈问题,寻找一个局面的平衡状态,由于是多堆石子,参看Nim博弈的相关理论. {CSDN}{英雄会}{砍树.石子游戏}

{CSDN}{英雄会}{火车调度}

思路: 给定一系列时刻表,求能满足各个时刻的最小火车数量. 打眼一看, 把此题归入到最大流,仔细一想不符合流网络的规律,换思路. 由于是一个最优化问题,自然想到动态规划和贪心. 最后确定贪心.从最早出发的火车切入,到目的地后便可以选择下一次满足的时刻表,贪心思想找最近的一个时刻表(关于贪心的证明可以参看<图论>中最大流的证明思路),反复直到找不到满足的时刻,车辆+1.之后重复该过程,一直到所有的时刻表被满足.当然,首先必须对两地的时刻表分别进行排序,复杂度O(N*N). {CSDN}{英雄会}

CSDN英雄会-第五届在线编程大赛月赛第三题:石子游戏(1)

题目详情 甲乙两人面对若干堆石子,其中每一堆石子的数目可以任意确定. 两人轮流按下列规则取走一些石子,游戏的规则如下: 1.每一步应取走至少一枚石子: 2.每一步只能从某一堆中取走部分或全部石子: 3.如果谁无法按规则取子,谁就是输家. 如果甲乙两人都采取最优的策略,甲先拿,请问,是甲必胜还是乙必胜. 输入格式: 多组数据,每组数据两行,第一行是一个整数N, 2<=N<=10000 下一行是N个正整数,代表每堆的石子数,石子数在32位整数内. 输出格式: 每组测试数据输出一行,如果甲存在必胜策

{POJ}{3988}{Software Industry Revolution}{DP好题}

题意:给定一个字符串d,要求用另一字符串s去匹配,其中s中的?可以为任何字符,*可以为任意个字符,求最小的匹配权值 思路:这题和CSDN英雄会的“反相互”类似,由于其中某些字符的不确定性,利用动态规划来对每个字符求解.只不过这个题更灵活了一些,但是本质是一样的.考虑s中的第i个元素,当匹配到d中的j元素时,用f[i][j]记录最小的权值和,关键问题就是如何分析'?'和'*'这两个元素. (1)对于'?'比较简单,直接匹配上就可以,f[i][j]=f[i-1][j-1]+Offset (2)对于'

我大中华微软MVP中国区人才库(转)

出处:http://www.genshuixue.com/i-cxy/p/15349735 刘海峰:国内知名微软开源技术网站51Aspx 创始人,十年以上的asp.net从业经验,微软MSDN特约讲师.Teched讲师.ImagineCup大赛评委.人大出版社研修班特约讲师,曾多次受邀访问美国西雅图的微软总部,2009年与业内知名MVP组建易纵互联(北京)科技有限公司并任运营总监.现专注于微软Azure技术领域,在Azure平台进行功能实践和传统Web平台迁移方面有诸多实战经验.陈锐:2002-

雅虎刷题狂人曹鹏:10年理论与实践结合的程序员之路

曹鹏,2006年浙江大学计算机科学专业毕业,2013年中国科学院计算机技术研究所博士毕业.博士期间研究方向为社交网络与社会计算,曾经做过搜索.话题发现.社交网络方面.推荐算法等领域的相关研究. 曾为浙江大学.浙江省大学生程序设计竞赛的命题人,是hackerrank.com.hackerearth.com和csdn英雄会.CSDN高校编程挑战的命题人,也是PAT(Programming Ability Test, http://pat.zju.edu.cn/) 的命题人.是国内ZOJ(http:/

推荐几篇好的博文

推荐网址: UI设计类: 源代码托管: 移动开发 界面优化 兼容屏幕 布局详解 JNI入门 AndroidMk NDK相关问题 NDK_GDB调试 CrystaX CSDN每周博文 其它博客 开发工具问题 源码控制工具 混淆反编 Unbutu使用技巧 性能测试 CVS_Git 反编译工具 Android游戏 小米刷机 三星刷机 联想刷机 蓝晨刷机 中兴刷机 华为刷机 Fulinpengda刷机 HTC刷机 摩托刷机 塞班刷机 刷机中问题 手机问题 Java底层 源码网站 源码编译 源码搜索 EO

奖iPhone6:渣打银行金融市场软件开发部(中国)“Mini Code Marathon”大赛

一.渣打集团金融市场软件开发中心介绍 渣打集团金融市场软件开发中心是一个全球性机构,为渣打集团金融市场业务提供从设计到实施的IT解决方案.金融市场业务是渣打集团核心金融业务的一部分,通过世界各金融中心交易所的平台,为全球特别是亚洲.非洲和中东地区的企业.机构以及投资商提供全方位.高价值的金融市场产品.目前中心900多名员工分布在新加坡.天津.伦敦.印度钦奈和迪拜等全球各地,拥有众多世界级的金融业务和技术专家,在股票.债券.外币兑换.货币市场.商品以及复杂金融衍生产品的交易以及风险管理方面具有浓厚

是慷衫航在氖春怀僮步迂AXi

如果说下水道是一个城市的良心,那么厕所就是一座城市的门脸. 很多年前,人们就发现一个有意思的现象:一个城市的文明程度可以从其厕所的卫生程度得出,厕所越干净.城市越发达.但直到今天,大数据无法解释这背后的原因:究竟是城市发达了厕所自然就干净了,还是厕所干净了也会促进城市的发展. 对于这样「先有鸡还是先有蛋的问题」,还需要大数据加传统民调和小数据的结合才有肯能找到答案. 01 谷歌为何只猜对了一次? 感谢从维克托·迈尔-舍恩伯格到马云的孜孜不倦地布道,大数据现在几乎成了全球先进生产力的标志,而且几乎