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

网站建设网页开发怎么学视频剪辑制作

网站建设网页开发,怎么学视频剪辑制作,网站建设销售培训,广东专业的网站制作马拉车算法 Manacher‘s Algorithm 是用来查找一个字符串的最长回文子串的线性方法#xff0c;由一个叫 Manacher 的人在 1975 年发明的#xff0c;这个方法的最大贡献是在于将时间复杂度提升到了线性 dp[i] ma i ? min(dp[2 * mod - i], ma - i) : 1; 可以这么说由一个叫 Manacher 的人在 1975 年发明的这个方法的最大贡献是在于将时间复杂度提升到了线性 dp[i] ma i ? min(dp[2 * mod - i], ma - i) : 1; 可以这么说这行要是理解了那么马拉车算法基本上就没啥问题了那么这一行代码拆开来看就是 如果 ma i, 则 p[i] min( dp[2 *mod - i] , ma - i ) 否则dp[i] 1本身) 【care一】mai 1当 ma - i dP[j] 的时候以S[j]为中心的回文子串包含在以 S[mod] 为中心的回文子串中由于 i 和 j 对称以 S[i] 为中心的 回文子串必然包含在以 S[mod] 为中心的回文子串中所以必有 P[i] P[j]其中 j 2*id - i因为 j 到 id 之间到距离等于 id 到 i 之间到距离为 i - id所以 j id - (i - id) 2*id - i参见下图。ma的对称点 2*mod-i(i关于mod的对称点) (mod为能延伸到最右端的位置的那个回文子串的中心点位置)mi j mod i ma(记录向右边延伸最多的位置) —————|—————————|———————————————|———————————————|—————————|——|————————|————————————— ———————|—————————|| dp[j] |(以dp[j]表示以v[j]字符为中心的回文子串的半径)—————————————————————————————————————————————————————————————2当 dP[j] ma - i 的时候以 S[j] 为中心的回文子串不一定完全包含于以 S[mod] 为中心的回文子串中但是基于对称性可知 下图中两个绿框所包围的部分是相同的也就是说以 S[i] 为中心的回文子串其向右至少会扩张到 ma的位置也就是说 dP[i] ma - i。 至于 ma 之后的部分是否对称就只能老老实实去匹配了这就是后面紧跟到 while 循环的作用。ma的对称点 2*mod-i(i关于mod的对称点) (mod为能延伸到最右端的位置的那个回文子串的中心点位置)mi j mod i ma(记录向右边延伸最多的位置) —————|—————————|———————————————|———————————————|———————————|————————||——————————|—————————| |——————————|———————————|——|| dp[j] | |(以dp[j]表示以v[j]字符为中心的回文子串的半径)|—————————————————————————————————————————————————————|【care二】 对于 ma i 的情况无法对 P[i] 做更多的假设只能 P[i] 1然后再去匹配了。 题目 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度.  回文就是正反读都是一样的字符串,如aba, abba等 Input 输入有多组case,不超过120组,每组输入为一行小写英文字符a,b,c...y,z组成的字符串S  两组case之间由空行隔开(该空行不用处理)  字符串长度len 110000 Output 每一行一个整数x,对应一组case,表示该组case的字符串中所包含的最长回文长度.  Sample Input aaaaabab Sample Output 4 3 AC代码 #includestdio.h #includestring.h #includealgorithm using namespace std; const int M110010; int dp[M*2];//dp[i]表示以v[i]字符为中心的回文子串的半径 char u[M],s[M*2]; int ans,len; void manacher() {/**马拉车算法的第一步是预处理做法是在每一个字符的左右都加上一个特殊字符比如加上 #这样做的好处是不论原字符串是奇数还是偶数个处理之后得到的字符串的个数都是奇数个*/int l0;s[l]$; //s[0]*,s[len*22]\0,防止在while时dp[i]越界s[l]#;//Manacher处理回文串时需要在每个字符串的中间以及两端插入不会出现的字符然后再枚举for(int i0; ilen; i) //插入了len1个#,最终的s长度是1~(lenlen1)即2*len1,首尾s[0]和s[2*len2]要插入不同的字符{s[l]u[i];s[l]#;}s[l]\0;int ma0,mod0;///ma记录向右边延伸最多的位置,for(int i0; il; i){dp[i]mai?min(dp[mod*2-i],ma-i):1;/**i为我们设定的回文串中心若ma则此时没有回文串被包含只能慢慢枚举其他详细分析见上*/while(s[dp[i]i]s[i-dp[i]]) dp[i];if(idp[i]ma){maidp[i];modi;}} } int main() {while(~scanf(%s,u)){lenstrlen(u);manacher();ans-1;for(int i0; i2*len2; i)ansmax(ans,dp[i]-1);printf(%d\n,ans);}return 0; }
http://www.yutouwan.com/news/362526/

相关文章:

  • 现在怎么做网站广宁住房和城乡建设局网站
  • 网站开发费用税企业集团网站建设方案
  • 做电子商务网站 语言上海办公室设计装修公司
  • 权重网站建设wordpress添加主题
  • 济宁网站开发软件开发需要用什么软件
  • 企业网站建设设计服务作一个网站要多少钱
  • 做信息发布网站要多少钱嘉兴网站建设需要多少钱
  • 企业网站官网建设cms网站建设教程
  • 网页设计网站建设的书籍顺电网上商城怎么样
  • 网站建设部网玉环建设规划局网站
  • 广东建设执业资格注册中心网站seo排名优化怎样
  • 成都网站排名提升网站开发了解客户需求
  • 网上做调查问卷的网站注册公司的网址是什么
  • 办个网站需要多少钱wordpress商品管理
  • 网站建设评估报告怎样搭建微网站
  • 衡阳网站建设公司地址简单的微信小程序项目
  • 网站LOGO透明底色PNG格式怎么做的做园林景观的网站
  • 开发什么网站媒体公关公司
  • 西安做网站陕西必达网站哪个公司做的比较好
  • 对于网站链接优化有哪些建议公司网站实名认证
  • 池州网站开发枣庄手机网站建设公司
  • 上海好的网站有哪些网站建设类岗位有哪些
  • 电子商务做网站设计北京网站设计公司wyhseo
  • 网站网页设计怎么报价开展建设文明网站活动方案
  • 网站建设实验分析怎么做百度网站验证码
  • 做微网站的第三方登录界面东莞网站设计方案
  • 游戏加盟招商手机网站关键词优化
  • 开发网站备案域名指向一个网站
  • 化州 网站建设如何办网站 论坛
  • 做视频网站 视频放在哪里找西安seo全网营销