首页 > 其他分享 >DP vs Non DP

DP vs Non DP

时间:2023-08-14 17:33:07浏览次数:37  
标签:Non le 规律 字母 vs 权值 字符串 DP

我们对知识的探究来源于探寻规律,而许多规律性的问题可以分出阶段进行递推解决,这样就形成了 DP。DP 非常有用,但它并不能取代找规律的过程。即使是多阶段决策问题,发现一些规律可能比直接使用 DP 更加简单。
例子:

你有 \(n\) 个字母 A,\(m\) 个字母 B,你可以将这些字母组成成为一个字符串, 你需要使得这个字符串的权值尽量大。现在我们以如下规则计算这个字符串的权值。
每有连续的 \(a\) 个 A ,且下一个字母依旧是 A,则权值 \(+1\)。假设 \(a = 3\),且连续有 \(7\) 个 A,那么根据此规则, 权值 \(+2\)。你可以理解一段长度为 \(cntA\) 的 A 所获得的权值为 \(\lfloor\dfrac{cntA-1}{a}\rfloor\)。
每有连续的 \(b\) 个 B ,且下一个字母依旧是 B,则权值 \(+1\)。
上一个字母和当前字母不一样时,权值 \(+1\)。(第一个字母前面没有字母,也
会使得权值 \(+1\))
假设当前字母是 B,则至少需要有连续 \(c\) 个字母 B,下一个字母才可以切换成
A。字母 A 切换到字母 B 没有任何限制。
请问你能构造的字符串权值最大可能是多少?
【数据范围】
对于 \(100\%\) 的数据,有 \(1 \le t \le 50,1 \le n, m, a, b, c \le 10^5\)

这道题乍一看像 DP,可以设状态 \(f_{i, j, k}\) 代表前 \(i\) 个字符用了 \(j\) 个 A 且以 \(b\) 结束的最大权值。
但是这种算法是 \(O(n^2)\) 的。
尝试优化它,手模一组小数据,发现 DP 决策极为规律,其根本原因是这道题的决策和当前所在位置并无关系,而只和前面的字符有关。这样 DP 就不是很有效率,因为循环相似的部分 DP 却要重新计算。更好的方式是手动找出规律,然后按照规律直接做结论即可。
这类不同阶段相似度很高的题不适合使用 DP 解决。

标签:Non,le,规律,字母,vs,权值,字符串,DP
From: https://www.cnblogs.com/mindeveloped/p/p-kick-dp-monkey.html

相关文章

  • DVI接口静电保护方案及TVS二极管选用指南
    DigitalVisualInterface,简称DVI,中文名:数字视频接口,是一种视频接口标准,用来传输未经压缩的数字化视频,广泛应用于LCD、数字投影机等显示设备上。DVI端口的种类非常多,有DVI-A、DVI-D、DVI-I三种不同类型的端口形式,又可分为单通道与双通道。DVI接口应用行业主要分布在消费电子、通信......
  • 天翼云加速落地紫金DPU实践应用,让算力供给更高效!
    近日,以“智驱创新·芯动未来”为主题的第三届DPU峰会在北京成功举办。会上,天翼云凭借紫金DPU在架构革新、算力释放、场景落地等多方面的成果,荣膺“2023芯星品牌奖”,技术实力与品牌影响力再获行业认可。天翼云科技有限公司基础架构事业部高/级产品经理雷晓龙在技术生态论坛发表了题......
  • 2023下半年广州/深圳产品经理NPDP认证8月19日开班
    产品经理国际资格认证NPDP是新产品开发方面的认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。  【认证机构】 产品开发与管理协会(PDMA)成立于1979年,是全球范围内产品开发与管理专业人士最杰出的倡导者,协助个人、企业......
  • Git:Vscode提交报错Make sure you configure your "user.name" and "user.email" in gi
    使用VScode编辑代码后,Push到云端报错:Makesureyouconfigureyour"user.name"and"user.email"ingit解决步骤:1.进入本地端的文件夹,右键GitBash; 2.输入命令:$gitconfig--globaluser.name"your_username"#配置用户名$gitconfig--globaluser.email&qu......
  • vSphere Web Client 中的 vSAN 性能图
    原文链接:vSphereWebClient中的vSAN性能图(2144493)(vmware.com)Symptoms免责声明:本文是 vSANPerformanceGraphsinthevSphereWebClient 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。 ......
  • VS Code常用快捷键
    前言对于开发者而言,熟悉快捷键的使用,能够起到事半功倍的作用,提高工作效率。以下是我整理的一份VSCode常用快捷键清单,希望能够帮助到你,欢迎在评论区留下你的常用快捷键......
  • vscode终端git自动补全
    vscode终端git自动补全ctrl+shift+p输入setting.json,选择如下:加代码"terminal.integrated.profiles.windows":{"GitBash":{"path":"D:\\develop\\tool\\Git\\bin\\bash.exe",//注意是bash.exe而不是git-......
  • 代理服务器之 squid、lvs、nginx、haproxy之间的区别
    1、正向代理正向代理服务器:squid用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上,然后由代理服务器去访问Web服务器,并将Web服务器的Response回传给客户端。2、反向代理:image.......
  • Excel:Power Automate VS UiPath
    读取和写入差别:PowerAutomate需要通过激活Sheet来确定写入那个Sheet,VBA操作逻辑一样;而UiPath用一个写入控件就可以直接指定写入的Sheet,符合开发逻辑。 ......
  • VsCode中ctrl+s保存后会在当前目录下自动生成dist目录
    在VsCode中ctrl+s后会在当前目录下自动生成dist目录解决办法:关闭compile-hero插件在设置中搜索compile-hero插件网址:yii666.com<关闭所有自动生成dist目录的选项(如下图所示)   ......