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

做网站快速排名甘肃省建设工程造价信息网站

做网站快速排名,甘肃省建设工程造价信息网站,网站是什么公司做的,邯郸网页题干:力扣 解题报告#xff1a; 刚开始觉得直接贪心选有短则短#xff0c;但是发现不行#xff0c;不能贪心有短的可以操作的则选短的。 三个方式想到倒着递推。一是直接记住这个特例#xff0c;正推还倒推不能互相转换的特例。 二是因为dp[i]代表前i个的最大次数#x…题干:力扣 解题报告 刚开始觉得直接贪心选有短则短但是发现不行不能贪心有短的可以操作的则选短的。 三个方式想到倒着递推。一是直接记住这个特例正推还倒推不能互相转换的特例。 二是因为dp[i]代表前i个的最大次数这其实不只要保存最大次数这一个状态还有可能很多局部最优解需要保存。怎么消除这个因素呢就是怎么让他和子状态无关呢倒着推结合这题的题意正好。 三是正难则反的思想。正着想是dp[i]代表前i个能消除的最大次数枚举最后一次消除次数反着想就是dp[i]代表从i到结尾都消除的最大次数然后枚举第一次消除的字符串。然后一想诶这就是可解的了。 然后就是对于如何判断两个字符串的相等可以字符串哈希也可以用求LCP的板子。 AC代码 class Solution { public:unsigned long long H[5005];unsigned long long p[5005];// 都自然溢出即可int seed 31, dp[5005];bool ok[5005][5005];unsigned long long cal(int l, int r) {if (l 0) return H[r];return H[r] - H[l-1] * p[r-l1];}int deleteString(string s) {H[0] s[0]-a1;p[0] 1;for(int i 1; is.size(); i) p[i] p[i-1]*seed;for(int i 1; is.size(); i) {H[i] H[i-1]*seed s[i] - a 1;}int ans 0;int st 0;for(int i 0; is.size(); i) {for(int j i1; js.size(); j2) {int len j-i1;if(cal(i, ilen/2-1) cal(ilen/2, ilen-1)) ok[i][j] 1;}}for(int i s.size()-1; i0; i--) {dp[i] 1;for(int j i1; js.size(); j2) {if(ok[i][j]) dp[i] max(dp[i], dp[i(j-i1)/2] 1);}}return dp[0];} }; 错误代码从前往后递推的 class Solution { public:unsigned long long H[5005];unsigned long long p[5005];// 都自然溢出即可int seed 31, dp[5005];bool ok[5005][5005];unsigned long long cal(int l, int r) {if (l 0) return H[r];return H[r] - H[l-1] * p[r-l1];}int deleteString(string s) {H[0] s[0]-a1;p[0] 1;for(int i 1; is.size(); i) p[i] p[i-1]*seed;for(int i 1; is.size(); i) {H[i] H[i-1]*seed s[i] - a 1;}int ans 0;int st 0;for(int i 0; is.size(); i) {for(int j i1; js.size(); j2) {int len j-i1;if(cal(i, ilen/2-1) cal(ilen/2, ilen-1)) ok[i][j] 1;}}for(int i 0; is.size(); i) {dp[i] -1;if(ok[0][i]) dp[i] 1;for(int j 1; ji; j) {if(ii-j s.size()) continue;if(dp[j] ! -1 ok[j1][ii-j]) {dp[i] max(dp[i], dp[j]1);}}if(i ! s.size()-1) ans max(ans, dp[i]);}return max(ans1, dp[s.size()-1]);} }; LCP lcp[i][j] 表示 s[i:] 和 s[j:] 的最长公共前缀 n len(s)lcp [[0] * (n 1) for _ in range(n 1)] # lcp[i][j] 表示 s[i:] 和 s[j:] 的最长公共前缀for i in range(n - 1, -1, -1):for j in range(n - 1, i, -1):if s[i] s[j]:lcp[i][j] lcp[i 1][j 1] 1
http://www.huolong8.cn/news/127450/

相关文章:

  • 手机上网站用建设工具免费制作图片加文字
  • 营销型网站开发推广淘宝seo优化排名
  • 网站由哪些部分组成部分组成部分组成马云做的国外的网站叫什么名字
  • 常州建站网站模板文件备案网站建设方案
  • php 网站 教程重庆建筑网络平台
  • 石家庄建设一个网站多少钱免费的行情软件下载安装
  • 从哪些方面做好网站的seo公司宣传 如何做公司网站
  • 坪山做网站wordpress搬家后页面空白
  • 广州市网站搭建制作网站建设指南 菜鸟教程
  • 网站建设与管理的策划书环境没有tomcat怎么演示自己做的网站
  • 南昌网站排名优化报wordpress lnmp lamp
  • 古尔邦节网站建设广东新闻联播片尾
  • 衡阳建设公司网站wordpress分类自定义文字
  • 网站信息可以flash网站源码模板
  • 无锡网站建设推荐智勇wordpress模板排行榜
  • 网站建设工作东莞做网站的公司哪家最好
  • 微信做自己的网站建设人行官方网站下载
  • 临沂品牌网站建设公司免费网站建设哪个好 - 百度
  • 杭州设计网站的公司哪家好wordpress多功能主题
  • 在哪网站可以做农信社模拟试卷wordpress 点击按钮没反应
  • 南宁网站建设教学工业和信息化部直属大学
  • qq整人网站怎么做建站助手官网
  • 学做花蛤的网站乌海品牌网站建设
  • 网站改版 优势房产网签流程及注意事项
  • 网站分析总结wordpress邀请会员
  • 在线阅读小说网站怎么建设有网站吗给一个
  • 网站制作多少钱400网络网站建设价格
  • 企业网站seo诊断工具wordpress安装504
  • 浦东新区建设机械网站找公司做网站的好处
  • 濮阳的网站建设wordpress完全开源么